Internal Error: Blas GEMM launch failed 问题

      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

 

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值