我正在嘗試使用VGG16運行一些基本的傳輸學習代碼。我使用的是Ubuntu 16.04,TensorFlow 1.3和Keras,我有4個1080ti GPU。TensorFlow:無法創建cudnn句柄:CUDNN_STATUS_INTERNAL_ERROR但沒有其他TF實例正在運行
當我到了這行代碼:
datagen = ImageDataGenerator(rescale=1./255)
model = applications.VGG16(include_top=False, weights='imagenet')
的NVIDIA-SMI顯示輸出這樣的:
Processes: GPU Memory |
| GPU PID Type Process name Usage
| 0 14241 G /usr/lib/xorg/Xorg 256MiB |
| 0 14884 G compiz 155MiB |
| 0 16497 C /home/simon/anaconda3/bin/python 10267MiB |
| 1 16497 C /home/simon/anaconda3/bin/python 10611MiB |
| 2 16497 C /home/simon/anaconda3/bin/python 10611MiB |
| 3 16497 C /home/simon/anaconda3/bin/python 10611MiB |
+ ------------- -------------------------------------------------- -------------- +
然後,在終端的輸出是
2017-09-02 15:59:15.946927: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-09-02 15:59:15.946960: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-09-02 15:59:15.946973: F tensorflow/core/kernels/conv_ops.cc:672] Check failed: stream->parent()->GetConvolveAlgorithms(conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)
而我的jupyter筆記本核心死亡。
顯然這是一個內存問題,但我不明白爲什麼突然之間我的GPU被這些代碼佔用了。我應該補充說,這個問題只是在過去的24小時內開始的,並且所有這些代碼在一天前都運行良好。在這裏有類似的問題有很多答案,但他們都提到TF運行的其他實例(並建議關閉它們)。就我而言,這是唯一運行的TF應用程序(或任何其他應用程序)。
你確定16497是不是殭屍進程?你有沒有嘗試重新啓動? –
沒有羅伯特。我尋找殭屍進程,沒有。這真的很煩人,因爲幾乎所有與這個問題有關的答案都表明這是由於殭屍進程的內存泄漏造成的...... – GhostRider