【发布时间】:2019-09-26 10:11:25
【问题描述】:
我正在尝试训练一个包含两个嵌套模型的 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() 或callbacks 在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')
【问题讨论】:
标签: python tensorflow machine-learning keras