import keras
import numpy as np
import matplotlib.pyplot as plt
# sequential按順序構成的模型
from keras.models import sequential
# dense全連線層
from keras.layers import dense,activation
from keras.optimizers import sgd
# 使用numpy生成200個隨機點
x_data = np.linspace(-0.5,0.5,200)
noise = np.random.normal(0,0.02,x_data.shape)
y_data = np.square(x_data) + noise
# 顯示隨機點
plt.scatter(x_data,y_data)
plt.show()
# 構建乙個順序模型
model = sequential()
# 在模型中新增乙個全連線層
# 1-10-1, 兩種新增啟用函式的方法
model.add(dense(units=10,input_dim=1,activation='tanh'))
# model.add(activation('tanh'))
model.add(dense(units=1,activation='tanh'))
# model.add(activation('tanh'))
# 定義優化演算法
sgd = sgd(lr=0.3)
# sgd:stochastic gradient descent,隨機梯度下降法
# mse:mean squared error,均方誤差
model.compile(optimizer=sgd,loss='mse')
# 訓練3001個批次
for step in range(3001):
# 每次訓練乙個批次
cost = model.train_on_batch(x_data,y_data)
# 每500個batch列印一次cost值
if step % 500 == 0:
print('cost:',cost)
# x_data輸入網路中,得到**值y_pred
y_pred = model.predict(x_data)
# 顯示隨機點
plt.scatter(x_data,y_data)
# 顯示**結果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
cost: 0.12991342
cost: 0.005067909
cost: 0.0036316854
cost: 0.0016141604
cost: 0.0006263832
cost: 0.00053478405
cost: 0.00050455006
keras非線性回歸實現
這次非線性回歸實現,相比較於線性回歸,多新增了隱藏層層數,並且需要使用不同型別的啟用函式來進行適應非線性,分別使用了tanh和relu來顯示結果 非線性回歸 import keras import numpy as np import matplotlib.pyplot as plt 按順序構成的模...
Keras框架作線性回歸和非線性回歸
import keras import numpy as np import matplotlib.pyplot as plt 按順序構成的模型 from keras.models import sequential dense全連線層 from keras.layers import dense ...
keras速度複習 非線性回歸
import keras import numpy as np import matplotlib.pyplot as plt from keras.models import sequential from keras.layers import dense,activation 啟用函式 fro...