MultiprocessIterator 在更改 batch_size 时抛出错误

我想用 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 exactly

Traceback (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


噜噜哒
浏览 215回答 3
3回答

萧十郎

在尝试修复错误时,我遇到了另一个错误。ValueError:&nbsp;Currently&nbsp;only&nbsp;batch&nbsp;size&nbsp;1&nbsp;is&nbsp;supported.等待似乎是解决方案。

慕尼黑5688855

当前的 Faster-RCNN 实现不支持多批次训练,但您可以像下面的代码一样重写它以支持它。&nbsp;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,支持多批次训练。&nbsp;https://github.com/chainer/chainercv/blob/master/examples/fpn/train_multi.py

猛跑小猪

self.converter假设第一个参数batch由具有相同形状的输入组成。例如,如果您使用图像数据集,则所有图像都应该具有 (C, H, W) 的形状。那么,你能检查一下你的数据集返回相同形状的图像吗?如果你的数据集有各种形状的图像,那么使用TransformDataset像https://github.com/chainer/chainercv/blob/df63b74ef20f9d8c830e266881e577dd05c17442/examples/faster_rcnn/train.py#L86怎么样?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python