lyf_ 2019-04-15 16:01 采纳率: 50%
浏览 6602
已结题

神经网络训练和测试用的图片输入大小不一?

最近研究立体匹配,看了很多论文,发现很多输入图片都进行了随机的crop裁剪,
把图片裁剪为256x512后再进行训练。 这样可以增加数据集和减少训练时间。

但是测试的时候或者验证的时候就用原图片大小,或者一个新的图片大小。

请问这样不会再全连接层的时候因为参数数量不一样而出问题吗?
求大神解答一下,下面贴一下我看到的代码

 if self.training:
            w, h = left_img.size
            th, tw = 256, 512

            x1 = random.randint(0, w - tw)
            y1 = random.randint(0, h - th)

            left_img = left_img.crop((x1, y1, x1 + tw, y1 + th))
            right_img = right_img.crop((x1, y1, x1 + tw, y1 + th))

            dataL = np.array(dataL, dtype=np.float32) / 256
            dataL = dataL[y1:y1 + th, x1:x1 + tw]

            processed = preprocess.get_transform(augment=False)
            left_img = processed(left_img)
            right_img = processed(right_img)

            return left_img, right_img, dataL
        else:
            w, h = left_img.size

            left_img = left_img.crop((w - 1232, h - 368, w, h))
            right_img = right_img.crop((w - 1232, h - 368, w, h))
            w1, h1 = left_img.size

            dataL = dataL.crop((w - 1232, h - 368, w, h))
            dataL = np.ascontiguousarray(dataL, dtype=np.float32) / 256

            processed = preprocess.get_transform(augment=False)
            left_img = processed(left_img)
            right_img = processed(right_img)

            return left_img, right_img, dataL

这里的preprocess是进行归一化和标准化

        transforms.ToTensor(),
        transforms.Normalize(**normalize),
  • 写回答

3条回答 默认 最新

  • MMike2016 2019-04-15 19:15
    关注

    这个不会的,尽管对原来图片有裁减,但是在带入卷机神经网络的时候所有图片都要resize成网路要去的尺寸才可以进行特征提取,所以不会影响后续的
    判断,相反随机裁剪功能可以防止拟合,提高模型的泛化能力,增加模型的精度。

    评论

报告相同问题?

悬赏问题

  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问
  • ¥15 初学者如何快速上手学习stm32?