gpt4 book ai didi

python - Keras 嵌套模型单独保存和加载权重或查看所有嵌套模型的摘要

转载 作者:行者123 更新时间:2023-11-30 09:03:46 24 4
gpt4 key购买 nike

我正在尝试训练一个包含两个嵌套模型的 Keras 模型,并且我想分别保存两个内部模型的权重。现在我可以保存整个模型的权重,但无法加载大模型中嵌套模型的权重。

Big_model.summary 的输出如下所示

Model: "model_3"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_4 (InputLayer) [(None, 128, 128, 1)] 0
_________________________________________________________________
model (Model) (None, 16, 16, 512) 170369024
_________________________________________________________________
model_1 (Model) (None, 128, 128, 1) 15342209
=================================================================
Total params: 185,711,233
Trainable params: 185,711,233
Non-trainable params: 0

我怎样才能看到两个内部模型的摘要,例如Big_model.inner_Model1.summary()类似的东西,或者在使用Big_model训练后分别保存两个内部模型的权重.inner_Model1.save_weights()Big_model.inner_Model2.save_weights()model.fit 期间的回调

我得到的是Big_model没有像inner_Model1那样的模块,请帮忙??

PS:训练没有任何问题,我可以运行训练,而且我正在使用 Tensorflow 版本 tf.keras.models.Model 进行模型。

这就是我创建模型的方式

inner_Model1 = tf.keras.models.Model()
inner_Model2 = tf.keras.models.Model()

x = tf.keras.layers.Input(shape=IMAGE_SHAPE)
Big_model = tf.keras.models.Model(x, inner_model2(inner_model1(x)))
Big_model.compile(optimizer=optimizer, loss='mean_absolute_error')

最佳答案

在您发布的摘要中,model 是第 1 层,model_1 是第 2 层:

Big_model.layers[1].summary()   #this is inner_Model1.summary()
Big_model.layers[2].summary() #this is inner_Model2.summary()

对它们做任何你想做的事。

<小时/>

如果您像以前一样创建了模型,那么简单地执行以下操作并没有什么问题:

inner_Model1.save_weights(...)
inner_Model2.save_weights(...)

如果您在大模型之外加载权重,它也会正常工作,它会看到变化。

inner_Model1.load_weights(...)
inner_Model2.load_weights(...)

关于python - Keras 嵌套模型单独保存和加载权重或查看所有嵌套模型的摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58114504/

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