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})
只是传递部分代码,使事情变得更简单。 请看下面的图片:
如果您看到红线开始于约0.370,蓝色开始于约0.310。这是否意味着,张量流中的所有运行的初始权重都不相同?因为如果是这样的话,所有线都将从同一点开始,考虑到在误差/损失函数之后应用了梯度体面。我认为对于每次迭代,都会生成新的权重,这不是我想要的。我怎么能解决这个问题?我会很感激的。
答案 0 :(得分:0)
这是因为权重的默认初始值设定项是随机的。您可以通过设置随机种子来使其更好。 https://www.tensorflow.org/api_docs/python/tf/set_random_seed
tf.set_random_seed(666)