RuntimeError: DataLoader worker is killed by signal: Killed.报错解决

慈云数据 2024-03-12 技术支持 133 0

一、问题描述

  • 使用pytorch进行训练时,训练了仅几个batch后出现报错信息:
    RuntimeError: DataLoader worker (pid xxxxx) is killed by signal: Killed.
    
    • 这个报错和DataLoader有关,定位到训练脚本中的代码:
      train_data_loader = DataLoader(train_dataset,
                                     batch_size=None,
                                     pin_memory=args.pin_memory,
                                     num_workers=args.num_workers,
                                     prefetch_factor=args.prefetch)
      

      二、问题分析

      • 通过设置num_workers,DataLoader实例可以使用多少个子进程进行数据加载,从而加快网络的训练过程。
      • 默认情况下,num_workers值被设置为0,0值代表告诉加载器在主进程内部加载数据。
      • 但是num_workers并不能无限制设置的很大,因为这和你的机器硬件性能也有关。

        三、问题解决

        • 最简单的办法,就是将num_workers设置的小一点;
        • 如果还是有问题,可以直接将num_workers设置成默认值0;
        • 当然,也可以通过增加机器内存来尝试解决。

          参考资料:https://blog.csdn.net/peacefairy/article/details/108015095

          RuntimeError: DataLoader worker is killed by signal: Killed.报错解决
          (图片来源网络,侵删)
          RuntimeError: DataLoader worker is killed by signal: Killed.报错解决
          (图片来源网络,侵删)
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon