python - “分页文件太小,无法完成此操作”尝试训练 YOLOv5 对象检测模型时出错
问题描述
我有大约 50000 张图像和注释文件用于训练 YOLOv5 对象检测模型。我已经在另一台计算机上只使用 CPU 训练了一个模型,但它需要的时间太长,所以我需要 GPU 训练。我的问题是,当我尝试使用 GPU 进行训练时,我不断收到此错误:
OSError: [WinError 1455] The paging file is too small for this operation to complete
这是我正在执行的命令:
train.py --img 640 --batch 4 --epochs 100 --data myyaml.yaml --weights yolov5l.pt
CUDA 和 PyTorch 已成功安装并可用。以下命令安装没有错误:
pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
我在网上发现其他人有类似的问题,并通过num_workers = 8
将num_workers = 1
. 当我尝试这个时,训练开始并且似乎超过了the paging file is too small
出现错误的点,但几个小时后崩溃了。根据这段视频( https://www.youtube.com/watch?v=Oh6dga-Oy10 ),我还增加了 GPU 上可用的虚拟内存,但也没有用。我认为这是内存问题,因为有时它会崩溃,我会从计算机收到内存不足的警告。
任何帮助将非常感激。
解决方案
所以我设法解决了我的具体问题,并认为在这里发布答案可能对其他人有所帮助。基本上,我认为我没有足够的内存。我之前使用的是 8 GB,我已经升级到 32 GB,它工作正常。
正如我在上面的问题中所写,我认为这是一个内存问题,我让它在另一台仅使用 CPU 的计算机上工作。我还注意到,当训练开始时,RAM 的使用量会激增。这家伙还解释了在大型数据集上训练深度学习模型时 RAM 的重要性: https ://timdettmers.com/2018/12/16/deep-learning-hardware-guide/
希望这可以帮助其他有同样问题的人。
推荐阅读
- javascript - 当新数组包含现有数组时,无法使用拼接删除单元格
- c++ - 在 C++ 中没有正确实现动态多态性
- authentication - 使用 Python 请求的 Cookie 身份验证错误
- objective-c - 如何强制使用 NSPredicate 从硬盘检索图像的特定顺序
- python - 使用颜色编码将 Wireshark 数据转换为 CSV
- amazon-web-services - 如何在 cloudfromation 模板中生成和插入 ssh 公钥定义?
- java - 检查列表大小时出现 NullPointer 异常
- android - Android FirebaseVisionImage 相机方向
- java - 尽管是常数,但将最终属性称为“变量”是否正确?
- android - 片段未附加到截击响应的活动