Vector 用零展开Tensorflow和空间元素中的向量

Vector 用零展开Tensorflow和空间元素中的向量,vector,tensorflow,expand,Vector,Tensorflow,Expand,我希望将向量元素彼此隔开并用零填充: a = [1, 5, 7, ..., 3] 具有两个零的空间元素: b = [1, 0, 0, 5, 0, 0, 7, 0, 0, ... , 3, 0, 0] 我用以分隔元素的零的数量应该是灵活的 在Tensorflow中,在图形上执行此操作的最佳方法是什么?您是否可以按照说明执行此操作(已接受答案的第二个示例) 基本上,我会首先创建b作为零向量,然后计算a中所有值指向b的索引,然后使用链接帖子中的代码将a的值分配给这些索引 可能是这样的: a

我希望将向量元素彼此隔开并用零填充:

  a = [1, 5, 7, ..., 3]
具有两个零的空间元素:

  b = [1, 0, 0, 5, 0, 0, 7, 0, 0, ... , 3, 0, 0]
我用以分隔元素的零的数量应该是灵活的


在Tensorflow中,在图形上执行此操作的最佳方法是什么?

您是否可以按照说明执行此操作(已接受答案的第二个示例)

基本上,我会首先创建
b
作为零向量,然后计算
a
中所有值指向
b
的索引,然后使用链接帖子中的代码将
a
的值分配给这些索引

可能是这样的:

a = tf.constant(np.array([1, 3, 5, 7]))
dim = a.get_shape()[0].value
n = 2
b = tf.fill(dims=[dim*(n+1)], value=0.0)
new_indices = np.array([i + i*n for i in range(0, dim)])
# now call referenced code with new_indices to update `b`

我不确定这本身是否是最好的方法,但它会完成工作。

谢谢,这确实帮了我的忙!现在我遇到了一个新问题:r0.12上的GPU没有实现tf.sparse_to_dense函数。tf.diag也一样。如果没有支持,我的梯度计算就无法工作,因为我在GPU塔架上实现了它,就像在CIFAR10中一样。我为这个问题提出了一个新问题: