tensorflow线性回归与非线性回归
线性回归
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
x_data = np.random.random(100)
noise = np.random.random(100)
y_data = x_data*0.1 + 0.2 +noise/50
plt.scatter(x_data,y_data,c='r')
plt.show()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208111015157.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hdGFmZWl5YW5sbA==,size_10,color_FFFFFF,t_70)
d = tf.Variable(np.random.random(1))
k = tf.Variable(np.random.random(1))
y = k*x_data + d
loss = tf.losses.mean_squared_error(y_data,y)
optimizer = tf.train.GradientDescentOptimizer(0.4)
train= optimizer.minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(201):
sess.run(train)
y_pred = sess.run(y)
plt.scatter(x_data,y_data)
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
kk = sess.run(k)
dd = sess.run(d)
print(kk,dd)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208111039402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hdGFmZWl5YW5sbA==,size_10,color_FFFFFF,t_70)
非线性回归
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
x_data = np.random.random(200)[:,np.newaxis]
print(x_data.shape)
noise = np.random.normal(0,0.1,x_data.shape)
print(noise.shape)
y_data = x_data*x_data + noise
plt.scatter(x_data,y_data)
plt.show()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208111129121.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hdGFmZWl5YW5sbA==,size_10,color_FFFFFF,t_70)
x = tf.placeholder(tf.float32,[None,1])
y = tf.placeholder(tf.float32,[None,1])
x_test = np.linspace(0,1,600)[:,np.newaxis]
w1 = tf.Variable(tf.random_normal([1,20]))
b1 = tf.Variable(tf.zeros([20]))
wxplus1 = tf.matmul(x,w1) + b1
l1 = tf.nn.tanh(wxplus1)
w2 = tf.Variable(tf.random_normal([20,1]))
b2 = tf.Variable(tf.zeros([1]))
wxplus2 = tf.matmul(l1,w2) + b2
prediction = tf.nn.tanh(wxplus2)
loss = tf.losses.mean_squared_error(y,prediction)
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for _ in range(2000):
sess.run(train,feed_dict={x:x_data,y:y_data})
prediction_value = sess.run(prediction,feed_dict = {x:x_test})
plt.scatter(x_data,y_data)
plt.plot(x_test,prediction_value,'r-',lw=5)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200208111156270.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hdGFmZWl5YW5sbA==,size_10,color_FFFFFF,t_70)