问题描述:
官方提供的mask_rcnn代码
【操作步骤&问题现象】
1、mask_rcnn内处理数据集的代码中 mask标签会被pad的成 batch_size * max_instance_count * img_h * img_w的维度, 这样的话如果图片尺寸大或者一张图内目标数量特别多( >1000),那这个数据量会特别的大,想问下怎么修改能够不需要这个pad操作?
解答:
这个是由于不同图片的label数量不同,不做padding无法直接concat,组成一个batch时会报错。
在pytorch中,可以通过 collate_fn 函数解决该问题。
在mindspore中, Dataset基类 的 batch接口有一个 per_batch_map 参数,可以将batch对齐的函数传给 per_batch_map 参数来解决该问题。 详见:https://www.mindspore.cn/docs/zh-CN/master/api_python/dataset/mindspore.dataset.GeneratorDataset.html?highlight=per_batch_map#mindspore.dataset.GeneratorDataset.batch