2 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
正如Usman Ali建議的那樣,您需要eval
通過(guò)調(diào)用將模型設(shè)置為模式
model.eval()
在你的prediction
功能之前。
什么eval
模式:
將模塊設(shè)置為評(píng)估模式。
這僅對(duì)某些模塊有任何影響。請(qǐng)參閱特定模塊的文檔以了解其在訓(xùn)練/評(píng)估模式下的行為的詳細(xì)信息,如果它們受到影響,例如 Dropout、BatchNorm 等。
當(dāng)您完成預(yù)測(cè)并希望繼續(xù)訓(xùn)練時(shí),不要忘記通過(guò)調(diào)用將模型重置為訓(xùn)練模式
model.train()
模型中有幾層可能會(huì)將隨機(jī)性引入網(wǎng)絡(luò)的前向傳播。一個(gè)這樣的例子是dropout層。輟學(xué)層隨機(jī)“丟棄”p
其神經(jīng)元的百分比以增加模型的泛化性。
此外,BatchNorm(以及可能的其他自適應(yīng)歸一化層)跟蹤數(shù)據(jù)的統(tǒng)計(jì)信息,因此在train
模式或eval
模式中具有不同的“行為”。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
您已定義函數(shù),但尚未訓(xùn)練模型。該模型在訓(xùn)練之前將預(yù)測(cè)隨機(jī)化,這就是您的預(yù)測(cè)不一致的原因。如果您設(shè)置一個(gè)帶有損失函數(shù)的優(yōu)化器,并運(yùn)行多個(gè) epoch,則預(yù)測(cè)將穩(wěn)定。此鏈接可能會(huì)有所幫助:https ://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html 。看第 3 節(jié)和第 4 節(jié)
添加回答
舉報(bào)