运行代码时,出现ZeroDivisionError: integer division or modulo by zero问题,具体如下:
Traceback (most recent call last):
File "./111/22.py", line 51, in <module>
launch(
File "./111/123/launch.py", line 71, in launch
main_func(*args)
File "./111/22.py", line 45, in main
return trainer.train()
File "./0123/123/defaults.py", line 364, in train
super().train(self.start_epoch, self.max_epoch, self.iters_per_epoch)
File "./0123/123/train_loop.py", line 147, in train
self.after_epoch()
File "./0123/123/train_loop.py", line 181, in after_epoch
h.after_epoch()
File "./0123/123/hooks.py", line 261, in after_epoch
self._scheduler["lr_sched"].step()
File "/home/user/.local/lib/python3.8/site-packages/torch/optim/lr_scheduler.py", line 154, in step
values = self.get_lr()
File "/home/user/.local/lib/python3.8/site-packages/torch/optim/lr_scheduler.py", line 513, in get_lr
elif (self.last_epoch - 1 - self.T_max) % (2 * self.T_max) == 0:
ZeroDivisionError: integer division or modulo by zero
主要原因:
主要是数据量比较小,参数设置epoch_size=10,导致计算得到的运行轮数epoch_size小于10,从而epoch_size // 10结果为0
解决方案:
把参数设置的.yml文件中, 每次迭代输出10次信息更改成1,即epoch_size=10更改为epoch_size=1。成功解决ZeroDivisionError: integer division or modulo by zero问题,特此记录!!!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99862.html