【问题标题】:How to change the input dimensions of pretrained keras model?如何更改预训练 keras 模型的输入尺寸?
【发布时间】:2021-09-18 14:56:44
【问题描述】:

有没有办法在它自己的模型中将输入层尺寸从 (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]                   
__________________________________________________________________________________________________

【问题讨论】:

  • 这不是一个简单的操作。有“通道优先”数据格式的选项,但我不确定您是否可以在模型上更改它。为什么不重新排列输入数据?您可以使用正确的 data_format 构建一个新模型,然后尝试复制权重?

标签: tensorflow keras conv-neural-network


【解决方案1】:

您可以添加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)

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2021-12-18
    • 2018-02-13
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多