hourglass訓練出現acc是nan的情形

2021-08-14 15:28:12 字數 1339 閱讀 5893

1、在訓練hourglass和pyranet的時候都會出現訓練的時候acc會nan,why?

根據acc的**,只有在分母為0的時候才會出現nan的情形,以coco為例,badidxcount是17,造成nan。

為什麼badidxcount會是17呢?

返回的全是-1,為什麼會返回全是-1?

只能是給出的17個部位的標籤全部是1引起來的,為什麼全是1,原因是因為17張map圖都是0,值,原因在於很多coco的標註點特別接近邊緣,再進行旋轉縮放的時候很容易把標註點切掉,特別對於只有乙個標註點的樣本,所以就會出現出來的影象沒有標註點,17個通道的target都是0值,從而導致最後的nan得情況,但是注意這只是在batchsize=1的情況下才會出現這種情況

batchsize>1,就很少可以說不會出現這種情況。why?

原因是因為batchsize>1的清醒下,依次輸入網路是好幾張一起,以pyranet為例

如果batchsize為3的話

對應的輸入,輸出,target的大小如下

相應的輸出**

print('input')

print(self.input:size())

print(self.input:type())

print('output')

print(#output)

print(output)

print('target')

print(#self.target)

print(self.target)

對於batchsize大於1的情形,因為是連續的n張一起做測評,所以幾乎不可能說n張都是乙個標註點都不存在,這樣的概率很低很低,至少在batchsize>1的條件下進行訓練的時候發現沒有nan的情形出現

2、

size = self.iters * self.batchsize
訓練的乙個epoch是batchsize*迭代的次數之

sphereface 訓練出現的問題

訓練了64 層卷積的模型,沒有訓出來作者 上發布的結果。現在訓練最好的結果是十重校驗的平均是99.30 上報告的精度是99.42 差的比較多。訓練了ms 的sphereface20 層的模型。迭代了2w次loss 沒有下降,我現在的想法是 500w 的資料除以batchsize 128 那麼可能所有...

演算法訓練 出現次數最多的整數

問題描述 編寫乙個程式,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數n也是由使用者輸入的,最多不會超過20。然後程式將對這個陣列進行統計,把出現次數最多的那個陣列元素值列印出來。如果有兩個元素值出現的次數相同,即並列第一,那麼只列印比較小的那個值。輸入格式 第一行是乙個整數 n,n ...

演算法訓練 出現次數最多的整數

演算法訓練 出現次數最多的整數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 編寫乙個程式,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數n也是由使用者輸入的,最多不會超過20。然後程式將對這個陣列進行統計,把出現次數最多的那個陣列元素值列印出來。如果有兩個元素值出現的次數...