好不容易把GPU版本的keras 跟tensorflow 都裝好了
要計算的時候卻發現無法使用
出現以下的錯誤訊息
Blas GEMM launch failed
經過查詢才知道,GPU版的tensorflow或者keras在模型訓練時遇到Blas GEMM launch failed錯誤,(keras 一般將tensorflow作為backend,如果安裝了GPU版本的tensorflow,那麼在使用keras時會優先使用GPU)
這是調用GPU時,記憶體分配遇到了問題,解決方式是在模型訓練之前為tensorflow或者keras分配記憶體空間
而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.8
config.gpu_options.allow_growth =True
set_session(tf.Session(config=config))
======================================================================
config.gpu_options.per_process_gpu_memory_fraction = 0.8
#設定每個GPU要拿出多少容量給程式使用,0.8代表80%allow_growth option,程式開始執行時分配少量的GPU容量,而後按需求慢慢的增加
如果使用jupyter notebook,做完上述設置後可能出現GPU sync failed,重啟程式就沒問題了。
沒有留言:
張貼留言