ImageNet 训练集特殊图像集合 2019-10-20 | imagenet, pytorch | 经验值 文章目录 n02105855_2933.JPEG 其实是 PNG 图像n04152593_17460.JPEG 其实是 HEIC 图像CMYK 图像 最近运行一个 PyTorch 工程的代码,在读取数据集时没有用官方的 Dataloader,而是自己写了一个读取数据集的函数。在读取 ImageNet 2012 数据集时遇到了一些错误,在此记录一下。 n02105855_2933.JPEG 其实是 PNG 图像 在使用 cv2 读取数据集并将其馈送到 model(data) 时,如果没有对data进行检验,就有可能报下面的错误 RuntimeError: Given groups=1, weight of size 64 3 7 7, expected input[1, 4, 224, 224] to have 3 channels, but got 4 channels instead 或者 RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 3 and 4 in dimension 1 at /tmp/pip-req-build-58y_cjjl/aten/src/TH/generic/THTensor.cpp:689 这是因为训练集中有一个图片是 PNG 图片,强行将后缀名改为了 .JPEG,但还是保留了 PNG 图像的 4 通道(PNG图像除了 RGB 三通道外还有一个 Alpha 通道,表示图像的透明度) 这个图片就是 n02105855_2933.JPEG n04152593_17460.JPEG 其实是 HEIC 图像 这个图片在读取时没有报错,但会报 warning。 CMYK 图像 JPEG 图像分两种,一种 RGB,一种 CMYK,下面是 CMYK 的图像列表: n01739381_1309.JPEGn02077923_14822.JPEGn02447366_23489.JPEGn02492035_15739.JPEGn02747177_10752.JPEGn03018349_4028.JPEGn03062245_4620.JPEGn03347037_9675.JPEGn03467068_12171.JPEGn03529860_11437.JPEGn03544143_17228.JPEGn03633091_5218.JPEGn03710637_5125.JPEGn03961711_5286.JPEGn04033995_2932.JPEGn04258138_17003.JPEGn04264628_27969.JPEGn04336792_7448.JPEGn04371774_5854.JPEGn04596742_4225.JPEGn07583066_647.JPEGn13037406_4650.JPEG 当你在读取 ImageNet 2012 训练集遇到问题时,可以先尝试使用验证集进行训练,确认不是程序问题,而是训练集问题时,可以尝试删除或替换上述图像。