Tensorflow 线性回归与非线性回归

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()

Tensorflow 线性回归与非线性回归_第1张图片

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)

Tensorflow 线性回归与非线性回归_第2张图片

非线性回归

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()

Tensorflow 线性回归与非线性回归_第3张图片

x = tf.placeholder(tf.float32,[None,1])
y = tf.placeholder(tf.float32,[None,1])
x_test = np.linspace(0,1,600)[:,np.newaxis]

#神经网络:1-20-1
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)
#使用梯度下降法最小化loss
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)

Tensorflow 线性回归与非线性回归_第4张图片

你可能感兴趣的:(深度学习)