import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis] # 使得維度為[200, 1]
noise = np.random.normal(0, 0.02, x_data.shape) # 維度為[200, 1]的正太分布
y_data = np.square(x_data) + noise
# 定義兩個佔位符placeholder
x = tf.placeholder(tf.float32, [none, 1])
y = tf.placeholder(tf.float32, [none, 1])
# 定義神經網路的中間層
w1 = tf.variable(tf.random_normal([1, 10])) # 10個神經元
b1 = tf.variable(tf.zeros([1, 10]))
w1_plus_b1 = tf.matmul(x, w1) + b1
output1 = tf.nn.tanh(w1_plus_b1) # 啟用函式tanh()
# 定義神經網路的輸出層
w2 = tf.variable(tf.random_normal([10, 1]))
b2 = tf.variable(tf.zeros([1, 1]))
w2_plus_b2 = tf.matmul(output1, w2) + b2
prediction = tf.nn.tanh(w2_plus_b2) # 啟用函式
# 二次代價函式
loss = tf.reduce_mean(tf.square(y - prediction))
train_step = tf.train.gradientdescentoptimizer(0.1).minimize(loss)
with tf.session() as sess:
# 變數的初始化
sess.run(tf.global_variables_initializer())
# 訓練2000次
for i in range(2000):
sess.run(train_step, feed_dict=)
if i % 100 == 0:
print("step: "+str(i))
# 獲取**值
prediction_value = sess.run(prediction, feed_dict=)
plt.figure()
plt.xlabel('x_data')
plt.ylabel('y_data')
plt.scatter(x_data, y_data)
plt.plot(x_data, prediction_value, 'r-', lw=5)
plt.show()
執行結果圖如下:
tensorflow非線性回歸
該程式有輸入層,中間層和輸出層 執行環境 ubuntun menpo queen queen x550ld downloads py python nonliner regression.py coding utf 8 定義乙個神經網路 輸入層乙個元素,中間層10個神經元,輸出層1個元素 impor...
Tensorflow實戰 非線性回歸
通過過乙個最簡單的神經網路 輸入層乙個神經元,隱藏層10個神經元,輸出層1個神經元 來進行非線性回歸。import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 使用numpy生成200個隨機點 從 0.5到0...
Tensorflow 線性回歸與非線性回歸
二次代價函式 均方差 神經網路 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 ...