其他
【他山之石】模型转换:由Pytorch到TFlite
“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
地址:https://www.zhihu.com/people/ling-huo-de-pang-zi-ya-xin
01
02
目前官方支持加载ONNX模型并进行推理的深度学习框架有:Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方地支持ONNX。
https://zhuanlan.zhihu.com/p/51387600
https://zhuanlan.zhihu.com/p/41255090
03
torchvision==0.6.1
tensorflow==tf_nightly-2.4.0.dev20200811
onnx==1.7.0
onnxruntime==1.7.0
onnx-tf==1.7.0
tensorflow-addons==0.11.2
import os.path as osp
import numpy as np
import onnx
import onnxruntime as ort
import torch
import torchvision
# torch --> onnx
test_arr = np.random.randn(10, 3, 224, 224).astype(np.float32)
dummy_input = torch.tensor(test_arr)
model = torchvision.models.mobilenet_v2(pretrained=True).eval()
torch_output = model(torch.from_numpy(test_arr))
input_names = ["input"]
output_names = ["output"]
torch.onnx.export(model,
dummy_input,
"mobilenet_v2.onnx",
verbose=False,
input_names=input_names,
output_names=output_names)
model = onnx.load("mobilenet_v2.onnx")
ort_session = ort.InferenceSession('mobilenet_v2.onnx')
onnx_outputs = ort_session.run(None, {'input': test_arr})
print('Export ONNX!')
from onnx_tf.backend import prepare
import onnx
TF_PATH = "tf_model" # where the representation of tensorflow model will be stored
ONNX_PATH = "mobilenet_v2.onnx" # path to my existing ONNX model
onnx_model = onnx.load(ONNX_PATH) # load onnx model
tf_rep = prepare(onnx_model) # creating TensorflowRep object
tf_rep.export_graph(TF_PATH)
import tensorflow as tf
TF_PATH = "tf_model"
TFLITE_PATH = "mobilenet_v2.tflite"
converter = tf.lite.TFLiteConverter.from_saved_model(TF_PATH)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tf_lite_model = converter.convert()
with open(TFLITE_PATH, 'wb') as f:
f.write(tf_lite_model)
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“他山之石”历史文章
如何将MATLAB中开发的深度学习应用部署到NVIDIA Jetson Xavier NX
反卷积和上采样
PyTorch vs LibTorch:网络推理速度谁更快?
MMOCR:OpenMMLab 全流程的文字检测识别理解工具箱
Pytorch技巧:DataLoader的collate_fn参数使用详解
Pytorch优化器及其内置优化算法原理介绍
神经网络学习 | 鸢尾花分类的实现
Pytorch 基础-tensor 数据结构
Transformer风险评分:实体嵌入+注意力机制
Pytorch:eval()的用法比较
ONNX模型文件->可执行文件 C Runtime通路 具体实现方法
Pytorch mixed precision 概述(混合精度)
Weights & Biases (兼容多种深度学习框架的可视化工具WB中文简介)
GCN实现及其中的归一化
Pytorch Lightning 完全攻略
更多他山之石专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!