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





