模型构建问题

  1. 图像预处理:减去的均值是数据集所有图片的RGB三个通道的均值构成的向量[Rmean, Gmean, Bmean],每个通道各一个均值。然后所有图像都减去此向量。

    MEAN_VALUE = np.array([103.939, 116.779, 123.68])   # BGR
    def preprocess(img):
        # img is (height, width, channels), values are 0-255    
        im = np.swapaxes(np.swapaxes(im, 1, 2), 0, 1)  # Shuffle axes to c01
        im = im[::-1, :, :]  # switch to BGR
        img -= MEAN_VALUE  # substract mean
        return img

    在训练集得到的均值要应用于测试集,保证变换形式相同。

  2. 通道的顺序:用caffe训练的模型使用BGR,所以需要把图像的RGB顺序颠倒。

  3. maxout和network in network的预处理:使用pylearn2的ZCA处理方法,具体参考pylearn2的预处理函数。分别是有GCN和没有GCN的实现(global contrast normalization)。还有一种预处理方法是不做ZCA,直接去均值和归一化到-1~1之间,这样的预处理也可用于训练,但不是论文中的处理方法。
    注意:获得的训练集的均值和白化矩阵要应用于测试集,保证变换一致。

  4. Imagenet数据集预处理:仅仅剪裁大小和去均值,不做ZCA或者归一化。

    MEAN_VALUE = np.array([103.939, 116.779, 123.68])   # BGR
    def prep_image(im):
        # Resize so smallest dim = 256, preserving aspect ratio
        h, w, _ = im.shape
        if h < w:
            im = skimage.transform.resize(im, (256, w*256/h), preserve_range=True)
        else:
            im = skimage.transform.resize(im, (h*256/w, 256), preserve_range=True)
        # Central crop to 224x224
        h, w, _ = im.shape
        im = im[h//2-112:h//2+112, w//2-112:w//2+112]    
        # Shuffle axes to c01
        im = np.swapaxes(np.swapaxes(im, 1, 2), 0, 1)
        # Convert to BGR
        im = im[::-1, :, :]
        im = im - MEAN_IMAGE
        return floatX(im[np.newaxis])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值