0
def trainx(x):
train = tf.train.GradientDescentOptimizer(x).minimize(error)
return train
with tf.Session() as sess:
for i in [0.01,0.02,0.03, 0.04]: #
merge = tf.summary.merge_all()
tf.global_variables_initializer().run()
writter = tf.summary.FileWriter('4004/'+str(i), sess.graph)
for i1 in range(100):
error_sum = sess.run(merge, {x:inp, y:out})
writter.add_summary(error_sum, i1)
sess.run(trainx(i), {x:inp, y:out})
只是通过你的代码的一部分,使事情更简单。 请看图片波纹管:是在tensorflow中为每次迭代/运行生成的新权重?
如果你看到红线约0.370和蓝色开始于大约0.310。这是否意味着,张量流中的所有运行的初始重量都不相同?因为如果是这样的话,考虑到梯度下降在错误/损失函数之后应用,所有线将从同一点开始。我认为每次迭代都会产生新的权重,这不是我正在寻找的。我怎么能解决这个问题?将不胜感激。
不同的线代表什么? – Engineero
@Engineero哦,它是一层网络的丢失/错误功能......没什么特别的。 –
循环内的'trainx(i)'将在每次迭代中创建一个新的'tf.train.GradientDescentOptimizer'(带*线性增加学习速率*)。这不可能达到预期的结果。相反,创建一个优化器并在循环外部调用'minim()',并在循环内重用该训练操作。 – mrry