import onnx
import os
from onnx import optimizer
# Preprocessing: load the model contains two transposes.
# model_path = os.path.join('resources', 'two_transposes.onnx')
# original_model = onnx.load(model_path)
original_model = onnx.load("resne18.onnx")
# Check that the IR is well formed
onnx.checker.check_model(original_model)
print('The model before optimization:\n\n{}'.format(onnx.helper.printable_graph(original_model.graph)))
# A full list of supported optimization passes can be found using get_available_passes()
all_passes = optimizer.get_available_passes()
print("Available optimization passes:")
for p in all_passes:
print('\t{}'.format(p))
print()
# Pick one pass as example
passes = ['fuse_add_bias_into_conv']
# Apply the optimization on the original serialized model
optimized_model = optimizer.optimize(original_model, passes)
print('The model after optimization:\n\n{}'.format(onnx.helper.printable_graph(optimized_model.graph)))
# save new model
onnx.save(optimized_model, "newResnet18.onnx")
对ONNX模型进行BN和卷积层的融合
原创
©著作权归作者所有:来自51CTO博客作者荪荪的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:TensorRT+CUDA加速优化版CenterNet旋转目标以及水平目标框的检测
下一篇:Pytorch修改指定模块权重的方法,即 torch.Tensor.detach()和Tensor.requires_grad方法的用法
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C# Onnx yolov8 竹签计数、一次性筷子计数
C# Onnx yolov8 竹签计数、一次性筷子计数
Image System Text -
tensorflow卷积层后添加归一化
初识在神经网络中,每一层的每个神经元都与下一层的每个神经元相连, 这种连接关系叫全连接(Full Connected)。
tensorflow卷积层后添加归一化 卷积 卷积核 卷积神经网络