我在使用pycharm训练yolo-v3结束测试过程中出现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.问题,网上很多教程说是TensorFlow+Keras+cuda+cudnn版本号不对,但是有另外一台电脑同样的配置并没有出现问题,所以看到这篇文章,考虑是内存爆了的问题。在要运行的代码中添加如下几行:
import tensorflow as tf
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ['CUDA_VISIBLE_DEVICES'] = "0,1" # 选择哪一块gpu,如果是-1,就是调用cpu
config = tf.ConfigProto()#对session进行参数配置
config.allow_soft_placement=True #: 如果你指定的设备不存在,允许TF自动分配设备
config.gpu_options.per_process_gpu_memory_fraction=0.7#分配百分之七十的显存给程序使用,避免内存溢出,可以自己调整
config.gpu_options.allow_growth = True#按需分配显存,这个比较重要
session = tf.Session(config=config)
##或者
# with tf.Session(config=config) as sess:
完美解决上述问题。