然后我基于tf-hub或keras.applications的预训练模型构建模型(应用程序使用相同的卷积核),结果为model.save()或tf之后生成的模型文件大小.saved_model.save约为10 Mb。经过培训后,模型大小增加到30Mb!
如果我在训练后保存了模型,请重新创建模型,并从训练后的模型中加载权重,它将按预期进行预测,并且文件大小约为10Mb。
我用来创建模型的代码。
MODULE_HANDLE = 'https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/feature_vector/4'
model = tf.keras.Sequential([
hub.KerasLayer(MODULE_HANDLE, trainable=True),
tf.keras.layers.Dense(train_gen.num_classes, activation='softmax')
])
model.build((None,)+IMAGE_SIZE)
我希望这与保存培训信息(例如优化程序状态)有关。因此,有没有正确的方法来保存模型以进行推理,而无需使用save-recreate-load_weights技巧?
答案 0 :(得分:0)
尝试分别在include_optimizer=False
或tf.keras.Model.save()
中设置tf.keras.models.save_model()
。