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

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

最近研究立体匹配,看了很多论文,发现很多输入图片都进行了随机的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 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名