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

Keras深度學(xué)習(xí)模型Sequential和Model詳解

 更新時(shí)間:2023年08月23日 10:53:42   作者:小鋒學(xué)長(zhǎng)生活大爆炸  
這篇文章主要介紹了Keras深度學(xué)習(xí)模型Sequential和Model詳解,在Keras中有兩種深度學(xué)習(xí)的模型:序列模型(Sequential)和通用模型(Model),差異在于不同的拓?fù)浣Y(jié)構(gòu),,需要的朋友可以參考下

Keras模型

在Keras中有兩種深度學(xué)習(xí)的模型:序列模型(Sequential)和通用模型(Model)。

差異在于不同的拓?fù)浣Y(jié)構(gòu)。

Sequential序列模型

序列模型各層之間是依次順序的線性關(guān)系(多個(gè)網(wǎng)絡(luò)層的線性堆疊),模型結(jié)構(gòu)通過(guò)一個(gè)列表來(lái)制定,或者逐層添加網(wǎng)絡(luò)結(jié)構(gòu)。

通過(guò)將網(wǎng)絡(luò)層實(shí)例的列表傳遞給 Sequential 的構(gòu)造器,來(lái)創(chuàng)建一個(gè) Sequential 模型。

# 導(dǎo)入類
from keras.models import Sequential
from keras.layers import Dense, Activation
# 構(gòu)建Sequential模型
# Model是keras最核心的數(shù)據(jù)結(jié)構(gòu)
model = Sequential([
    Dense(32, input_shape=(784,)),
    Activation('relu'),
    Dense(10),
    Activation('softmax'),
])

也可以簡(jiǎn)單地使用 .add() 方法將各層添加到模型中

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))

指定輸入數(shù)據(jù)的尺寸 在第一層,模型需要知道它所期望的輸入尺寸。

而在后面的層中,模型可以自動(dòng)地推斷尺寸。

  • 方式1:傳遞一個(gè)input_shape參數(shù)給第一層。它是一個(gè)表示尺寸的元組(一個(gè)由整數(shù)或None組成的元組,其中None表示可能為任何正整數(shù))。在input_shape中不包含數(shù)據(jù)的batch大小。
  • 方式2:某些2D層,如Dense,支持通過(guò)參數(shù)input_dim指定輸入尺寸;某些3D時(shí)序?qū)又С謎nput_dim和input_length參數(shù)。
  • 方式3:如果你需要為你的輸入制定一個(gè)固定大小的batch(對(duì)stateful RNNs很有用),可以傳遞一個(gè)batch_size參數(shù)給一個(gè)層。如果你同時(shí)將batch_size=32和input_shape=(6,8)傳遞給一個(gè)層,那么每一批輸入的尺寸就為(32,6,8)。

因此,如下代碼是等價(jià)的:

