如何更改预训练的keras模型的输入尺寸?

How to change the input dimensions of pretrained keras model?

有没有办法在模型自身中将输入层尺寸从 (None,224,224,3) 更改为 (None,3,224,224) 而不是更改输入图像? 我正在尝试在无需减轻重量的情况下在经过预训练的 keras 上执行此操作。

model = keras.models.load_model('/content/Sample_MobileNetV2_7Class_210721.hdf5')
model.summary()

Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 224, 224, 3) 0                                            
__________________________________________________________________________________________________
Conv1 (Conv2D)                  (None, 112, 112, 32) 864         input_1[0][0]                    
__________________________________________________________________________________________________
bn_Conv1 (BatchNormalization)   (None, 112, 112, 32) 128         Conv1[0][0]                      
__________________________________________________________________________________________________
Conv1_relu (ReLU)               (None, 112, 112, 32) 0           bn_Conv1[0][0]                   
__________________________________________________________________________________________________

您可以添加一个Reshape()层来解决您的问题。像这样:

base = keras.models.load_model('/content/Sample_MobileNetV2_7Class_210721.hdf5')

model = Sequential()
model.add(Input(shape=(3,224,224))
model.add(Reshape((224,224,3))
model.add(base)