gpt4 book ai didi

python - tensorflow - 线性回归

转载 作者:行者123 更新时间:2023-11-30 09:07:41 24 4
gpt4 key购买 nike

我编写了用于线性回归的 tensorflow 程序。我正在使用梯度下降算法来优化(最小化)损失函数。但损失函数的值在程序执行过程中不断增加。我的程序和输出如下。

    import tensorflow as tf
W = tf.Variable([.3],dtype=tf.float32)
b = tf.Variable([-.3],dtype=tf.float32)
X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
sess = tf.Session()
init = init = tf.global_variables_initializer()
sess.run(init)
lm = W*X + b
delta = tf.square(lm-Y)
loss = tf.reduce_sum(delta)
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
for i in range(8):
print(sess.run([W, b]))
print("loss= %f" %sess.run(loss,{X:[10,20,30,40],Y:[1,2,3,4]}))
sess.run(train, {X: [10,20,30,40],Y: [1,2,3,4]})
sess.close()

我的程序的输出是

2017-12-07 14:50:10.517685: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.

[array([ 0.30000001], dtype=float32), array([-0.30000001],dtype=float32)]
loss= 108.359993

[array([-11.09999943], dtype=float32), array([-0.676], dtype=float32)]
loss= 377836.000000

[array([ 662.25195312], dtype=float32), array([ 21.77807617], dtype=float32)]
loss= 1318221568.000000

[array([-39110.421875], dtype=float32), array([-1304.26794434], dtype=float32)]
loss= 4599107289088.000000

[array([ 2310129.25], dtype=float32), array([ 77021.109375], dtype=float32)]
loss= 16045701465112576.000000
[array([ -1.36451664e+08], dtype=float32), array([-4549399.], dtype=float32)]
loss= 55981405829796462592.000000

[array([ 8.05974733e+09], dtype=float32), array([ 2.68717856e+08], dtype=float32)]
loss= 195312036582209632600064.000000

请告诉我为什么损失值(value)增加而不是减少。

最佳答案

你尝试过改变学习率吗?使用较低的运行速率(~1e-4)和更多的迭代应该可行。

更多关于为什么可能需要较低学习率的理由。请注意,您的损失函数是

L =\sum (Wx+b-Y)^2

并且 dL/dW =\sum 2(Wx+b-Y)*x

和粗麻布 d^2L/d^2W =\sum 2x*x

现在,你的损失正在发散,因为学习率大于粗麻布的倒数,大约为 1/(2*2900)。所以你应该尝试降低这里的学习率。

注意:我不确定如何将数学添加到 StackOverflow 答案中,因此我必须以这种方式添加它。

关于python - tensorflow - 线性回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47692054/

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