上次筆者給大家介紹了如何訓(xùn)練主機(jī)健康度數(shù)據(jù)并如何介紹了如何優(yōu)化主機(jī)健康度的LSTM模型。本次分享給大家介紹如何在訓(xùn)練完成之后對(duì)模型的保存及調(diào)用相關(guān)問(wèn)題。
本次介紹主要包括:
如何將模型權(quán)重和模型體系結(jié)構(gòu)保存在多帶帶的文件中
如何調(diào)用調(diào)用模型,并產(chǎn)生實(shí)時(shí)預(yù)測(cè)數(shù)據(jù)
Keras是用于深度學(xué)習(xí)的簡(jiǎn)單而強(qiáng)大的Python庫(kù)。鑒于深度學(xué)習(xí)模型需要花費(fèi)數(shù)小時(shí),數(shù)天甚至數(shù)周的訓(xùn)練時(shí)間,因此了解如何從磁盤(pán)保存和加載它們非常重要。在本文中,您將發(fā)現(xiàn)如何將Keras模型保存到文件中并再次加載它們以進(jìn)行預(yù)測(cè)。
接下來(lái)我們來(lái)保存模型權(quán)重?cái)?shù)據(jù)為H5形式的格式內(nèi)容。
環(huán)境安裝
首先,確認(rèn)您已安裝最新版本的Keras。注意:保存模型需要安裝h5py庫(kù)。您可以按照以下步驟輕松安裝它:
Sudopip install h5py
保存模型權(quán)重和架構(gòu)
Keras保存模型及訓(xùn)練數(shù)據(jù)十分簡(jiǎn)單,是用模型權(quán)重和模型體系結(jié)構(gòu)一起保存到單個(gè)H5文件中。
以這種方式保存模型包括我們需要了解的有關(guān)模型的所有信息,包括:
模型權(quán)重。
模型架構(gòu)。
模型編譯詳細(xì)信息(損失和指標(biāo))。
模型優(yōu)化器狀態(tài)。
這意味著我們可以直接加載和使用模型,而不必像訓(xùn)練數(shù)據(jù)時(shí)那樣重新去編譯它。(注意:這是保存和加載Keras模型的首選方法)
您可以通過(guò)在模型上調(diào)用save()函數(shù)并指定文件名來(lái)保存模型。下面的示例只關(guān)于構(gòu)建模型部分代碼,完整訓(xùn)練需要查看上次訓(xùn)練數(shù)據(jù)分享文章,評(píng)估模型并將其保存到文件model.h5來(lái)演示這一點(diǎn)。
訓(xùn)練完成之后,在訓(xùn)練腳本當(dāng)前路徑下既會(huì)出現(xiàn)當(dāng)前模型保存的h5格式模型文件。
在模型訓(xùn)練完成并保存成功之后,我們即可對(duì)該模型的文件進(jìn)行調(diào)用,并預(yù)測(cè)出新的數(shù)據(jù)結(jié)果。
首先,我們根據(jù)訓(xùn)練模型,根據(jù)訓(xùn)練數(shù)據(jù)的模型,封裝好調(diào)用數(shù)據(jù)進(jìn)行調(diào)用,并對(duì)實(shí)時(shí)數(shù)據(jù)用歸一化處理數(shù)據(jù)。處理完成之后對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行歸一化處理。然后打印出預(yù)測(cè)結(jié)果。
我們隨機(jī)提取訓(xùn)練數(shù)據(jù)中的某連續(xù)三個(gè)小時(shí)數(shù)據(jù)進(jìn)行測(cè)試后發(fā)現(xiàn),預(yù)測(cè)結(jié)果與實(shí)際數(shù)據(jù)相差比較大。后面通過(guò)debug后發(fā)現(xiàn)預(yù)測(cè)數(shù)據(jù)在進(jìn)行數(shù)據(jù)歸一化處理是,數(shù)據(jù)縮放只會(huì)對(duì)輸入的實(shí)時(shí)數(shù)據(jù)進(jìn)行縮放,而不是通過(guò)對(duì)訓(xùn)練樣本中的數(shù)據(jù)進(jìn)行縮放,所以導(dǎo)致預(yù)測(cè)結(jié)果和實(shí)際結(jié)果相差較大。
經(jīng)過(guò)查閱相關(guān)資料,終于了解了在Keras中,對(duì)歸一化的數(shù)據(jù)也在訓(xùn)練中可以進(jìn)行保存。以便在后續(xù)的調(diào)用腳本中使用。
保存、加載數(shù)據(jù)縮放器
我們可以在訓(xùn)練模型時(shí)將數(shù)據(jù)縮放器通過(guò)dump保存下來(lái),
dump(scaler,open(scaler.pkl, wb))
然后在調(diào)用模型時(shí),通過(guò)load方法加載出來(lái)數(shù)據(jù)縮放器。
為了確認(rèn)縮放器具有預(yù)期的效果,我們?cè)趹?yīng)用縮放之前和之后都報(bào)告每個(gè)輸入功能的最小值和最大值。然后,該模型對(duì)測(cè)試集中的示例進(jìn)行預(yù)測(cè),并計(jì)算分類(lèi)準(zhǔn)確性。在這種情況下,正如預(yù)期的那樣,數(shù)據(jù)集正確歸一化后,模型在測(cè)試集上的準(zhǔn)確性達(dá)到了95%以上。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/130001.html
摘要:可以這樣說(shuō),庫(kù)使得創(chuàng)建深度學(xué)習(xí)模型變得快速且簡(jiǎn)單。在本教程中,你將了解如何用中更具靈活性的函數(shù)式來(lái)定義深度學(xué)習(xí)模型。如何使用函數(shù)式定義簡(jiǎn)單的多層感知器卷積神經(jīng)網(wǎng)絡(luò)以及循環(huán)神經(jīng)網(wǎng)絡(luò)模型。 可以這樣說(shuō),Keras Python庫(kù)使得創(chuàng)建深度學(xué)習(xí)模型變得快速且簡(jiǎn)單。序列API使得你能夠?yàn)榇蠖鄶?shù)問(wèn)題逐層創(chuàng)建模型。當(dāng)然它也是有局限性的,那就是它并不能讓你創(chuàng)建擁有共享層或具有多個(gè)輸入或輸出的模型。Ker...
摘要:我們?cè)谝呀?jīng)準(zhǔn)備好的圖像數(shù)據(jù)集上,使用庫(kù)訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)。示例包含用于測(cè)試卷積神經(jīng)網(wǎng)絡(luò)的圖像。訓(xùn)練,繪制準(zhǔn)確性損耗函數(shù),然后將卷積神經(jīng)網(wǎng)絡(luò)和類(lèi)標(biāo)簽二進(jìn)制文件序列化到磁盤(pán)。第和行將訓(xùn)練集和測(cè)試集按照的比例進(jìn)行分割。 showImg(https://segmentfault.com/img/bV9lqk?w=698&h=698); 為了讓文章不那么枯燥,我構(gòu)建了一個(gè)精靈圖鑒數(shù)據(jù)集(Pok...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1904·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20