caffe訓練 Check failed: error == cudaSuccess錯誤彙總
本文地址:
2 Check failed: error == cudaSuccess (2 vs. 0) out of memory
解決方案:這是由於模型比較複雜,導致視訊記憶體溢位導致的
1.減小mini_batch
2.減小圖片大小
3.升級GPU
8 Check failed: error == cudaSuccess (8 vs. 0) invalid device function
解決方案:invaild function應該是超出支援能力,設定的顯示卡的計算能力與顯示卡不匹配
10 Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal
解決方案:這是由於GPU數量不匹配造成的,如果訓練自己的資料,那麼我們只需要將solver.prototxt檔案中的device_id項改為自己的GPU塊數,一塊就是0,兩塊就是1,以此類推。
I0814 23:00:22.604092 8312 blocking_queue.cpp:50] Data layer prefetch queue empty
問題描述:在執行訓練網路一段時間出現blocking_queue.cpp:50] Data layer prefetch queue empty
解決:
可以使用prefetch引數:
data_param {
source: “./data/ilsvrc12/ilsvrc12_train_lmdb”
batch_size: 32
backend: LMDB
prefetch: 20
}
原因:CPU資料讀入慢於GPU計算,導致GPU處於空閒,使得計算速度下降,迭代時間間隔擴大。nvidia-smi顯示為:GPU功率不斷大幅度變化,GPU電壓不穩定。
可能誘因:伺服器同時在進行其他工作,如大規模讀寫資料(頻繁使用IO),資料無法讀入;CPU同時進行其他工作,負載極重,無法正常讀取資料;CPU記憶體爆表,所有程式速度變慢。
https://blog.csdn.net/laoxuan2011/article/details/51548307
48 error = cudaSucess (48 vs. 0) no kernel image is available for execution on the device
cuda 9.0以上不支援計算能為小於3的顯示卡,換cuda 8.0就可以了。