我正在尝试使用 VGG16 运行一些基本的迁移学习代码。我使用的是 Ubuntu 16.04、TensorFlow 1.3 和 Keras,我有 4 个 1080ti GPU。
当我到达这行代码时:
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 notebook 内核死了。
显然这是一个内存问题,但我不明白为什么我的 GPU 突然被这段代码占用了。我应该补充一点,这个问题是在最近 24 小时内才开始出现的,而且所有这些代码在一天前都运行良好。这里有很多类似问题的答案,但它们都提到了其他运行 TF 的实例(并建议关闭它们)。在我的例子中,这是唯一运行的 TF 应用程序(或任何其他应用程序)。
最佳答案
尝试杀死所有 python 进程,然后删除 ~/.nv 文件夹并再次运行。它对我有同样的错误。
关于TensorFlow:无法创建 cudnn 句柄:CUDNN_STATUS_INTERNAL_ERROR 但没有其他 TF 实例正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015113/