如何将pytorch(CNN+LSTM)模型转换为tflite?

问题描述 投票:0回答:1

我正在尝试转换以下博客使用深度学习的图像字幕(CNN 和 LSTM)中提到的 CNN+LSTM 模型。相关的 github 存储库是:Pytorch 图像字幕

我想将这个 pytorch 模型转换为 tflite。它具有编码器和解码器检查点。据我了解,它们都必须转换为 tflite (如果我错了,请纠正我)

方法:使用onnx2keras库中提到的示例,onnx2keras我能够将编码器转换为tflite。但使用解码器我面临以下问题。

不确定什么是正确的方法。谁能建议更好的方法并帮助我实现 tflite 模型

文件“convert_pytorch_tf.py”,第 63 行,change_ordering=False)文件 “/root/anaconda3/envs/pyt2tf/lib/python3.7/site-packages/pytorch2keras/converter.py”, 第 53 行,在 pytorch_to_keras dummy_output = model(*args) 文件中 “/root/anaconda3/envs/pyt2tf/lib/python3.7/site-packages/torch/nn/modules/module.py”, 第 550 行,调用 result = self.forward(*input, **kwargs) TypeError: forward() 缺少 2 个必需的位置参数:“captions”和 ‘长度’

请让我知道要遵循哪种方法,并帮助我解决与我所采取的方法相关的问题

python tensorflow keras pytorch onnx
1个回答
0
投票

我也一直在努力解决同样的问题,直到我发现ai_edge_torch。我成功地将 torch CRNN 模型转换为 tflite。我使用这个库时遇到的唯一问题是导出的 tflite 模型的大小通常大于 torch 模型本身,即使尝试 tflite 模块提供的不同量化技术也是如此。

顺便说一句,我对库进行了一些更改,以将 tf_saved_model 导出到用户指定的路径中。否则,默认情况下,库将首先将 torch 模型转换为 tf_lite_saved 模型,并将其保存在临时路径中。随后,它将 tf_saved_model 转换为 tflite,并将其作为对象返回。

© www.soinside.com 2019 - 2024. All rights reserved.