为了账号安全,请及时绑定邮箱和手机立即绑定

MultiprocessIterator 在更改 batch_size 时抛出错误

MultiprocessIterator 在更改 batch_size 时抛出错误

噜噜哒 2021-11-09 19:52:12
我想用 ChainerCV 训练一个 Faster R-CNN。作为第一个测试,我主要复制了提供的示例,我只更改了数据集对应的行以使用我的自定义数据集。我检查了我的数据集是否通过本教程中描述的所有操作功能齐全。如果我在不更改的情况下运行脚本,一切正常,但是如果我更改batch_size,则会出现错误。我尝试将shared_mem从 100 MB 增加到 1000 MB,但错误并没有消失。设置batch_size=2时出错:Exception in main training loop: all the input array dimensions except for the concatenation axis must match exactlyTraceback (most recent call last):  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/training/trainer.py", line 315, in run    update()  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 165, in update    self.update_core()  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 171, in update_core    in_arrays = self.converter(batch, self.device)  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/dataset/convert.py", line 134, in concat_examples    [example[i] for example in batch], padding[i])))  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/dataset/convert.py", line 164, in _concat_arrays    return xp.concatenate([array[None] for array in arrays])Will finalize trainer extensions and updater before reraising the exception.Traceback (most recent call last):  File "/home/cv/ChainerCV/faster_rcnn/train.py", line 131, in <module>    main()  File "/home/cv/ChainerCV/faster_rcnn/train.py", line 126, in main    trainer.run()  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/chainer/training/trainer.py", line 329, in run    six.reraise(*sys.exc_info())  File "/home/cv/anaconda3/envs/chainer/lib/python3.6/site-packages/six.py", line 693, in reraise
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

在尝试修复错误时,我遇到了另一个错误

ValueError: Currently only batch size 1 is supported.

等待似乎是解决方案。


查看完整回答
反对 回复 2021-11-09
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

当前的 Faster-RCNN 实现不支持多批次训练,但您可以像下面的代码一样重写它以支持它。 https://github.com/knorth55/chainer-light-head-rcnn/blob/master/light_head_rcnn/links/model/light_head_rcnn_train_chain.py

另一种选择是在 ChainerCV 中使用 Faster-RCNN 和 FPN。最新版本的 ChainerCV 具有 Faster-RCNN 和 FPN,支持多批次训练。 https://github.com/chainer/chainercv/blob/master/examples/fpn/train_multi.py


查看完整回答
反对 回复 2021-11-09
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

self.converter假设第一个参数batch由具有相同形状的输入组成。例如,如果您使用图像数据集,则所有图像都应该具有 (C, H, W) 的形状。

那么,你能检查一下你的数据集返回相同形状的图像吗?如果你的数据集有各种形状的图像,那么使用TransformDatasethttps://github.com/chainer/chainercv/blob/df63b74ef20f9d8c830e266881e577dd05c17442/examples/faster_rcnn/train.py#L86怎么样?


查看完整回答
反对 回复 2021-11-09
  • 3 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信