在 tensorflow 中,给定特定的列列表,我试图用零列填充张量。
如何在 tensorflow 中实现它?我尝试使用tf.assignor tf.scatter_nd,但遇到了一些错误。
这是一个简单的numpy实现
a_np = np.array([[1, 2],
[3, 4],
[5, 6]])
columns = [1, 5]
a_padded = np.zeros((3, 7))
a_padded[:, columns] = a_np
print(a_padded)
## output ##
[[0. 1. 0. 0. 0. 2. 0.]
[0. 3. 0. 0. 0. 4. 0.]
[0. 5. 0. 0. 0. 6. 0.]]
我试图在 tensorflow 中做同样的事情:
a = tf.constant([[1, 2],
[3, 4],
[5, 6]])
columns = [1, 5]
a_padded = tf.Variable(tf.zeros((3, 7)))
a_padded[:, columns].assign(a)
但这会产生以下错误:
类型错误:只能将列表(不是“int”)连接到列表
我也尝试使用tf.scatter_nd:
a = tf.constant([[1, 2],
[3, 4],
[5, 6]])
columns = [1, 5]
shape = tf.constant((3, 7))
tf.scatter_nd(columns, a, shape)
但这会产生以下错误:
InvalidArgumentError:输出形状的内部尺寸必须与更新形状的内部尺寸匹配。输出:[3,7] 更新:[3,2] [Op:ScatterNd]
叮当猫咪
收到一只叮咚
相关分类