【发布时间】:2018-08-27 07:39:18
【问题描述】:
我没有得到关于线性回归问题的输出。
这是一个简单的单变量线性回归问题。
我使用过 Kaggle 的线性回归数据集,
从这里:Linear Regression on Random Dataset
它没有给出期望的输出。它给出了权重和偏差的 nan 值
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# In[20]:
#Getting DataFrames
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')
#Dropping NaN rows
train_data.dropna()
test_data.dropna()
#Getting features and labels
X_train = train_data.iloc[:,0].values
Y_train = train_data.iloc[:,1].values
test_X = test_data.iloc[:,0].values
test_Y = test_data.iloc[:,1].values
#Plotting Training Data
plt.scatter(X_train,Y_train)
# In[58]:
#Training the model
X = tf.placeholder(tf.float32,name='X')
Y = tf.placeholder(tf.float32,name='Y')
W = tf.Variable(tf.random_normal([]),dtype=tf.float32,name='weights')
b = tf.Variable(tf.random_normal([]),dtype=tf.float32,name='bias')
Y_pred = W*X + b
cost = tf.square(Y_pred,name='cost')
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001).minimize(cost)
init = tf.global_variables_initializer()
# In[61]:
with tf.Session() as sess:
sess.run(init)
for i in range(1000):
sess.run(optimizer,feed_dict={X:X_train,Y:Y_train})
W_out,b_out = sess.run([W,b])
writer = tf.summary.FileWriter('./graphs/linear_reg', sess.graph)
print(W_out,b_out)
# In[60]:
#plt.plot(X_train, W_out*X_train + b_out, color='red')
plt.scatter(X_train,Y_train)
plt.plot(X_train, W_out*X_train + b_out, color='red')
它正在输出:
nan nan
权重和偏差正在获取 nan 值。
【问题讨论】:
标签: python-3.x tensorflow machine-learning linear-regression nan