使用VGG16进行其他模型的特征提取 . 进入VGG16的输入来自输出灰度图像的神经网络 . 因此,我将VGG的输入替换为输入,接受1个通道图像,然后是连接层,使输入3个通道,以便卷积层可以对图像进行操作 .
vgg_16 = vgg16.VGG16(include_top = False,weights ='imagenet',input_tensor =无)#vgg_16.layers中的图层训练时冻结VGG_16:layer.trainable = False
vgg_16.layers.pop(0)
inputs = Input(shape=(312, 312, 1))
concat = keras.layers.Concatenate(axis=3)([inputs] * 3)
outputs = vgg_16(concat)
vgg_first2 = Model(inputs, outputs)
vgg_first2.summary()
keras打印的摘要显示连接输出是预期的3个通道,
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_4 (InputLayer) (None, 312, 312, 1) 0
__________________________________________________________________________________________________
concatenate_1 (Concatenate) (None, 312, 312, 3) 0 input_4[0][0]
input_4[0][0]
input_4[0][0]
__________________________________________________________________________________________________
vgg16 (Model) multiple 14714688 concatenate_1[0][0]
==================================================================================================
最后我得到一个错误ValueError:输入通道的数量与过滤器的相应尺寸不匹配,9!= 3 .
最后一点,我使用keras和tensorflow后端