model.add(Dense(32, input_shape=(784,))
model.add(Dense(32, input_dim=784))

模型編譯

在訓(xùn)練模型之前,通過(guò) compile 方法配置學(xué)習(xí)過(guò)程,接收的參數(shù):

  • 優(yōu)化器optimizer:可以是現(xiàn)有優(yōu)化器的字符串標(biāo)識(shí)符(如rmspropadagrad),也可以是Optimizer類的示例,見optimizers;
  • 損失函數(shù)loss:模型試圖最小化的目標(biāo)函數(shù)。他可以使現(xiàn)有損失函數(shù)的字符串標(biāo)識(shí)符(如categorical_crossentropymse),也可以是一個(gè)目標(biāo)函數(shù),見losses;
  • 評(píng)估標(biāo)準(zhǔn)metrics:對(duì)于任何分類問(wèn)題,都希望將其設(shè)置為metrics = ['accuracy']。他可以使現(xiàn)有的字符串標(biāo)識(shí)符,也可以是自定義的評(píng)估標(biāo)準(zhǔn)函數(shù)。
# 分類問(wèn)題
model.compile(
    optimizer='rmsprop',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
# 二分類問(wèn)題
model.compile(
    optimizer='rmsprop',
    loss='binary_crossentropy',
    metrics=['accuracy']
)
# 均方誤差回歸問(wèn)題
model.compile(
    optimizer='rmsprop',
    loss='mse'
)
# 自定義評(píng)估標(biāo)準(zhǔn)函數(shù)
import keras.backend as K
def mean_pred(y_true, y_pred):
    return K.mean(y_pred)
model.compile(
    optimizer='rmsprop',
    loss='binary_crossentropy',
    metrics=['accuracy', mean_pred]
)

模型訓(xùn)練

在輸入數(shù)據(jù)和標(biāo)簽的Numpy矩陣上進(jìn)行訓(xùn)練。為了訓(xùn)練這一個(gè)模型,通常會(huì)使用 fit 函數(shù),見文檔

# 對(duì)于具有2個(gè)類的單輸入模型(二進(jìn)制分類)
model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
             loss='binary_crossentropy',
             metrics=['accuracy'])
# 生成虛擬數(shù)據(jù)
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))
# 訓(xùn)練模型,以32個(gè)樣本為一個(gè)batch進(jìn)行迭代
model.fit(data, labels, epochs=10, batch_size=32)
Epoch 1/10
1000/1000 [==============================] - 0s 105us/step - loss: 0.7028 - accuracy: 0.4980
Epoch 2/10
1000/1000 [==============================] - 0s 32us/step - loss: 0.6932 - accuracy: 0.5380
Epoch 3/10
1000/1000 [==============================] - 0s 34us/step - loss: 0.6862 - accuracy: 0.5510
Epoch 4/10
1000/1000 [==============================] - 0s 34us/step - loss: 0.6842 - accuracy: 0.5580
Epoch 5/10
1000/1000 [==============================] - 0s 31us/step - loss: 0.6834 - accuracy: 0.5570
Epoch 6/10
1000/1000 [==============================] - 0s 34us/step - loss: 0.6799 - accuracy: 0.5720
Epoch 7/10
1000/1000 [==============================] - 0s 34us/step - loss: 0.6760 - accuracy: 0.5860
Epoch 8/10
1000/1000 [==============================] - 0s 37us/step - loss: 0.6742 - accuracy: 0.5920
Epoch 9/10
1000/1000 [==============================] - 0s 35us/step - loss: 0.6702 - accuracy: 0.5810
Epoch 10/10
1000/1000 [==============================] - 0s 36us/step - loss: 0.6686 - accuracy: 0.6050
<keras.callbacks.callbacks.History at 0x1e1c574b888>

Model通用模型

通用模型可以設(shè)計(jì)非常復(fù)雜、任意拓?fù)浣Y(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),例如有向無(wú)環(huán)網(wǎng)絡(luò)、共享層網(wǎng)絡(luò)等。

相比于序列模型只能依次線性逐層添加,通用模型能夠比較靈活地構(gòu)造網(wǎng)絡(luò)結(jié)構(gòu),設(shè)定各層級(jí)的關(guān)系。

from keras.layers import Input, Dense
from keras.models import Model
# 定義輸入層,確定輸入維度
input = input(shape = (784, ))
# 2個(gè)隱含層,每個(gè)都有64個(gè)神經(jīng)元,使用relu激活函數(shù),且由上一層作為參數(shù)
x = Dense(64, activation='relu')(input)
x = Dense(64, activation='relu')(x)
# 輸出層
y = Dense(10, activation='softmax')(x)
# 定義模型,指定輸入輸出
model = Model(input=input, output=y)
# 編譯模型,指定優(yōu)化器,損失函數(shù),度量
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
# 模型擬合,即訓(xùn)練
model.fit(data, labels)

