使用此命令做了什么?tf.stack
代表什么?
tf.stack([tf.range(tf.shape(self.a)[0], dtype=tf.int32), self.a], axis=1)
一般而言,当我解决问题时,我会尝试与张量相等的功能。最初,TensorFlow API与Numpy API有一些古怪的差异,但是足够的用户希望这两个软件包的行为与TensorFlow进行更改相同。
您说数组self.a
保证为1D。那就是:
import numpy as np
arr = np.random.randint(-9,9,(10,))
print(arr)
result = np.stack([np.arange(np.shape(arr)[0], dtype=np.int32), arr], axis=1)
print(result)
这是样本输出:
array([-5, 1, 0, -3, -9, -8, 3, -1, 0, -2])
array([[ 0, -5],
[ 1, 1],
[ 2, 0],
[ 3, -3],
[ 4, -9],
[ 5, -8],
[ 6, 3],
[ 7, -1],
[ 8, 0],
[ 9, -2]])
因此,看起来原始的1D阵列被放大为2D阵列,并在0列中带有数值索引。