Error : Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

记录一下:

 

报错:# Error : 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 

  

由于我用的是Flask框,在各个py文件之间相互引用、调用的过程中,可能会存在文件、模块先后顺序的问题,导致一系列的问题;

因为我需要在flask框架中全局加载一次模型,进行多次预测,所以在框架初始化的时候,就需要load_model,之后在接口中进行预测,这就可能会导致一个问题是:是否能够保持模型和预测内容在一个会话中。

从网上查找了一些方法之后,如果没有解耦,直接在一个视图函数中完成一系列的操作(不推荐,新手可能会这样),会避免这个错误,从而实现预测,但是当解耦了之后,就会存在上述说的一些问题,以及上面的报错。

 

上面的报错解决方法是:

# 添加内容:
config.gpu_options.allow_growth = True

 

# 最后代码类似这样的:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config)
with session.as_default():
    x1, x2, model_name = AnalysisData().analysis_config_json()
    model = load_model(model_name)
    a = model.predict((np.random.random((1, 32, 32, 3)) * 255).astype(np.int8))

  

 

这样即解决了我上述的报错问题。

 

 

 

posted @ 2019-11-06 13:43  aidenzdly  阅读(3810)  评论(0编辑  收藏  举报