gpt4 book ai didi

python - Tensorflow 在隐藏层返回相同的权重

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:45 25 4
gpt4 key购买 nike

我正在尝试训练一个模拟正弦函数的模型。使用 3 个全连接层和 1-15-1 个神经元。所以我有 2 个权重变量,1x15 和 15x1。训练后它们具有相同的值:

[[0.02432664] [0.02432664] [0.02432664] [0.02432664] [0.02432664] 
[0.02432664] [0.02432664] [0.02432664] [0.02432664] [0.02432664]
[0.02432664] [0.02432664] [0.02432665] [0.02432665] [0.02432665]]

[[0.02432664 0.02432664 0.02432664 0.02432664 0.02432664 0.02432664
0.02432664 0.02432664 0.02432664 0.02432664 0.02432664 0.02432664
0.02432665 0.02432665 0.02432665]]

这是我的代码:

W1 = tf.Variable(tf.ones([15, 1]) * 0.3)
W2 = tf.Variable(tf.ones([1, 15]) * 0.3)
label = tf.placeholder(dtype=tf.float32, shape=[1, None])
result = tf.placeholder(dtype=tf.float32)

l1 = tf.matmul(W1, label)
l2 = tf.matmul(W2, l1)
loss = tf.square(l2 - result)
loss = tf.reduce_sum(loss)
train_op = tf.train.AdamOptimizer().minimize(loss)


sess = tf.Session()
sess.run(tf.global_variables_initializer())
feed_dict = {label: [labels], result: values}

for i in range(0, 500):
sess.run(train_op, feed_dict)

来自 feed_dict 的值和标签如下所示:

[0.041410759078128294, 0.5139904997395468, 0.97, 0.9710565162951535, 
0.6471067811865476, 0.20643446504023055]

[1, 15, 50, 60, 75, 95]

(范围 1-100 相当于 0 - PI)

不知道 tensorflow 为什么要这样做。您能建议一下出了什么问题以及如何修复它吗?

最佳答案

这是因为您没有随机初始化权重矩阵 W1W2。您正在使用:

W1 = tf.Variable(tf.ones([15, 1]) * 0.3)
W2 = tf.Variable(tf.ones([1, 15]) * 0.3)

但是您应该使用随机正态分布之类的东西来初始化它们:

W1 = tf.Variable(tf.random_normal((15,1), stddev=0.01)/tf.sqrt(n))

这是因为无论输入是什么,如果所有权重都初始化为相同的值,就像您的情况一样,隐藏层中的所有单元都将相同,并且您的网络将无法学习。

关于python - Tensorflow 在隐藏层返回相同的权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53138899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com