在Keras2中进行迁移学习时,需要使用“input_shape”和“input_tensor”参数。但我只使用了“input_tensor”,从未使用过“input_shape”。我认为只有“input_tensor”就足够了,不知道何时需要使用“input_shape”。
我应该如何分别使用它们?
我同时使用了“input_tensor”和“input_shape”,并分别赋值,但是只有“input_tensor”的值被采用,而“input_shape”被忽略了。
我本以为这段代码会出现一些错误,但是并没有出错,该模型可以接受形状为(150, 150, 3)的输入。输入形状Input_shape=(224,224,3)被忽略了。
您需要帮助吗?谢谢。
我同时使用了“input_tensor”和“input_shape”,并分别赋值,但是只有“input_tensor”的值被采用,而“input_shape”被忽略了。
vgg16_model = VGG16(include_top=False, weights='imagenet',
input_tensor = Input(shape=(150, 150, 3)),
input_shape=(224,224,3))
top_model = Sequential()
top_model.add(Flatten(input_shape=vgg16_model.output_shape[1:]))
top_model.add(Dense(256, activation='relu'))
top_model.add(Dense(1, activation='sigmoid'))
model = Model(input=vgg16_model.input, output=top_model(vgg16_model.output))
model.summary()
Layer (type) Output Shape Param #
================================================================
input_6 (InputLayer) (None, 150, 150, 3) 0
_________________________________________________________________
block1_conv1 (Conv2D) (None, 150, 150, 64) 1792
_________________________________________________________________
block1_conv2 (Conv2D) (None, 150, 150, 64) 36928
_________________________________________________________________
block1_pool (MaxPooling2D) (None, 75, 75, 64) 0
_________________________________________________________________
block2_conv......
我本以为这段代码会出现一些错误,但是并没有出错,该模型可以接受形状为(150, 150, 3)的输入。输入形状Input_shape=(224,224,3)被忽略了。
您需要帮助吗?谢谢。