[英]Keras: Question on GPhilo's post on predict vs predict_on_batch. Can't predict() already handle single images just fine?
Keras模型的predict和predict_on_batch方法之間有什么區別?
“不同之處在於,當您傳遞大於一批的x數據時。
預測將遍歷所有數據,預測標簽。 因此,它在內部分批進行分批並一次進料一批。
另一方面,predict_on_batch假定您傳入的數據正好是一批,因此將其饋送到網絡。 它不會嘗試將其拆分(如果陣列很大,則拆分可能會對您的GPU內存造成問題,具體取決於您的設置)”-GPhilo
1)我很難理解為什么我們要在單個圖像上使用predict_on_batch,而不是直接在單個批處理上運行predict()。 Gphilo說predict_on_batch的優點是predict_on_batch不會嘗試在參數中拆分變量。
對於單個圖像,如果數據嘗試分割圖像,我們該怎么辦? .predict()是否應該能夠處理單個圖像? 預報()將能夠正確識別單個圖像,對不對?
假設我們有一個灰度圖像single_image,大小為(1,128,128,1)
那我們不能做:
model.predict(單張圖片)
代替
model.predict_on_batch(single_image)嗎?
並且使用predict_on_batch似乎有缺點。 那么,如果predict_on_batch會導致GPU問題,為什么還要使用predict_on_batch? Forecast_on_batch有什么好處?
2)還是我誤會了? 出於我未曾想到的原因,.predict能不能很好地攝取單個圖像嗎?
我是一個初學者,我想也許我在誤解/沒有注意到GPhilo信息中的明顯內容。
是的你可以。
兩種選擇都很好。
使用predict_on_batch
沒有缺點。 相反,它會快於predict
,因為它確實少東西。
如果batch_size == len(data)
,則predict_on_batch
中可能發生的所有內存問題與predict
情況完全相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.