?????? 最近,對caffe中新寫的loss層進(jìn)行測試時(shí),出現(xiàn)了xxx does not need backward compution的問題,最終導(dǎo)致了模型無法訓(xùn)練,通過上網(wǎng)查找發(fā)現(xiàn)解決辦法,在最后的loss層參數(shù)上添加loss_weight的值即可。
????? 但是,新添加loss層的類函數(shù)的定義與實(shí)現(xiàn)與原有的loss層并沒有區(qū)別,為什么其在訓(xùn)練時(shí)需要添加額外的差參數(shù)loss_weight呢?
原因:通過查看softmax_loss_layer.cpp發(fā)現(xiàn),在類的LayerSetup函數(shù)中,首先實(shí)現(xiàn)了Loss類的LayerSetup,即LossLayer::LayerSetUp(bottom, top);,GridLossLayer繼承自LossLayer,而LossLayer的LayerSetup中實(shí)現(xiàn)了loss_weight賦值。