2017-04-06 85 views
0

我正在訓練一個網絡,在我的訓練集上進行批量優化,並且我希望獲得包含每個訓練示例丟失的損失向量。火炬在批次優化過程中如何獲得損失值的張量

更具體地說,我正在使用批量爲64的圖像(尺寸爲3x64x64)。因此,我的輸入是尺寸爲64x3x64x64的張量。

期間,當我寫

output = net:forward(input) 
loss = criterion:forward(input, target) 

loss是多少,但我想在我的批處理每幅圖像一個條目來獲得(大小64)張量,相當於該損失價值培訓精確的圖像。

有沒有辦法做到這一點沒有循環在我的輸入張量的第一維?

回答

0

轉發方法調用另一種方法,即可以覆蓋的方法updateOutput。 例如,對於MSECriterion(),您可以通過將調用註釋到THNN庫來更改該方法,並自行編寫標準如何工作,即執行正常元素明智減法,然後平方(再次元素明智)併除以數據點的總數(再次元素明智);然後將輸出作爲張量返回。

在導航到nn文件夾後,如果您使用luarocks make rocks/[the scm file in the folder]更改了此項目,則還需要重新編譯nn軟件包。

+0

是的確定總是可以編寫一個新的方法,我意識到這一點:)我只是希望它已經完成了,但似乎沒有選擇在標準函數中做到這一點,而不需要重寫它們。 。 – fonfonx