訓練maskrcnn時,出現了
failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
一開始以為是自己沒有把cuda安裝好,在排查安裝問題,發現沒有問題后重啟電腦,運行
import tensorflow as tf sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
這個是測試代碼,可以查看GPU是否能正常運行
重啟電腦后的第一次GPU是可以正常運行的,說明GPU的配置是沒有問題的
但是當再一次運行要調用GPU的程序時,會報錯
failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
這就有點奇怪了,剛開始以為是程序停止了但GPU還被占用,於是用nvidia-smi查看了一下,發現報錯
Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost. Reboot the system to recover this GPU
GPU已經丟失了。。。需要重啟。。。重啟之后GPU又可以使用,但用GPU一次以后又會出現該問題
經過百度和google發現大概是因為顯存占用過高,導致GPU 離線,通過降低batch_size可能可以解決問題。可以考慮從減少訓練過程顯存占用這個方面入手,修改部分模型訓練參數,有待實驗

至此問題並未解決,從根本解決問題后會及時更新