我正在尝试使用VGG,但是输入请求了3个频道,但是我的imput_shape'channel = 1 我使用nibabel切片MRI(nii)
ValueError:输入必须具有3个通道;必须为0。得到了input_shape=(256, 256, 1)
这是我有关MRI切片的代码。
images = []
images_ground = []
for f in range(len(g)):
a = nib.load(g[f])
a = a.get_data()
b = nib.load(g[f])
b = b.get_data()
a=a[:,:,48:166]
b = transform.resize(b, (64, 64, 256))
b=b[:,:,48:166]
for i in range(a.shape[2]):
images_ground.append(a[:,:,i])
images.append(b[:, :, i])
images_ground = np.array(images_ground)
images_ground = images_ground.reshape(-1, 256, 256, 1)
images = np.array(images)
images = images.reshape(-1, 64, 64, 1)
m = np.max(images)
mi = np.min(images)
images = (images - mi) / (m - mi)
n=np.max(images_ground)
ni=np.min(images_ground)
images_ground=(images_ground-ni)/(n-ni)
return images,images_ground
答案 0 :(得分:0)
我也有同样的问题, VGG模型是在3通道(RGB)输入图像上训练的,但是当您提供仅1通道的灰度图像时,会显示错误
如果您想使用TensorFlow解决问题
tf.image.grayscale_to_rgb()
如果是Keras
datagen_train = ImageDataGenerator()
train_generator = datagen_train.flow_from_directory(directory_name,
<other parameters>,color_mode="rgb")