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

GPU版的tensorflow在模型訓練時遇到Blas GEMM launch failed錯誤,或者keras遇到相同錯誤(keras 通常將tensorflow做爲backend,若是安裝了GPU版本的tensorflow,那麼在使用keras時會優先使用GPU),相似報錯以下:python

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就用以下語句建立sessionsession

 

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

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

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,重啓一下就應該沒問題了。.net

 

摘自: http://www.javashuo.com/article/p-qsvksspz-nq.htmlcode

本身了試了tensorflow的有用,記錄一下blog

相關文章
相關標籤/搜索