训练过程出现ZeroDivisionError: float division by zero

在运行PyTorch训练脚本时,出现了'ZeroDivisionError: float division by zero'错误。问题源于在划分训练集和测试集时,测试集的张数设置超过了原始数据集的张数。解决方案是确保测试集的大小不超过总数据集的一定比例,例如通常为20%。检查并调整代码中划分数据集的部分以避免该错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Traceback (most recent call last):
  File "F:/pycharm/pytorchtrain/Maskrcnn_Person/tv-training-code.py", line 244, in <module>
    main()
  File "F:/pycharm/pytorchtrain/Maskrcnn_Person/tv-training-code.py", line 226, in main
    evaluate(model, data_loader_test, device=device)
  File "F:\anaconda\envs\pytorch1.7-gpu\lib\site-packages\torch\autograd\grad_mode.py", line 15, in decorate_context
    return func(*args, **kwargs)
  File "F:\pycharm\pytorchtrain\Maskrcnn_Person\detection\engine.py", line 84, in evaluate
    for images, targets in metric_logger.log_every(data_loader, 100, header):
  File "F:\pycharm\pytorchtrain\Maskrcnn_Person\detection\utils.py", line 232, in log_every
    header, total_time_str, total_time / len(iterable)))
ZeroDivisionError: float division by zero

是因为

    # split the dataset in train and test set
    indices = torch.randperm(len(dataset)).tolist()
    dataset = torch.utils.data.Subset(dataset, indices[:80]) #训练集张数
    dataset_test = torch.utils.data.Subset(dataset_test, indices[80:])#测试集张数

加载数据集的时候,张数问题,这里定义的张数不能超过数据集的张数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值