第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用經(jīng)過(guò)訓(xùn)練和保存的前饋神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)新數(shù)據(jù)

如何使用經(jīng)過(guò)訓(xùn)練和保存的前饋神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)新數(shù)據(jù)

慕俠2389804 2023-09-12 17:26:59
我正在嘗試使用經(jīng)過(guò)訓(xùn)練和保存的模型對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。我的新數(shù)據(jù)與用于構(gòu)建已保存模型的數(shù)據(jù)形狀不同。我嘗試過(guò)使用 model.save() 和 model.save_weights(),因?yàn)槲胰匀幌氡A粲?xùn)練配置,但它們都會(huì)產(chǎn)生相同的錯(cuò)誤。即使形狀不同,有沒有辦法在新數(shù)據(jù)上使用保存的模型?from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Activation, Densemodel = Sequential([    Dense(units=11, activation='relu', input_shape = (42,), kernel_regularizer=keras.regularizers.l2(0.001)),    Dense(units=1, activation='sigmoid')])new_model.load_weights('Fin_weights.h5')y_pred = new_model.predict(X)ValueError: Error when checking input: expected dense_6_input to have shape (44,) but got array with shape (42,)
查看完整描述

1 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

不,您必須完全匹配相同的輸入形狀。


您的模型代碼(model = Sequential([...行)應(yīng)與您保存的模型完全對(duì)應(yīng),并且您的輸入數(shù)據(jù)(X行y_pred = new_model.predict(X))應(yīng)與保存的模型()中的形狀相同'Fin_weights.h5'。


您唯一能做的就是以某種方式用例如零填充新數(shù)據(jù)。但只有當(dāng)其余值對(duì)應(yīng)相同的特征或信號(hào)時(shí),這才有幫助。


例如,假設(shè)您正在訓(xùn)練 NN 來(lái)識(shí)別形狀 (2, 3) 的灰度圖像,如下所示:


1 2 3

4 5 6

然后您訓(xùn)練了模型并將其保存以供以后使用。之后,您決定將神經(jīng)網(wǎng)絡(luò)用于更小或更大尺寸的圖像,如下所示


1 2

3 4

或這個(gè)


1? 2? 3? 4

5? 6? 7? 8

9 10 11 12

而且您幾乎可以肯定,您的神經(jīng)網(wǎng)絡(luò)仍然會(huì)在不同形狀的輸入上給出良好的結(jié)果。


然后,您只需在右側(cè)填充第一個(gè)不匹配的圖像,并在右側(cè)添加額外的零,如下所示:


1 2 0

3 4 0

或另一種填充方式,在左側(cè)


0 1 2

0 3 4

第二張圖片你剪了一點(diǎn)


1? 2? 3

5? 6? 7

(或從另一邊剪掉)。


只有這樣,您才能將神經(jīng)網(wǎng)絡(luò)應(yīng)用到經(jīng)過(guò)處理的輸入圖像。


與您的情況相同,您必須添加兩個(gè)零。但僅限于編碼輸入信號(hào)或特征的序列幾乎相同的情況。


如果您的預(yù)測(cè)數(shù)據(jù)大小錯(cuò)誤,請(qǐng)執(zhí)行以下操作:


y_pred = new_model.predict(

? ? np.pad(X, ((0, 0), (0, 2)))

)

這會(huì)在右側(cè)填充您的數(shù)據(jù)的兩個(gè)零,盡管您可能希望將其填充在左側(cè)((2, 0)而不是(0, 2))或兩側(cè)((1, 1)而不是(0, 2))。


如果您保存的權(quán)重具有不同的形狀,則模型的代碼會(huì)在模型代碼中執(zhí)行此操作(更改42 --> 44):


model = Sequential([

? ? Dense(units=11, activation='relu', input_shape = (44,), kernel_regularizer=keras.regularizers.l2(0.001)),

? ? Dense(units=1, activation='sigmoid')

])

您可能應(yīng)該執(zhí)行上述兩件事,以匹配您保存的模型/權(quán)重。


如果針對(duì)44數(shù)字輸入訓(xùn)練的神經(jīng)網(wǎng)絡(luò)對(duì)于任何數(shù)據(jù)填充都會(huì)給出完全錯(cuò)誤的結(jié)果42,那么唯一的方法是重新訓(xùn)練神經(jīng)網(wǎng)絡(luò)的42輸入并再次保存模型。


但是你必須考慮到這樣一個(gè)事實(shí),input_shape = (44,)在 keras 庫(kù)中實(shí)際上意味著X輸入的最終數(shù)據(jù)model.predict(X)應(yīng)該是二維形狀(10, 44)(其中 10 是你的神經(jīng)網(wǎng)絡(luò)要識(shí)別的不同對(duì)象的數(shù)量),keras 隱藏第 0 維,即所謂的批量維度。批次(第 0 個(gè))維度實(shí)際上可能會(huì)有所不同,您可以提供 5 個(gè)對(duì)象(即 shape 數(shù)組(5, 44))或 7 個(gè)對(duì)象(形狀 (7, 44))或任何其他數(shù)量的對(duì)象。批處理僅意味著 keras 在一次調(diào)用中并行處理多個(gè)對(duì)象,只是為了快速/高效。但每個(gè)單個(gè)對(duì)象都是形狀的一維子數(shù)組(44,)。您可能誤解了數(shù)據(jù)如何輸入網(wǎng)絡(luò)并表示的一些內(nèi)容。44 不是數(shù)據(jù)集的大小(對(duì)象數(shù)量),而是單個(gè)對(duì)象的特征數(shù)量,例如,如果網(wǎng)絡(luò)識(shí)別/分類一個(gè)人,那么 44 可以表示一個(gè)人的 44 個(gè)特征,例如年齡、性別、身高、體重,出生月份,種族,膚色,每天卡路里,月收入,月支出,工資等總共1個(gè)人類對(duì)象的44個(gè)不同的固定特征。他們可能不會(huì)改變。但是,如果您獲得了一些僅具有42或36特征的其他數(shù)據(jù),而您只需要0精確地將其放置在 中缺少的特征位置44,則在右側(cè)或左側(cè)填充零是不正確的,您必須放置0s 正好位于 中缺失的那些位置44。


但是你的 44 和 42 和 36 可能意味著不同輸入對(duì)象的數(shù)量,每個(gè)對(duì)象都只有1特征。想象一個(gè)任務(wù),當(dāng)你有一個(gè)50只有兩列數(shù)據(jù)的人類數(shù)據(jù)集(表) salary,country然后你可能想要構(gòu)建猜測(cè)country到salary那時(shí)你將擁有的神經(jīng)網(wǎng)絡(luò)input_shape = (1,)(對(duì)應(yīng)于 1 個(gè)數(shù)字的一維數(shù)組 - salary),但絕對(duì)是不是input_shape = (50,)(表中的人數(shù))。input_shape只講述 1 個(gè)物體、1 個(gè)人的形狀。50 是對(duì)象(人類)的數(shù)量,它是 numpy 數(shù)組中用于預(yù)測(cè)的批量(第 0 個(gè))維度,因此您的X數(shù)組model.predict(X)的形狀為(50, 1),但input_shape = (1,)在模型中?;旧?keras 省略(隱藏)第 0 個(gè)批次維度。如果44在您的情況下,實(shí)際上意味著數(shù)據(jù)集大?。▽?duì)象數(shù)量),那么您錯(cuò)誤地訓(xùn)練了 NN,應(yīng)該使用 ,input_shape = (1,)作為44批量維度進(jìn)行重新訓(xùn)練,這44可能會(huì)根據(jù)訓(xùn)練或測(cè)試數(shù)據(jù)集的大小而有所不同。

