Given groups=1, weight of size 6 1 5 5, expected input[4, 3, 224, 224] to have 1 channels, but got 3 channels instead
代码原本为:
from torchvision import transforms, utils
from torchvision import datasets
import torch
import matplotlib.pyplot as plt
%matplotlib inline
my_trans=transforms.Compose([
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
改为:
from torchvision import transforms, utils
from torchvision import datasets
import torch
import matplotlib.pyplot as plt
%matplotlib inline
my_trans=transforms.Compose([
transforms.Grayscale(num_output_channels=1),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
注意,这种做法行不通:
# import matplotlib.pyplot as plt # plt 用于显示图片
# from PIL import Image
# import pylab
# image1 = Image.open('test02.png')
# path = r'C:\briani'
# # 通道转换
# def change_image_channels(image):
# 3通道转单通道
# if image.mode == 'RGB':
# r, g, b = image.split()
# return r,g,b
# ima = change_image_channels(image1)
#plt.imshow(ima)
# plt.show()
为什么行不通,我也不知道,不是很清楚。
那个函数transforms.Grayscale(num_output_channels=1),关键词应该是pytorch和灰度图,我搜的三通道改成一通道,就搜不出来了。
不是说灰度图并不等于一通道的嘛,被拐得跑偏了。