【BUG】Keras用了multi_gpu_model,但用Nvidia-smi看只用了一块显卡GPU

1. 提问

Keras用了multi_gpu_model,但用Nvidia-smi看只用了一块显卡,其他的GPU利用率和显存占用还是很小。

2. 解决

Tensorflow的版本的问题。在tensorflow2.0之后这个muti_gpu_model的使用发生了改变,但是别怕,仅仅加一行代码就可以。

这个变化在官网已经提到了,有兴趣可以自己看一下。
传送门
在这里插入图片描述
解决方法很简单,在你原来使用multi_gpu_model外层加上两句代码。

原来的:

epsnet = M.Model(inputs = [img_in,img_lv],outputs = [out_d,out_s,out_l])
epsnet = multi_gpu_model(epsnet,gpus=3)

修改后

strategy = tf.distribute.MirroredStrategy(devices=["/gpu:0","/gpu:1", "/gpu:2"])
with strategy.scope():
	epsnet = M.Model(inputs = [img_in,img_lv],outputs = [out_d,out_s,out_l])
	epsnet = multi_gpu_model(epsnet,gpus=3)

Note,devices后面的 /gpu:0要根据你自己的gpu个数,进行设置。

您的浏览是对我最大的鼓励!😎

参考感谢!

[1] https://stackoverflow.com/questions/61482878/my-keras-network-with-multi-gpu-model-uses-only-1-gpu

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值