paddlepaddle使用多进程报错“(External) CUDA error(3), initialization error.”的解决方法

使用paddlepaddle训练模型时,存在模型训练已结束,但GPU显存依然占用,影响下一次训练的问题。为了能够在模型训练结束后自动释放GPU显存,参考Tensorflow借助多进程释放内存的方法,可以将paddlepaddle的模型训练放到多进程中进行,从而让训练进程结束后GPU资源自动的释放。

但是在使用 multiprocessing 训练paddlepaddle模型时有时候会遇到

CUDA error(3), initialization error.

的错误提示。

参考paddlepaddle在github上的issue讨论,发现将所有与paddle相关的模块都放到 multiprocessing 里 import 且不要在多进程外有 import 这些模块就可以正常运行了,这样在进程结束后相应的资源也会自动释放。

参考:
TensorFlow函数使用完成释放显存问题 - 知乎
单gpu 多进程报错 · Issue #2241 · PaddlePaddle/PaddleDetection · GitHub
multiprocessing — 基于进程的并行 — Python 3.7.12 文档

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值