tensorflow: interrupted by signal 9: SIGKILL
阿新 • • 發佈:2019-02-04
完整錯誤資訊:Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
出現這個資訊說明發生了記憶體不足的問題,如果是在tensorflow中,可以選擇小的batch_size,或者不要把一整個大的檔案一次性讀到記憶體裡。
如果是ubuntu系統,在命令列裡輸入
$nvidia-smi
會顯示GPU使用情況,從裡面也可以看到還有多少記憶體可以用
一:如果是因為GPU記憶體不夠,可以在程式碼里加入:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5 )
config = tf.ConfigProto(allow_soft_placement=True, gpu_options=gpu_options)
tf.Session(condig=config)
其中 0.5表示使用50%的GPU記憶體資源,tensorflow比較貪心,每次都預設使用最大記憶體執行,所以記憶體不夠時,可以自己做一個限制。
二:出現此問題的另外一個原因可能是你的cpu不夠了,當執行的網路很大的時候,或者需要載入很大的權重,需要cpu來做,容易會導致這個錯誤,在命令列裡輸入
$top
(退出來是ctrl+z)
可以檢視cpu的使用資訊,如果發現有其他不想要的程序在佔用cpu,可以檢視到程序的PID號碼,然後使用命令
$sudo kill 262**
後面的數字是PID碼
如果出現Process finished with exit code (interrupted by signal 6: SIGKILL)這個資訊,可能是cuDNN版本和tensorflow版本不相容的問題,詳細看提示資訊