记录一下:
报错:# 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))
这样即解决了我上述的报错问题。