2017-09-02 38 views
0

我正在嘗試使用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應用程序(或任何其他應用程序)。

+1

你確定16497是不是殭屍進程?你有沒有嘗試重新啓動? –

+0

沒有羅伯特。我尋找殭屍進程,沒有。這真的很煩人,因爲幾乎所有與這個問題有關的答案都表明這是由於殭屍進程的內存泄漏造成的...... – GhostRider

回答

0

由於ShouldIncludeWinogradNonfusedAlgo()以外的原因,CHECK可能會失敗。例如,如果cudnnSupport實例未能創建,CHECK也會失敗。我建議你在github上發佈更詳細的問題,我可以看看。但更新CUDA驅動程序,然後重新安裝cudnn可以是第一件嘗試。基本上要確保CUDA和cudnn環境最近沒有變化。而且,如果可能的話,最小再現器是優選的。謝謝!

0

嘗試殺死所有的python進程,然後刪除〜/ .nv文件夾並重新運行它。它對我有同樣的錯誤。

相關問題