【发布时间】:2016-05-23 19:57:04
【问题描述】:
我需要将零分配给 Tensorflow 变量,如下所示。有可能这样做吗?我该怎么办?
layer = tf.nn.sigmoid(tf.add(tf.matmul(x, h), b))
layer[0] = 0
在上面的例子中,我想将 x 矩阵和 h 向量相乘计算的变量的第一个索引设置为零。
【问题讨论】:
我需要将零分配给 Tensorflow 变量,如下所示。有可能这样做吗?我该怎么办?
layer = tf.nn.sigmoid(tf.add(tf.matmul(x, h), b))
layer[0] = 0
在上面的例子中,我想将 x 矩阵和 h 向量相乘计算的变量的第一个索引设置为零。
【问题讨论】:
您不能直接分配它,但您可以使用.assign() 操作来实现它,here is the documentation。此外,在您分配后,您必须使用.run() 或.eval() 运行操作。在我看来,这段代码应该可以工作:
layerOp = layer[0].assign(0)
sess.run(layerOp)
请查找此post 以供参考。
【讨论】:
layer 是tf.Tensor 而不是tf.Variable,所以上面没有定义assign() 方法。达到预期结果的最简单方法是使用tf.slice() 和tf.concat() 来构建预期结果。