环境描述及其问题:
1)PaddlePaddle版本:
anaconda虚拟环境中用conda安装paddlepaddle1.7GPU版本,
当时是按照paddle官网用conda install paddlepaddle-gpu cudatoolkit=10.0安装的,
安装后验证安装成功。
pip安装paddlehub1.6.0,安装后用conda list 展示出来的是这样:
paddlehub 1.6.0 pypi_0 pypi
paddlepaddle-gpu 1.7.0.post107 pypi_0 pypi
这里的问题是,paddlepaddle-gpu怎么变成了用pypi安装?
而且,在jupyter每次restart kernel,首次import paddle.fluid时,会弹出
这些是因为环境混乱造成的吗?
2)GPU:940MX 2G; CUDA: V10.0.130; CUDNN:7.6.5.32
3)系统环境:WIN10 64BIT家庭版(家庭版到底能不能通过conda安装paddlepaddle?)
FINETUNE资源不足问题描述:
使用业余显卡,能用GPU跑senta-bilstm的预训练模型进行预测。
但不能finetune,设置
os.environ['FLAGS_fraction_of_gpu_memory_to_use']='0.95',
batchsize=2
都会提示资源不足。
完整代码、错误信息见附件ERRLOG.ZIP:
ERRLOG.zip
同样的代码,我拿去AI STUDIO的GPU环境里试了下,并且设置了os.environ['FLAGS_fraction_of_gpu_memory_to_use']='0.01',
batchsize=32
都能FINETUNE成功。
如果是因为我本地的显卡2G显存不够,那为什么在AI STUDIO上,即使
设了这么小的可用显存都能FINETUNE?谢谢。
6条答案
按热度按时间iih3973s1#
WIN10 64BIT家庭版(家庭版到底能不能通过conda安装paddlepaddle?)
这个是可以的。
这些是因为环境混乱造成的吗?
有可能是。请按照下面步骤进行排查下
在jupyter每次restart kernel,首次import paddle.fluid时,会弹出
如果用python直接跑,会有问题么?
都会提示资源不足。
请问你本地显卡有没有跑其他任务,ERRLOG.zip里没有看到错误信息
zrfyljdw2#
如果用python直接跑,会有问题么?
刚试了一下,没问题。
......参照这个人的方法......
参照你提供的方法,在anaconda文件夹下搜得两种日期的pythoncom37.dll,将较新的dll替换到Anaconda3\Library\bin里的较旧dll,jupyter里也不再提示无法定位程序输入点。
请问你本地显卡有没有跑其他任务,ERRLOG.zip里没有看到错误信息
没有跑其他任务。
程序代码如下:
输出信息如下:
运行代码前,nvdia-smi信息如下:
运行代码并报资源不足错误后,nvdia-smi信息如下:
6qfn3psc3#
Out of memory error on GPU 0. Cannot allocate 613.577393MB memory on GPU 0, available memory is only 24.053124MB.
从报错和nvidia-smi截图看,确实是GPU显存不够了。
[2020-03-31 17:05:31,576] [ WARNING] - The memory optimization feature has been dropped! PaddleHub now doesn't optimize the memory of the program.
这个warning说明PaddleHub暂时不支持显存优化方案,所以你配置里设置
enable_memory_optim=True
没有用。我们会反馈让PaddleHub支持该方案的。
xvw2m8pv4#
从报错和nvidia-smi截图看,确实是GPU显存不够了。
麻烦再追问下,同样的代码,我拿去AI STUDIO的GPU环境里试了下,并且设置了os.environ['FLAGS_fraction_of_gpu_memory_to_use']='0.01',
batchsize=32
都能FINETUNE成功。AI STUDIO上的显存使用设置是否能正确生效?
hujrc8aj5#
请先看下本地和AISTUDIO上装的是否是1.7版本
FLAGS_fraction_of_gpu_memory_to_use
就不会生效了。5cg8jx4n6#
请先看下本地和AISTUDIO上装的是否是1.7版本
本地paddlepaddle1.7.0 HUB1.6.0
AI STUDIO paddlepaddle1.7.1 HUB1.5.0
FLAGS_fraction_of_gpu_memory_to_use
就不会生效了。后来发现在AI STUDIO上能直接通过性能监控查看显存占用情况,如图:
事实发现,跑senta-bilstm的funetune,即使batchsize只设为2,显存占用也超过4G了。所以现在可以肯定,我在本地2G显存显卡运行报资源不足,确实是因为显存太小。
本帖原问题已弄清楚,谢谢。
ps:此外还发现AI STUDIO上的一个问题,
我想限制项目在AI STUDIO的显存使用,考虑到默认为auto_growth,所以先把FLAGS_allocator_strategy改为naive_best_fit,但无论是在终端输入
export FLAGS_allocator_strategy=naive_best_fit
export FLAGS_fraction_of_gpu_memory_to_use=0.125
还是在notebook开头改
os.environ['FLAGS_allocator_strategy']='naive_best_fit'
os.environ['FLAGS_fraction_of_gpu_memory_to_use']='0.125'
似乎都不生效,显存监控中可看出实际使用照样超过了设定值。