到此這篇關(guān)于Keras深度學(xué)習(xí)模型Sequential和Model詳解的文章就介紹到這了,更多相關(guān)Keras深度學(xué)習(xí)模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python Tkinter版學(xué)生管理系統(tǒng)

    python Tkinter版學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python Tkinter版學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python 多線程應(yīng)用介紹

    python 多線程應(yīng)用介紹

    python可以方便地支持多線程??梢钥焖賱?chuàng)建線程、互斥鎖、信號(hào)量等等元素,支持線程讀寫同步互斥
    2012-12-12
  • Python實(shí)現(xiàn)多條件篩選Excel數(shù)據(jù)并批量繪制直方圖

    Python實(shí)現(xiàn)多條件篩選Excel數(shù)據(jù)并批量繪制直方圖

    這篇文章主要為大家介紹了如何Python對(duì)Excel數(shù)據(jù)進(jìn)行多條件篩選和去除并批量繪制直方圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • python 如何用 Hypothesis 來(lái)自動(dòng)化單元測(cè)試

    python 如何用 Hypothesis 來(lái)自動(dòng)化單元測(cè)試

    這篇文章主要介紹了python 如何用 Hypothesis 來(lái)自動(dòng)化單元測(cè)試,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python比較兩個(gè)圖片相似度的方法

    Python比較兩個(gè)圖片相似度的方法

    這篇文章主要介紹了Python比較兩個(gè)圖片相似度的方法,涉及Python操作pil模塊實(shí)現(xiàn)圖片比較的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • python通過(guò)TimedRotatingFileHandler按時(shí)間切割日志

    python通過(guò)TimedRotatingFileHandler按時(shí)間切割日志

    這篇文章主要介紹了python通過(guò)TimedRotatingFileHandler按時(shí)間切割日志的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python進(jìn)度條庫(kù)tqdm使用記錄(特點(diǎn)和用法)

    python進(jìn)度條庫(kù)tqdm使用記錄(特點(diǎn)和用法)

    tqdm是一個(gè)Python庫(kù),用于在命令行界面中創(chuàng)建美觀的進(jìn)度條,以跟蹤代碼中循環(huán)、迭代和任務(wù)的執(zhí)行進(jìn)度,本文給大家介紹python進(jìn)度條庫(kù)tqdm使用記錄,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Unicode和Python的中文處理

    Unicode和Python的中文處理

    在Python語(yǔ)言中,Uincode字符串處理一直是一個(gè)容易讓人迷惑的問(wèn)題。許多Python愛好者經(jīng)常因?yàn)楦悴磺錟nicode、UTF-8還有其它許許多多的編碼之間的區(qū)別而大傷腦筋。本文將介紹Unicode和Python的中文處理的相關(guān)知識(shí)。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法

    django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法

    這篇文章主要介紹了django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python 爬取網(wǎng)頁(yè)圖片詳解流程

    Python 爬取網(wǎng)頁(yè)圖片詳解流程

    沒(méi)想到python是如此強(qiáng)大,令人著迷,以前看見圖片總是一張一張復(fù)制粘貼,現(xiàn)在好了,學(xué)會(huì)python就可以用程序?qū)⒁粡垙垐D片,保存下來(lái)。今天網(wǎng)上沖浪看到很多美圖,可是圖片有點(diǎn)多,不想一張一張地復(fù)制粘貼,怎么辦呢?辦法總是有的,即便沒(méi)有我們也可以創(chuàng)造一個(gè)辦法
    2021-11-11

最新評(píng)論

仁寿县| 成都市| 钟祥市| 老河口市| 乌拉特前旗| 革吉县| 绩溪县| 卓资县| 上林县| 新源县| 乌拉特前旗| 科尔| 鲁山县| 邵东县| 增城市| 邵阳市| 三穗县| 卓尼县| 临城县| 台南县| 海宁市| 孟津县| 泰顺县| 西藏| 邢台市| 越西县| 濮阳市| 高尔夫| 元朗区| 嘉黎县| 德安县| 乌兰察布市| 井陉县| 洪雅县| 吉安市| 蛟河市| 西乡县| 呼伦贝尔市| 离岛区| 怀宁县| 临泽县|