我在StackOverflow上是新手,所以如果我说了什么愚蠢的话,请原谅我。我正在用tensorflow库编写这个多元线性回归,但由于某些原因它就是不工作,损失值只会增加然后变成无效值。
# coding: utf-8import numpy as npimport tensorflow as tfimport matplotlib.pyplot as pltimport seaborn as snsget_ipython().magic('matplotlib inline')from sklearn.datasets import load_boston data=load_boston()X_data = data.datay_data = data.targetm = len(X_data)n = len(X_data[0])X = tf.placeholder(tf.float32,[m,n])y = tf.placeholder(tf.float32,[m,1])W = tf.Variable(tf.ones([n,1]))b = tf.Variable(tf.ones([1]))y_ = tf.matmul(X,W)+bloss = tf.reduce_mean(tf.square( y - y_))optimizer = tf.train.GradientDescentOptimizer(0.01)train = optimizer.minimize(loss)with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) vals = [] for i in range(100): val = sess.run([train,loss],feed_dict={X:X_data , y:y_data[:,None]}) vals.append(val)print(vals)
输出结果是:
[[None, 823712.88], [None, 3.2238912e+13], [None, 1.2631078e+21], [None, 4.9488092e+28], [None, 1.9389255e+36], [None, inf], [None, inf], [None, inf], [None, inf], [None, inf], [None, inf], [None, nan], [None, nan], [None, nan], [None, nan], [None, nan],... [None, nan], [None, nan]]
我找不到问题出在哪里…能帮帮我吗?有人吗?
回答:
看起来你的学习率设置得太高了。如果你将学习率降低到像1e-6这样的值,它就能收敛了。