본문 바로가기

AI Development/ONNX

(5)
[ONNX] Pytorch 모델을 ONNX 모델로 변환하기 ONNX 모델은 여러 다양한 플랫폼과 하드웨어에서 효율적인 추론을 가능하게 한다. 여기서 하드웨어는 리눅스, 윈도우, 맥 뿐만 아니라 여러 CPU, GPU 등의 하드웨어를 뜻한다. ONNX 모델 변환을 위해 필요한 import 문은 다음과 같다. # 필요한 import문 import io import numpy as np from torch import nn import torch.utils.model_zoo as model_zoo import torch.onnx 예제 모델은 아래에서 소개된 모델을 기반으로 한다. “Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Networ..
[ONNX] onnx-graphsurgeon 이용하여 plugin 사용하기 - Group Normalization TensorRT 7.1.2 버전 부터 Group Normalization plugin 을 지원하기 시작했다. 아래 Github 에서 ONNX GraphSurgeon 을 사용할 수 있으며, https://github.com/NVIDIA/TensorRT/tree/master/tools/onnx-graphsurgeon NVIDIA/TensorRT TensorRT is a C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators. - NVIDIA/TensorRT github.com python 샘플 코드에 onnx_packnet 을 이용하여 group normalization plugin 을 추가하여 onnx ..
[ONNX] Netron : ONNX model Visualization ONNX 모델을 netron Visualization 할 수 있다. https://github.com/lutzroeder/netron lutzroeder/netron Visualizer for neural network, deep learning and machine learning models - lutzroeder/netron github.com Netron supports ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), Core ML (.mlmodel), Caffe (.caffemodel, .prototxt), Caffe2 (predict_net.pb), Darknet (.cfg), MXNet (.model, -symbol.json), Barracuda (.nn..
[Onnx] Onnx Tutorials (정리중) Onnx Tutorials https://github.com/onnx/tutorials onnx/tutorials Tutorials for creating and using ONNX models. Contribute to onnx/tutorials development by creating an account on GitHub. github.com https://github.com/onnx/onnx-tensorrt onnx/onnx-tensorrt ONNX-TensorRT: TensorRT backend for ONNX. Contribute to onnx/onnx-tensorrt development by creating an account on GitHub. github.com https://githu..
[ONNX] Pytorch 에서 Onnx 로 변환 시 Gather op 때문에 export 안되는 문제 Pytorch 에서 Onnx 모델로 변환시 Gather 와 같은 옵션 때문에 변환이 안되는 문제가 발생한다. 이유는 Onnx 에서 Gather 라는 옵션을 지원하지 않기 때문이다. (2020.04.28 기준) 아래와 같이 interpolate 를 scale factor 로 구현하였을 때 class ResizeModel(nn.Module): def __init__(self): super(ResizeModel, self).__init__() def forward(self, x): return F.interpolate(x, scale_factor=(2, 2), mode='nearest') 생성되는 그래프는 아래와 같다 위와 같이 구현할 경우 "Gather" 라는 op 이 붙어서 그래프가 생성되는데, Onnx ..