2017-08-31 60 views
1

chainer的文件非常好,但是我發現文件中的每一頁,我沒有找到chainer報告的名稱規則,我應該如何控制報告名稱,並記錄下來? 例如,如下代碼:chainer.reporter.report的密鑰的名稱規則是什麼?

trainer.extend(chainer.training.extensions.PrintReport(
     ['iteration', 'epoch', 'elapsed_time', 'lr', 
     'main/loss', 
     'validation/main/all', 
     ]), trigger=print_interval) 

注意main/lossvalidation/main/all爲什麼是有主要/損失,我應該如何控制對掛失?同樣注意到validation/main/all。同樣的問題。

回答

0

前綴main是您正在使用的更新程序中使用的優化程序(及其目標鏈接)的名稱; StandardUpdater和其他內置更新程序使用名稱main作爲優化程序的默認名稱。如果您按原樣使用其中一個內置更新程序,除非指定了特殊名稱,否則這總是main。如果您正在使用使用多個優化程序的自定義更新程序,那麼自定義更新程序會將名稱分配給各個優化程序,這些優化程序將用作優化程序目標鏈接內報告的項目的前綴。

前綴validationEvaluator擴展名的名稱。當您使用trainer.extend()註冊Evaluator時,您可以選擇通過name參數來覆蓋此前綴。例如,如果要使用多個對象,每個對象測量不同的事物,則必須傳遞不同的名稱,這些名稱將用作報告值中的前綴。

從當前版本(v2.0.2)開始,典型報告值的命名規則彙總在the document of chainer.report中。

+0

所以驗證的「主要」是什麼?目標? – machen