python - TensorFlow Lite 模型通常比 TensorFlow 模型大吗?
问题描述
我目前正在使用 TensorFlow 制作手势检测分类模型,并且正在尝试在微控制器上实现它(我一直在修改这个HelloWorld 示例脚本)。创建 TensorFlow 模型,然后将其转换为 TFLite 模型后,模型的大小显着增加:
TensorFlow 模型:4096 字节
TensorFlow Lite 模型:36360 字节
在我在微控制器上实现这个更大的模型之前,我想知道 TF 模型和 TFLite 模型(我认为应该更小)之间大小的显着增加是否可能,或者我是否一定犯了错误转换。
编辑:在下面添加代码;我删除了所有文件并重新运行代码以确保旧模型文件不用于确定大小。
# Convert the model to the TensorFlow Lite format without quantization
converter = tf.lite.TFLiteConverter.from_saved_model(MODEL_TF)
model_no_quant_tflite = converter.convert()
# Save the model to disk
open(MODEL_NO_QUANT_TFLITE, "wb").write(model_no_quant_tflite)
# Calculate size
size_tf = os.path.getsize(MODEL_TF)
size_no_quant_tflite = os.path.getsize(MODEL_NO_QUANT_TFLITE)
# Compare size
pd.DataFrame.from_records(
[["TensorFlow", f"{size_tf} bytes", ""],
["TensorFlow Lite", f"{size_no_quant_tflite} bytes ", f"(reduced by {size_tf - size_no_quant_tflite} bytes)"]],
columns = ["Model", "Size", ""], index="Model")
解决方案
推荐阅读
- neo4j - 如何创建具有多个关系的唯一节点?
- c++ - c ++中的自定义模型不会更新QML端的ListView
- html - IE11 认为注释代码中的双破折号是结束注释标记
- openlayers-3 - 栅格重投影 - 请求不同投影的栅格
- javascript - 在javascript中使用getElementsByTagName获取输入字段的值和名称?
- c# - 完整的 .NET 引用 .NET Standard 类库:FileNotFoundException
- c++ - 使用 std::tuple 从地图中输出
- wpf - WPF:如何使用命令获取我的 TextBox 文本属性
- angular - 如果您在 Angular 中选择下拉列表,如何显示材料下拉列表中的数据?
- raku - Raku (née Perl 6) reduce function 和 reduction metaoperator 给出不同的结果