TensorFlow-GPU版本,载入模型时报错:Blas GEMM。。解决办法

本文详细介绍了在使用TensorFlow GPU版本时,如何解决因GPU内存被其他程序占用而导致的模型加载错误。提供了检查和关闭占用GPU资源的程序的方法,以及通过分配GPU显存避免内存冲突的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果安装了GPU版本的TensorFlow,使用其进行模型的载入时,遇到报错,类似下面这种:

InternalError: Blas GEMM launch failed : a.shape=(10000, 784), b.shape=(784, 10), m=10000, n=10, k=784
	 [[node MatMul (defined at <ipython-input-2-0367395f566d>:16)  = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/device:GPU:0"](_arg_Placeholder_0_0/_7, Variable/read)]]
	 [[{{node Mean/_9}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_25_Mean", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

后面也许还有一大堆的提示,不过不用去管,最最常见的情形就是:

老兄,你的GPU被占用了!!

——解决方法如下:

  • 如果你使用的Pycharm或者Spyder之类的IDE,那么你需要检查一下是否之前运行了其他使用GPU的程序,如果找到了,请毫不犹豫的关掉它。
  • 如果你使用的是JupyterNotebook,那么你同样需要先检查是否之前运行了其他使用GPU的程序,如果有,在目录中选中它,并点击上面工具栏中的shutdown来关掉它。如果不是前面这种情形,那一定要检查一下你的JupyterNotebook的编译器(就是那个黑框框)是否多打开了一个,如果是的话,一定要关闭你没有正在使用的那个。不知道哪个才是没正在使用的?好吧,那就都关了重新打开JupyterNotebook吧 - -。
  • 以上解决办法的前提是:你并没有开游戏,或者没有其他程序占用GPU。
  • 核心思想其实就是:保持你的GPU只被一个程序占用~

不过如果我就是想开几个程序,或者边跑游戏边跑模型肿么办?

——这么办:

  • 给你的模型训练分配一下显存,让它们不要打架。使用下面的语句来创建会话:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)  
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) 
  • 然后,enjoy your training~
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值