gpt4 book ai didi

python - 使用自定义重量进行训练

转载 作者:行者123 更新时间:2023-12-01 07:37:28 25 4
gpt4 key购买 nike

目前我正在使用迁移学习来训练神经网络。我使用的是keras提供的ResNet50预训练模型。

base_model=ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3))

# function to finetune model
def build_finetune_model(base_model, dropout, fc_layers, num_classes):
for layer in base_model.layers:
layer.trainable = False

x = base_model.output
x = Flatten()(x)
for fc in fc_layers:
# New FC layer, random init
x = Dense(fc, use_bias=False)(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Dropout(dropout)(x)

# New softmax layer
x = Dense(num_classes, use_bias=False)(x)
x = BatchNormalization()(x)
predictions = Activation('softmax')(x)
finetune_model = Model(inputs=base_model.input, outputs=predictions)

return finetune_model

FC_LAYERS = [1024, 512]
dropout = 0.5

model = build_finetune_model(base_model, dropout=dropout, fc_layers=FC_LAYERS,num_classes=len(categories))

现在我想看看是否使用Resnet50 1by2 (除其他外)会提高我的准确性。这些模型作为 caffe 模型提供。我用了Caffe weight converter将这些模型转换为 keras h5 文件。

现在的问题是这些文件不包含可以训练的模型,只包含权重。如何使用权重在 keras 中训练模型?

最佳答案

如果您仅保存了权重,则只能将这些权重加载到具有相同架构的网络中。假设您拥有的权重与 Keras 应用程序模型的架构相匹配,您可以:

base_model = ResNet50(...,weights=None)
base_model.load_weights('my_weights_file.h5')
for layer in base_model.layers:
layer.training = False

关于python - 使用自定义重量进行训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com