最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Keras實(shí)現(xiàn)簡(jiǎn)單線性回歸模型操作

 更新時(shí)間:2020年06月12日 16:10:38   作者:marsjhao  
這篇文章主要介紹了使用Keras實(shí)現(xiàn)簡(jiǎn)單線性回歸模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

神經(jīng)網(wǎng)絡(luò)可以用來(lái)模擬回歸問(wèn)題 (regression),實(shí)質(zhì)上是單輸入單輸出神經(jīng)網(wǎng)絡(luò)模型,例如給下面一組數(shù)據(jù),用一條線來(lái)對(duì)數(shù)據(jù)進(jìn)行擬合,并可以預(yù)測(cè)新輸入 x 的輸出值。

一、詳細(xì)解讀

我們通過(guò)這個(gè)簡(jiǎn)單的例子來(lái)熟悉Keras構(gòu)建神經(jīng)網(wǎng)絡(luò)的步驟:

1.導(dǎo)入模塊并生成數(shù)據(jù)

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

2.建立模型

然后用 Sequential 建立 model,再用 model.add 添加神經(jīng)層,添加的是 Dense 全連接神經(jīng)層。參數(shù)有兩個(gè),(注意此處Keras 2.0.2版本中有變更)一個(gè)是輸入數(shù)據(jù)的維度,另一個(gè)units代表神經(jīng)元數(shù),即輸出單元數(shù)。如果需要添加下一個(gè)神經(jīng)層的時(shí)候,不用再定義輸入的緯度,因?yàn)樗J(rèn)就把前一層的輸出作為當(dāng)前層的輸入。在這個(gè)簡(jiǎn)單的例子里,只需要一層就夠了。

3.激活模型

model.compile來(lái)激活模型,參數(shù)中,誤差函數(shù)用的是 mse均方誤差;優(yōu)化器用的是 sgd 隨機(jī)梯度下降法。

4.訓(xùn)練模型

訓(xùn)練的時(shí)候用 model.train_on_batch 一批一批的訓(xùn)練 X_train, Y_train。默認(rèn)的返回值是 cost,每100步輸出一下結(jié)果。

5.驗(yàn)證模型

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

Weights= [[ 0.49136472]]

biases= [ 2.00405312]

6.可視化學(xué)習(xí)結(jié)果

最后可以畫(huà)出預(yù)測(cè)結(jié)果,與測(cè)試集的值進(jìn)行對(duì)比。

二、完整代碼

import numpy as np
np.random.seed(1337) 
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
 
# 生成數(shù)據(jù)
X = np.linspace(-1, 1, 200) #在返回(-1, 1)范圍內(nèi)的等差序列
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組數(shù)據(jù)為訓(xùn)練數(shù)據(jù)集
X_test, Y_test = X[160:], Y[160:]  #后40組數(shù)據(jù)為測(cè)試數(shù)據(jù)集
 
# 構(gòu)建神經(jīng)網(wǎng)絡(luò)模型
model = Sequential()
model.add(Dense(input_dim=1, units=1))
 
# 選定loss函數(shù)和優(yōu)化器
model.compile(loss='mse', optimizer='sgd')
 
# 訓(xùn)練過(guò)程
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))
 
# 測(cè)試過(guò)程
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)
 
# 將訓(xùn)練結(jié)果繪出
Y_pred = model.predict(X_test)
plt.scatter(X_test, Y_test)
plt.plot(X_test, Y_pred)
plt.show()

三、其他補(bǔ)充

1. numpy.linspace

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

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

