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))

  

 

這樣即解決了我上述的報錯問題。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM