当我使用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()
部分(因为我想在培训期间修改该值。)
谢谢!
答案 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)
然后在会话中运行它。