是为tensorflow中的每次迭代/运行生成的新权重?

时间:2017-09-26 16:50:18

标签: python tensorflow tensorboard

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})

只是传递部分代码,使事情变得更简单。 请看下面的图片:

enter image description here

如果您看到红线开始于约0.370,蓝色开始于约0.310。这是否意味着,张量流中的所有运行的初始权重都不相同?因为如果是这样的话,所有线都将从同一点开始,考虑到在误差/损失函数之后应用了梯度体面。我认为对于每次迭代,都会生成新的权重,这不是我想要的。我怎么能解决这个问题?我会很感激的。

1 个答案:

答案 0 :(得分:0)

这是因为权重的默认初始值设定项是随机的。您可以通过设置随机种子来使其更好。 https://www.tensorflow.org/api_docs/python/tf/set_random_seed

tf.set_random_seed(666)