首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保存模型权重以便以后使用?

如何保存模型权重以便以后使用?
EN

Stack Overflow用户
提问于 2021-06-21 16:25:54
回答 1查看 90关注 0票数 2

我正在使用Mask RCNN训练一个模型;它在每个时期后将模型保存为mask_rcnn_building_cfg_0001.h5 (数字对应时期编号)。我使用预先训练好的权重进行转移学习,效果很好。但现在我想使用我自己训练的模型来进一步训练,因为它更优化。在代码库中,有这一部分:

代码语言:javascript
复制
        callbacks = [
        keras.callbacks.TensorBoard(log_dir=self.log_dir,
                                    histogram_freq=0, write_graph=True, write_images=False),
        keras.callbacks.ModelCheckpoint(self.checkpoint_path,
                                        verbose=0, save_weights_only=True),
    ]

所以通常我必须能够调用model.load_weights('mask_rcnn_building_cfg_0001.h5', by_name=True, exclude=["mrcnn_class_logits", "mrcnn_bbox_fc", "mrcnn_bbox", "mrcnn_mask"])

并使用保存的模型恢复训练,但训练不开始。但是,相同的load_weights()函数适用于从互联网下载的预训练模型,并且模型继续训练。

现在,我应该如何设置模型参数,以便在每个时期之后保存权重,以便在进一步的训练中用作预先训练的权重?我最好的猜测是我必须以某种方式从mask_rcnn_building_cfg_0001.h5中排除输出层,但不确定hw是否能做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 15:33:11

代码语言:javascript
复制
checkpoint_path = "training_1/cp.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)

# Create a callback that saves the model's weights
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,
                                                 save_weights_only=True,
                                                 verbose=1)

# Loads the weights
model.load_weights(checkpoint_path)

有关保存和加载模型的完整指南,请参阅Tensorflow文档。请找到here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68064727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档