91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Keras實現簡單線性回歸模型操作?

發布時間:2020-06-23 10:35:51 來源:億速云 閱讀:501 作者:清晨 欄目:開發技術

不懂怎么使用Keras實現簡單線性回歸模型操作??其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

神經網絡可以用來模擬回歸問題 (regression),實質上是單輸入單輸出神經網絡模型,例如給下面一組數據,用一條線來對數據進行擬合,并可以預測新輸入 x 的輸出值。

怎么使用Keras實現簡單線性回歸模型操作?

一、詳細解讀

我們通過這個簡單的例子來熟悉Keras構建神經網絡的步驟:

1.導入模塊并生成數據

首先導入本例子需要的模塊,numpy、Matplotlib、和keras.models、keras.layers模塊。Sequential是多個網絡層的線性堆疊,可以通過向Sequential模型傳遞一個layer的list來構造該模型,也可以通過.add()方法一個個的將layer加入模型中。layers.Dense 意思是這個神經層是全連接層。

2.建立模型

然后用 Sequential 建立 model,再用 model.add 添加神經層,添加的是 Dense 全連接神經層。參數有兩個,(注意此處Keras 2.0.2版本中有變更)一個是輸入數據的維度,另一個units代表神經元數,即輸出單元數。如果需要添加下一個神經層的時候,不用再定義輸入的緯度,因為它默認就把前一層的輸出作為當前層的輸入。在這個簡單的例子里,只需要一層就夠了。

3.激活模型

model.compile來激活模型,參數中,誤差函數用的是 mse均方誤差;優化器用的是 sgd 隨機梯度下降法。

4.訓練模型

訓練的時候用 model.train_on_batch 一批一批的訓練 X_train, Y_train。默認的返回值是 cost,每100步輸出一下結果。

5.驗證模型

用到的函數是 model.evaluate,輸入測試集的x和y,輸出 cost,weights 和 biases。其中 weights 和 biases 是取在模型的第一層 model.layers[0] 學習到的參數。從學習到的結果你可以看到, weights 比較接近0.5,bias 接近 2。

Weights= [[ 0.49136472]]

biases= [ 2.00405312]

6.可視化學習結果

最后可以畫出預測結果,與測試集的值進行對比。

怎么使用Keras實現簡單線性回歸模型操作?

二、完整代碼

import numpy as np
np.random.seed(1337) 
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
 
# 生成數據
X = np.linspace(-1, 1, 200) #在返回(-1, 1)范圍內的等差序列
np.random.shuffle(X) # 打亂順序
Y = 0.5 * X + 2 + np.random.normal(0, 0.05, (200, )) #生成Y并添加噪聲
# plot
plt.scatter(X, Y)
plt.show()
 
X_train, Y_train = X[:160], Y[:160]  # 前160組數據為訓練數據集
X_test, Y_test = X[160:], Y[160:]  #后40組數據為測試數據集
 
# 構建神經網絡模型
model = Sequential()
model.add(Dense(input_dim=1, units=1))
 
# 選定loss函數和優化器
model.compile(loss='mse', optimizer='sgd')
 
# 訓練過程
print('Training -----------')
for step in range(501):
 cost = model.train_on_batch(X_train, Y_train)
 if step % 50 == 0:
  print("After %d trainings, the cost: %f" % (step, cost))
 
# 測試過程
print('\nTesting ------------')
cost = model.evaluate(X_test, Y_test, batch_size=40)
print('test cost:', cost)
W, b = model.layers[0].get_weights()
print('Weights=', W, '\nbiases=', b)
 
# 將訓練結果繪出
Y_pred = model.predict(X_test)
plt.scatter(X_test, Y_test)
plt.plot(X_test, Y_pred)
plt.show()

三、其他補充

1. numpy.linspace

numpy.linspace(start, stop, num=50, endpoint=True,retstep=False,dtype=None)

返回等差序列,序列范圍在(start,end),生成num個元素的np數組,如果endpoint為False,則生成num+1個但是返回num個,retstep=True則在其后返回步長.

>>> np.linspace(2.0, 3.0, num=5)
array([ 2. , 2.25, 2.5 , 2.75, 3. ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. , 2.2, 2.4, 2.6, 2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)

感謝你能夠認真閱讀完這篇文章,希望小編分享怎么使用Keras實現簡單線性回歸模型操作?內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东海县| 甘谷县| 任丘市| 呈贡县| 文安县| 江城| 东源县| 赤壁市| 赤峰市| 朝阳区| 扎囊县| 安阳县| 五台县| 绥德县| 大余县| 英超| 徐闻县| 兰州市| 额济纳旗| 镇远县| 五家渠市| 富宁县| 宕昌县| 磐石市| 开封县| 延川县| 乌鲁木齐市| 攀枝花市| 宣汉县| 昌宁县| 新竹市| 西林县| 桐柏县| 长治县| 五家渠市| 拜城县| 天等县| 微山县| 图片| 怀集县| 马公市|