【Bugs】Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize
问题说明
报错如下:
tensorflow.python.framework.errors_impl.UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above
出错原因可能为:
-
cuDNN, CUDA, tensorflow, GPU驱动版本不一致。在不同虚拟环境中配置不同版本的tf以及CUDA并根据代码所需环境切换。
-
限制 GPU 内存增长:
默认情况下,TensorFlow 会映射进程可见的所有 GPU的几乎全部内存。这是为了减少内存碎片,更有效地利用设备上相对宝贵的 GPU 内存资源。为了将 TensorFlow 限制为使用一组特定的 GPU,我们使用
tf.config.experimental.set_visible_devices
方法。
解决方法
在代码运行开始部分进行设置:
import tensorflow as tf
gpus= tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)
可以运行。
参考资料
tensorflow_issues