怎么知道模型有沒(méi)有訓(xùn)練好?有沒(méi)有達(dá)到想要的需求?
解決方法:在每輪訓(xùn)練之后加一個(gè)測(cè)試,在測(cè)試數(shù)據(jù)集上看效果(看損失之類(lèi)的)。
注意:在測(cè)試時(shí)候不調(diào)優(yōu),僅為看效果。
下面的都在某一輪訓(xùn)練里
例如,他們都在for i in range(epoch):里面,具體看上一節(jié)代碼
#測(cè)試步驟開(kāi)始
total_test_loss = 0
with torch.no_grad():#取消梯度,不調(diào)優(yōu)
for data in tes_dataloader:
img, targets = data
outputs = tudui(imgs)
loss = loss_fn(outputs, targets)
#截止到現(xiàn)在,loss只是一部分?jǐn)?shù)據(jù)也就是data在網(wǎng)絡(luò)模型上的損失
total_test_loss = total_test_loss+loss
#accuracy看后面準(zhǔn)確率那里的講解
accuracy = (outputs.argmax(1)==targets).sum()
#targets在上面img, targets = data
total_accuracy = total_accuracy + accuracy
print("整體數(shù)據(jù)集上的Loss:{}".format(total_test_loss))
print("整體數(shù)據(jù)集上的正確率:{}".format(total_accuracy/total_test_size))
torch.save(tudui,"tudui_{}.pth".format(i))
還可以用tensorboard可視化損失
預(yù)測(cè)的準(zhǔn)確率(針對(duì)分類(lèi)問(wèn)題)
截圖最后一行沒(méi)寫(xiě)完[false, true].sum()=1
這個(gè)值/個(gè)數(shù)
Argmax使用
Argmax(1)表示橫著看,Argmax(0)表示豎著看。同樣一組數(shù),輸出結(jié)果不同。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-797468.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-797468.html
到了這里,關(guān)于土堆學(xué)習(xí)筆記——P28完整的模型訓(xùn)練套路(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!