还是仅仅对测试集进行数据增强?这样的话测试集识别效果会不会不太好


这是测试技巧,但是代价就是耗时啊。

针对分割任务,因为训练和验证的数据载入器是一起的,所以验证的时候是针对patch,可能不太好,这时候验证图像可以随机裁多个patch,大致覆盖验证图像。


测试时做数据增强不是必须的, 但也是可以的, 文献中常称之为 TTA (test-time augmentation).

在 ImageNet 比赛中就可以看到 TTA 的身影, 如 FiveCrop[1] 和 TenCrop[2]; TTA 还常见于人脸识别和行人重识别等任务中, 具体操作为: 同时提取原图特征与左右镜像图特征, 将两者的融合特征作为最终特征; 目标检测和语义分割中的 multiscale testing[3] 也是 TTA.

TTA 一般可以提高演算法指标, 当然这是以增加计算量为代价的.

参考

  1. ^https://github.com/pytorch/vision/blob/8088cc94f2155403f6b09cd54edadafa68daa977/torchvision/transforms/transforms.py#L845
  2. ^https://github.com/pytorch/vision/blob/8088cc94f2155403f6b09cd54edadafa68daa977/torchvision/transforms/transforms.py#L891
  3. ^MultiScaleFlipAug https://github.com/open-mmlab/mmdetection/blob/72a9146e199b2b470a5bc87ad820c76991f4bba5/mmdet/datasets/pipelines/test_time_aug.py#L10


一般不需要的,数据增强是为了增加样本数量,防止过拟合。有时为了稳定性也会在测试集进行增强来平均后输出结果。这种方式更类似于模型集成。

下面这个实战教程,帮助你理解。。

《[深度应用]·实战掌握PyTorch图片分类简明教程》,https://blog.csdn.net/xiaosongshine/article/details/89409223


如果你说的测试集是验证集的话,训练的时候对训练数据增强就可以了,验证集不用增强,如果你说的测试集不是验证集,而是测试模型性能用的,那更不增强了,增强的目的是为了提高训练,而不是预测,提问题希望更严谨一些


只增强训练集


没有必要


只增强训练集就好了吧


推荐阅读:
相关文章