>>> 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實(shí)現(xiàn)簡(jiǎn)單線性回歸模型操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用wxPython實(shí)現(xiàn)Windows11任務(wù)欄通知功能

    使用wxPython實(shí)現(xiàn)Windows11任務(wù)欄通知功能

    這篇文章主要為大家詳細(xì)介紹了如何使用 wxPython 模塊,在 Windows 11 中實(shí)現(xiàn)任務(wù)欄通知功能,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Python實(shí)現(xiàn)視頻畫(huà)質(zhì)增強(qiáng)的示例代碼

    Python實(shí)現(xiàn)視頻畫(huà)質(zhì)增強(qiáng)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)對(duì)視頻進(jìn)行畫(huà)質(zhì)增強(qiáng)功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-04-04
  • Python使用Shelve保存對(duì)象方法總結(jié)

    Python使用Shelve保存對(duì)象方法總結(jié)

    在本篇文章里我們給大家分享的是關(guān)于Python使用Shelve保存對(duì)象的知識(shí)點(diǎn)總結(jié),有興趣的朋友們學(xué)習(xí)下。
    2019-01-01
  • python三引號(hào)輸出方法

    python三引號(hào)輸出方法

    在本文里我們給大家分析那個(gè)了關(guān)于python三引號(hào)輸出方法以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • 詳解OpenCV和PIL讀取和顯示圖像的差異

    詳解OpenCV和PIL讀取和顯示圖像的差異

    這篇文章主要介紹了OpenCV和PIL讀取和顯示圖像的差異,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 使用Python插入SVG到PDF文檔中的方法示例

    使用Python插入SVG到PDF文檔中的方法示例

    將SVG(可縮放矢量圖形)文件插入到PDF(便攜式文檔格式)文件中不僅能夠保留SVG圖像的矢量特性,確保圖像在任何分辨率下都保持清晰,使得技術(shù)文檔、手冊(cè)、報(bào)告等內(nèi)容更加豐富多樣且易于傳播,本文將介紹如何使用Python插入SVG文件到PDF文檔中,需要的朋友可以參考下
    2024-08-08
  • Python 中使用正則表達(dá)式轉(zhuǎn)義

    Python 中使用正則表達(dá)式轉(zhuǎn)義

    這篇文章主要介紹了Python 正則表達(dá)式轉(zhuǎn)義,在 Python 中,正則表達(dá)式轉(zhuǎn)義sub()方法用于替換字符串,替換后的字符串由 re 模塊中的 Python 內(nèi)置方法返回,需要的朋友可以參考下
    2023-06-06
  • Python高級(jí)用法總結(jié)

    Python高級(jí)用法總結(jié)

    Python很棒,它有很多高級(jí)用法值得細(xì)細(xì)思索,學(xué)習(xí)使用。本文將根據(jù)日常使用,總結(jié)介紹Python的一組高級(jí)特性,包括:列表推導(dǎo)式、迭代器和生成器、裝飾器
    2018-05-05
  • 關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例

    今天小編就為大家分享一篇關(guān)于阿里云oss獲取sts憑證 app直傳 python的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 親手教你用Python打造一款摸魚(yú)倒計(jì)時(shí)界面

    親手教你用Python打造一款摸魚(yú)倒計(jì)時(shí)界面

    前段時(shí)間在微博看到一段摸魚(yú)人的倒計(jì)時(shí)模板,感覺(jué)很有意思,于是我用了一個(gè)小時(shí)的時(shí)間寫(xiě)一個(gè)頁(yè)面出來(lái),下面小編把實(shí)現(xiàn)過(guò)程分享給大家,對(duì)Python摸魚(yú)倒計(jì)時(shí)界面感興趣的朋友一起看看吧
    2021-12-12

最新評(píng)論

合川市| 江城| 瑞昌市| 三亚市| 仙居县| 开鲁县| 九台市| 昆山市| 汝城县| 慈溪市| 石棉县| 常宁市| 双桥区| 巴塘县| 海原县| 嘉义市| 长沙县| 仙桃市| 临沂市| 绥滨县| 库尔勒市| 郯城县| 玉屏| 岑巩县| 临澧县| 灌云县| 天柱县| 迁西县| 浦城县| 精河县| 潜山县| 芮城县| 百色市| 赞皇县| 三明市| 环江| 合江县| 武夷山市| 合川市| 丹巴县| 合江县|