keras 或 tensorflow 調用GPU報錯:Blas GEMM launch failed


GPU版的tensorflow在模型訓練時遇到Blas GEMM launch failed錯誤,或者keras遇到相同錯誤(keras 一般將tensorflow作為backend,如果安裝了GPU版本的tensorflow,那么在使用keras時會優先使用GPU),類似報錯如下:

InternalError (see above for traceback): Blas GEMM launch failed : a.shape=(300, 1), b.shape=(1, 10), m=300, n=10, k=1

這是調用GPU時,顯存分配遇到了問題。比較保險的方式是在模型訓練之前為tensorflow或者keras分配顯存空間,tensorflow就用如下語句創建session

 

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)  
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))  

而keras就在引入keras時進行參數設置:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allocator_type = 'BFC' #A "Best-fit with coalescing" algorithm, simplified from a version of dlmalloc.
config.gpu_options.per_process_gpu_memory_fraction = 0.3
config.gpu_options.allow_growth = True
set_session(tf.Session(config=config)) 

如果使用ipython notebook,做完上述設置后可能出現GPU sync failed,重啟一下就應該沒問題了。

 

摘自: https://blog.csdn.net/Leo_Xu06/article/details/82023330

自己了試了tensorflow的有用,記錄一下


免責聲明!

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



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