轉自或參考:Internal Error: Blas GEMM launch failed 問題
https://blog.csdn.net/feixiang7701/article/details/81515447
Tensorflow程序運行中出現"Interal Error:Blas GEMM launch failed.",此錯誤主要是由於程序運行時GPU的空間不足而引起的。故一般出現此錯誤的時候,會發現程序提示的GPU freeMemory 很少,如下圖所示。
出現顯存不足的主要問題是Tensorflow默認申請可使用的全部顯存,當tensorflow程序運行會話卻沒有關閉會話釋放資源的時候,就會出現此錯誤,尤其是使用Keras、以及 jupyter的時候。可使用watch命令查看NVIDIA顯卡的顯存使用情況。如下圖所示tensorflow的程序幾乎使用了全部內存,故當新程序運行時就會顯示Internal Error。
watch nvidia-smi
此問題的解決方法如下:
(1)通過強制結束進程(或者重啟電腦),進行顯存的釋放,對於Keras、jupyter等運行時顯存被耗盡的情況。kill -9可以無條件終止程序。
kill -9 3627
(2)通過設定config為使用的顯存按需自動增長,避免顯存被耗盡,可進行有效的預防。
gpu_no = '0' # or '1'
os.environ["CUDA_VISIBLE_DEVICES"] = gpu_no
# 定義TensorFlow配置
config = tf.ConfigProto()
# 配置GPU內存分配方式,按需增長,很關鍵
config.gpu_options.allow_growth = True
# 配置可使用的顯存比例
config.gpu_options.per_process_gpu_memory_fraction = 0.1
# 在創建session的時候把config作為參數傳進去
sess = tf.InteractiveSession(config = config)
參考鏈接:https://www.cnblogs.com/zhsuiy/p/8030651.html
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。