您的位置:首页 > 其它

模型构建问题

2016-09-23 22:22 232 查看
图像预处理:减去的均值是数据集所有图片的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


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

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

maxout和network in network的预处理:使用pylearn2的ZCA处理方法,具体参考pylearn2的预处理函数。分别是有GCN和没有GCN的实现(global contrast normalization)。还有一种预处理方法是不做ZCA,直接去均值和归一化到-1~1之间,这样的预处理也可用于训练,但不是论文中的处理方法。

注意:获得的训练集的均值和白化矩阵要应用于测试集,保证变换一致。

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])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: