【问题标题】:PyTorch Training exitting after Caching ImagesPyTorch 训练在缓存图像后退出
【发布时间】:2021-12-06 03:18:46
【问题描述】:

我有一个包含大约 12k 个训练图像和 500 个验证图像的数据集。我正在使用 YOLOv5-PyTorch 来训练我的模型。当我开始训练时,当它降到 缓存图像 阶段时,它突然退出。

我用来运行它的代码如下:

!python train.py --img 800 --batch 32 --epochs 20 --data '/content/data.yaml' --cfg ./models/custom_yolov5s.yaml --weights yolov5s.pt --name yolov5s_results  --cache

我正在使用 Google Colab 来训练我的模型。

这是关机前执行的命令:

train:缓存图像(12.3GB 内存):99% 11880/12000 [00:47

【问题讨论】:

    标签: pytorch google-colaboratory training-data yolov5


    【解决方案1】:

    所以我解决了上述问题。出现问题是因为我们正在缓存所有图像,以提高 epoch 期间的速度。现在这可能会提高速度,但另一方面,它也会消耗内存。当您使用 Google Colab 时,它会为您提供 12.69GB 的 RAM。当缓存如此庞大的数据时,所有的 RAM 都被消耗了,没有任何东西可以缓存验证集,因此它立即关闭。 解决这个问题有两种基本方法:

    方法一:

    我只是将图像尺寸从 800 减小到 640,因为我的训练图像不包含任何小物体,所以我实际上不需要大尺寸的图像。它使我的 RAM 消耗减少了 50%

    --img 640
    

    train:缓存图像(6.6GB 内存):100% 12000/12000 [00:30

    方法二:

    我在我用来运行这个项目的命令末尾写了一个参数:

    --cache
    

    此命令在第一个 epoch 中缓存整个数据集,因此可以立即再次重用它,而不是再次处理它。如果您愿意在训练速度上妥协,那么这种方法对您有用。只需简单地删除这条线,你就可以开始了。您要运行的新命令将是:

    !python train.py --img 800 --batch 32 --epochs 20 --data '/content/data.yaml' --cfg ./models/custom_yolov5s.yaml --weights yolov5s.pt --name yolov5s_results
    

    【讨论】:

      猜你喜欢
      • 2019-07-15
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2020-10-01
      • 2018-10-08
      • 2019-12-07
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多