当前位置:   article > 正文

yolov5的val.py输出的map值会随着batch_size的大小变化_yolov.val

yolov.val
parser.add_argument('--task', default='speed', help='train, val, test, speed or study')
  • 1

在task的参数为’train, val, test时,会默认把图片填充成矩形形状,而在yolov5中,是把一个batch_size中所用的图像填充成相同大小,并填充的大小是根据一个batch_size中所用图像的大小计算的,这导致在batch_size不同时,同一张图像的填充大小不同,从而导致结果有一定的差距。

        if self.rect:
            # Sort by aspect ratio
            s = self.shapes  # wh
            ar = s[:, 1] / s[:, 0]  # aspect ratio
            irect = ar.argsort()
            self.im_files = [self.im_files[i] for i in irect]
            self.label_files = [self.label_files[i] for i in irect]
            self.labels = [self.labels[i] for i in irect]
            self.shapes = s[irect]  # wh
            ar = ar[irect]

            # Set training image shapes
            shapes = [[1, 1]] * nb #nb为图片总数除以batch_size
            for i in range(nb):
                ari = ar[bi == i]
                mini, maxi = ari.min(), ari.max()
                if maxi < 1:
                    shapes[i] = [maxi, 1]
                elif mini > 1:
                    shapes[i] = [1, 1 / mini]

            self.batch_shapes = np.ceil(np.array(shapes) * img_size / stride + pad).astype(np.int16) * stride```

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/554445
推荐阅读
相关标签
  

闽ICP备14008679号