大坑之Process finished with exit code -1073740791(0xC0000409)
作者是個技術不怎麼樣的bug製造者,用的是windows+caffe+python的GPU版本訓練模型,但是在訓練載入prototxt的時候遇到了這個問題,噩夢一般的Process finished with exit code -1073740791(0xC0000409)表達一下這兩天修改這個bug的心路歷程。
報錯的地方在一個將三個通道進行全連線層之後,就針對這個問題,作者覺得自己已經是一個夠機靈的小機靈鬼了!
0.技術渣首先是百度
大部分人解釋都是這是視訊記憶體不足造成的問題,那麼視訊記憶體不足的原因就會有很多,比如說:
a.顯示卡不行,但是作者用的是1080Ti不至於連個VGG都搞不定吧??? b.修改batchsize的大小,但是當這個大小改為1的時候,依舊報錯。 c.圖片尺寸reshape大小的問題,修改了畫素已經是64x64了還是報錯。 d.全連線層的輸入輸出太多,將2048改成了128,依舊報錯。 e.要麼刪掉一路,依舊報錯。。。。。。。。
修改了一天之後,毫無成果,可能,這就是bug製造者的偉大之處吧_(:з」∠)_
1.技術渣緊緊抱住大佬的大腿
在痛苦了一晚上連做夢都在思考這個bug到底為什麼之後,作者決定投奔大佬,緊緊抱住大佬的大腿。
經過大佬們的縝密分析,覺得還是全連線層引數太多的原因,好,既然這樣,作者就對全連線層下手了,刪掉刪掉,拜拜大盤雞!!!!!╭(╯^╰)╮
精彩的是,一個新的錯誤出現了,ExactNumBottomBlobs() == bottom.size() (2 vs. 3)
2.技術渣變身大機靈鬼
作者就按照https://yq.aliyun.com/ziliao/251355中的解釋,發現網路最後loss層bottom的個數為3,但是預設貌似應該是2。嘗試修改之後,就沒有再報錯Process finished with exit code -1073740791(0xC0000409)了。
作者嘗試把之前修改的引數改回去,只修改最後的bottom的個數,也沒有再報錯了,雖然不知道為什麼報錯空指標或者是視訊記憶體不足,但是天塹陡然變通途???
最後大機靈鬼要說一下,除了感謝大佬們的提示,可以通過修改caffe的原始碼來改bottom的預設引數,還是參考https://yq.aliyun.com/ziliao/251355中的方法,具體怎麼做就不再贅述了。
最後的最後,小可愛們轉載一定要註明網址哦!!!今天也是元氣滿滿的bug製造者(~ ̄▽ ̄)~