使用Tensorflow进行训练时修改张量的值

时间:2017-08-31 17:25:10

标签: tensorflow

当我使用Tensorflow训练模型时,我想修改张量的值。

这个张量是我模型中的张量之一

weight = tf.Variable(np_matrix)

经过一些迭代后,weight的值将自动更新。

我的问题是:如何非自动修改weight的值。我尝试过这种方法,但它没有用。

modify_weight = sess.run([weight], feed_dict = feed_dict)
modify_weight[0] = [0, 0]
weight = tf.Variable(modify_weight)

此部分代码位于tf.Session()部分(因为我想在培训期间修改该值。)

谢谢!

1 个答案:

答案 0 :(得分:3)

与其他所有内容一样,分配也是一项操作,我们必须使用tf.assign创建一个图表并在会话中运行它。

所以你创建了这样的操作:

assign = tf.assign(weight, value)

其中value是一个numpy数组,其形状与weight(或tf.Placeholder相同,您可以使用Feed字典修改),然后运行此图表会议:

sess.run(assign)

tf.Variable也有方法assign,因此您可以直接从变量开始创建操作:

assign = weight.assign(value)

然后在会话中运行它。