为Tensorflow中的变量赋值

为Tensorflow中的变量赋值,tensorflow,deep-learning,Tensorflow,Deep Learning,我需要为Tensorflow变量赋值零,如下所示。有可能吗?我该怎么办 layer = tf.nn.sigmoid(tf.add(tf.matmul(x, h), b)) layer[0] = 0 在上面的示例中,我想将零值设置为通过x矩阵和h向量相乘计算的变量的第一个索引。您不能直接赋值,但可以使用.assign()操作使其发生。另外,在分配之后,您必须使用.run()或.eval()运行操作。在我看来,这一准则应该适用于: layerOp = layer[0].assign(0) sess

我需要为Tensorflow变量赋值零,如下所示。有可能吗?我该怎么办

layer = tf.nn.sigmoid(tf.add(tf.matmul(x, h), b))
layer[0] = 0

在上面的示例中,我想将零值设置为通过x矩阵和h向量相乘计算的变量的第一个索引。

您不能直接赋值,但可以使用
.assign()
操作使其发生。另外,在分配之后,您必须使用
.run()
.eval()
运行操作。在我看来,这一准则应该适用于:

layerOp = layer[0].assign(0)
sess.run(layerOp) 

请查找此项以供参考。

只是为了澄清:
上面的层
是一个
tf.Tensor
而不是
tf.Variable
,因此没有在其上定义
assign()
方法。实现所需结果的最简单方法是使用
tf.slice()
tf.concat()
构建所需结果。