python - 如何减小 keras 保存模型的大小?
问题描述
然后,我在来自 tf-hub 或 keras.applications 的预训练模型的基础上构建模型(我使用相同的卷积核)大小在 model.save() 或 tf.saved_model 之后生成的模型文件大小。保存大约 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 技巧?
解决方案
分别尝试设置或include_optimizer=False
。tf.keras.Model.save()
tf.keras.models.save_model()
推荐阅读
- html - 与 Angular 中的 img 标签一起使用时,何时触发 onerror 事件?
- javascript - 在 Firefox 中从 PEM 导入椭圆曲线私钥
- android - 如何在 Firebase 实时数据库中添加具有相同节点名称的不同值?
- android - 在 asp.net MVC 视图中的文件上传在 web 视图的 android 应用程序中不起作用
- machine-learning - 如何使用神经网络获得一致的资产价格预测结果
- c++ - 使用任何最快的读取方法读取 1 TB 或更大的二进制文件
- javascript - Angular:通过单击复选框添加组件并通过取消单击来删除组件
- android - 如何在android中显示存储中的音频文件的缩略图
- java - 如何使用构建器模式创建多种类?
- google-cloud-platform - Terraform GCP 以错误的顺序执行资源