如果您要重新訓(xùn)練您的網(wǎng)絡(luò),那么整個(gè)訓(xùn)練/評(píng)估過(guò)程的簡(jiǎn)單形式如下:

  1. 假設(shè)您有一個(gè) CSV 文件格式的數(shù)據(jù)集data.csv。例如,總共有 126 行和 17 列。

  2. 以某種方式讀入您的數(shù)據(jù),例如通過(guò)np.loadtxt或通過(guò)pd.read_csv或通過(guò)標(biāo)準(zhǔn) python 的csv.reader()。將數(shù)據(jù)轉(zhuǎn)換為數(shù)字(浮點(diǎn)數(shù))。

  3. 按行將數(shù)據(jù)隨機(jī)分成兩部分training/evaluation大約相應(yīng)的大小90%/10%行,例如 110 行用于訓(xùn)練,16 行用于評(píng)估(總共 126 行)。

  4. 決定將預(yù)測(cè)數(shù)據(jù)中的哪些列,您可以預(yù)測(cè)任意數(shù)量的列,假設(shè)我們要預(yù)測(cè)兩列,即第 16 列和第 17 列?,F(xiàn)在,您的數(shù)據(jù)列被分為兩部分X(15 列,編號(hào)為 1-15)和Y(2 列,編號(hào)為 16-17)。

  5. 在網(wǎng)絡(luò)層的代碼中,第一層設(shè)置input_shape = (15,)(15 是 中的列數(shù)X),Dense(2)最后一層(2 是 中的列數(shù)Y)。

  6. 使用model.fit(X, Y, epochs = 1000, ...)方法在訓(xùn)練數(shù)據(jù)集上訓(xùn)練網(wǎng)絡(luò)。

  7. 將經(jīng)過(guò)訓(xùn)練的網(wǎng)絡(luò)保存到模型文件model.save(...)net.h5.

  8. 通過(guò) 加載您的網(wǎng)絡(luò)model.load(...)

  9. 通過(guò) 測(cè)試網(wǎng)絡(luò)質(zhì)量predicted_Y = model.predict(testing_X),與 進(jìn)行比較testing_Y,如果網(wǎng)絡(luò)模型選擇正確,則testing_Y應(yīng)該接近predicted_Y,例如80%正確(這個(gè)比率稱為準(zhǔn)確性)。

  10. 為什么我們將數(shù)據(jù)集分成訓(xùn)練/測(cè)試部分。因?yàn)橛?xùn)練階段只看到訓(xùn)練數(shù)據(jù)集子部分。網(wǎng)絡(luò)訓(xùn)練的任務(wù)是很好地記住整個(gè)訓(xùn)練數(shù)據(jù),并通過(guò)找到X和之間的一些隱藏依賴關(guān)系來(lái)概括預(yù)測(cè)Y。因此,如果調(diào)用model.predict(...)訓(xùn)練數(shù)據(jù),應(yīng)該給出接近的100%準(zhǔn)確性,因?yàn)榫W(wǎng)絡(luò)會(huì)看到所有這些訓(xùn)練數(shù)據(jù)并記住它。但測(cè)試數(shù)據(jù)它根本看不到,因此需要聰明并真正預(yù)測(cè)通過(guò) X 測(cè)試 Y,因此測(cè)試的準(zhǔn)確性較低,例如80%。

  11. 如果測(cè)試結(jié)果的質(zhì)量不好,您必須改進(jìn)網(wǎng)絡(luò)架構(gòu)并從頭開始重新運(yùn)行整個(gè)訓(xùn)練過(guò)程。

  12. 如果您需要預(yù)測(cè)部分?jǐn)?shù)據(jù),例如,當(dāng)您的X數(shù)據(jù)中只有 15 列中的 12 列時(shí),則用零填充缺失的列值,例如,如果您缺少第 7 列和第 11 列,則將零插入到第 7 列和第 11 位。這樣總列數(shù)又是 15。您的網(wǎng)絡(luò)將僅支持 model.predict() 的輸入,即訓(xùn)練時(shí)使用的列數(shù),即 15,該數(shù)字在 中提供input_shape = (15,)。


查看完整回答
反對(duì) 回復(fù) 2023-09-12
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)