2017-08-31 102 views
1

我想在使用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()部分(因为我想在训练时间修改数值。)

谢谢!

回答

2

和其他所有一样,作业也是一种操作,我们必须创建一个图形,并使用tf.assign并在会话中运行它。

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

assign = tf.assign(weight, value) 

其中valuenumpy阵列的weight相同的形状(或tf.Placeholder可以与进料字典修改)然后运行该曲线图在会话:

sess.run(assign) 

tf.Variable的也有一个方法assign,从而可以直接创建的操作从可变起始:

assign = weight.assign(value) 

而不是在会话中运行它。

+0

真的很感谢你!我使用'assign = weight.assign(value)''sess.run(assign)'。但如果我不使用'new_weight = sess.run([weight],feed_dict = feed_dict)',它仍然不能修改权重值。但现在它可以工作,谢谢! – JourneyWoo