machine-learning icon indicating copy to clipboard operation
machine-learning copied to clipboard

代码疑问

Open xiaoerlaigeid opened this issue 7 years ago • 6 comments

def load_image(imageurl):
    im = cv2.resize(cv2.imread(imageurl),(224,224)).astype(np.float32)
    im[:,:,0] -= 103.939
    im[:,:,1] -= 116.779
    im[:,:,2] -= 123.68
    im = im.transpose((2,0,1))
    im = np.expand_dims(im,axis=0)
    return I'm

请问这个为什么三个通道要减去这个值? 后面的转置是什么目的?不太懂,希望大神解答下谢谢!

xiaoerlaigeid avatar Aug 01 '17 05:08 xiaoerlaigeid

tf端和th端的图片同道不一样,tf是channel_last,而th是channel_first,因此需要图片通道的转换

HadXu avatar Aug 01 '17 06:08 HadXu

谢谢解答,那减去的值是什么意思?

xiaoerlaigeid avatar Aug 01 '17 06:08 xiaoerlaigeid

    if data_format == 'channels_first':
        # 'RGB'->'BGR'
        x = x[:, ::-1, :, :]
        # Zero-center by mean pixel
        x[:, 0, :, :] -= 103.939
        x[:, 1, :, :] -= 116.779
        x[:, 2, :, :] -= 123.68
    else:
        # 'RGB'->'BGR'
        x = x[:, :, :, ::-1]
        # Zero-center by mean `pixel`
        x[:, :, :, 0] -= 103.939
        x[:, :, :, 1] -= 116.779
        x[:, :, :, 2] -= 123.68
    return x

HadXu avatar Aug 01 '17 08:08 HadXu

我大概明白了一点,但是不应该每一张图片的均值都不一样么?这个数值是怎么计算出来的

xiaoerlaigeid avatar Aug 01 '17 08:08 xiaoerlaigeid

不知道了,当时vgg16模型提出来的时候就是这样定义的,有兴趣可以读读VGG16论文

HadXu avatar Aug 01 '17 08:08 HadXu

好的,谢谢了!

xiaoerlaigeid avatar Aug 01 '17 08:08 xiaoerlaigeid

您好,我是薛文毅,已收到您的邮件,一会查收,谢谢!!  

371148606 avatar Mar 19 '24 00:03 371148606