• Tistory
    • 태그
    • 위치로그
    • 방명록
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

[ONNX] Onnx convert 모델을 검증하자

전공관련/Deep Learning 2020. 4. 22. 11:29




pytorch 등의 프레임워크에서 onnx로 convert 한 모델이 잘 변환됐는지 늘 확인이 필요하다.

 

이럴 때 확인을 위한 방법 정리

 


import torch
import numpy as np
import onnxruntime as rt

def to_numpy(tensor):
    return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy()
    
def test():
    model_pytorch = Net() # 네트워크 선언 및 가중치 로드 했다 치고..
    x = torch.rand(b, c, h, w)
    
    out_torch = model_pytorch(x)
    
    sess = rt.InferenceSession("onnx_model.onnx")
    input_name = sess.get_inputs()[0].name
    label_name = sess.get_outputs()[0].name
    
    out_onnx = sess.run(None, {input_name: x})
    
    np.testing.assert_allclose(to_numpy(out_torch), out_onnx[0], rtol=1e-03, atol=1e-05)
    print("Exported model has been tested with ONNXRuntime, and the result looks good!")

 

결과가 오차범위 (rtol=1e-03, atol=1e-05) 안에 있다면 마지막 프린트문이 출력 될 것이고

오차범위 밖이라면 에러가 발생한다. 이는 변환이 잘못됐다는 얘기지..

저작자표시

'전공관련 > Deep Learning' 카테고리의 다른 글

[Caffe] caffe 환경 설정없이 caffemodel 값을 확인하자  (0) 2021.02.24
[Pytorch] model load시 key가 있는 레이어만 불러오자  (0) 2021.02.17
[ONNX] Onnx convert 모델을 검증하자  (2) 2020.04.22
[Onnx] Onnxruntime - GPU를 사용하자  (0) 2020.03.09
[Onnx] onnx 모듈을 사용하기 위한 class를 만들어보자  (0) 2020.02.26
[Onnx] visual studio에서 onnxruntime을 설치 해 보자  (0) 2020.02.26
블로그 이미지

매직블럭

작은 지식들 그리고 기억 한조각

트랙백 0개, 댓글 2개가 달렸습니다

댓글을 달아 주세요

  • 유니디니 2020.08.05 19:18 신고  댓글주소  수정/삭제  댓글쓰기

    좋은 글 감사합니다.궁금한 점이 있어 글 남깁니다.

    np.testing.assert_allclose 함수의 두번째 인자(pred[0])의 경우 위의 sess.run 함수에서 나온 결과인 out_onnx 값을 넣으면 되는 건가요?

    유용한 정보라서 출처 밝히고 퍼가도 괜찮을까요?

    • 매직블럭 2020.08.07 13:36 신고  댓글주소  수정/삭제

      코드상 오류가 있어서 수정하였습니다.

      위 내용은 pytorch 튜토리얼 문서에 있는 내용이므로 자유롭게 사용하셔도 됩니다.

  • «
  • 1
  • ···
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • ···
  • 414
  • »

카테고리

  • 살다보니.. (414)
    • 주절거림 (3)
    • 취미생활 (36)
      • 지식과 지혜 (3)
      • 풍경이 되어 (4)
      • Memories (17)
      • 엥겔지수를 높여라 (2)
    • mathematics (6)
      • Matrix Computation (2)
      • RandomProcesses (3)
    • English.. (8)
    • Programming (134)
      • C, C++, MFC (51)
      • C# (1)
      • OpenCV (17)
      • Python (47)
      • Git, Docker (3)
      • Matlab (4)
      • Windows (3)
      • Kinect V2 (2)
      • 기타 etc. (6)
    • 전공관련 (73)
      • Algorithm (6)
      • Deep Learning (49)
      • 실습 프로그램 (4)
      • 주워들은 용어정리 (8)
      • 기타 etc. (6)
    • Computer (104)
      • Utility (21)
      • Windows (24)
      • Ubuntu, Linux (55)
      • NAS (2)
      • Embedded, Mobile (2)
    • IT, Device (41)
      • 제품 사용기, 개봉기 (14)
      • 스마트 체험단 신청 (27)
    • Wish List (3)
    • TISTORY TIP (5)
    • 미분류. 수정중 (1)

태그목록

  • 스마트체험단
  • 매트랩 함수
  • Computer Tip
  • 크롬
  • 포르투갈
  • ReadString
  • Deep Learning
  • 딥러닝
  • 오봉자싸롱
  • portugal
  • 칼로리 대폭발
  • SVM
  • matlab
  • DeepLearning
  • utility
  • 큐슈
  • review
  • LIBSVM
  • matlab function
  • 에누리닷컴
  • ColorMeRad
  • random variable
  • function
  • 후쿠오카
  • CStdioFile
  • 매트랩
  • DSLR
  • 갤럭시노트3
  • Convolutional Neural Networks
  • 일본

달력

«   2022/06   »
일 월 화 수 목 금 토
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
06-28 04:37

LATEST FROM OUR BLOG

  • 골뱅이 연산자의 의미 (행렬곱)..
  • 프린터 용지 부족 문제를 해⋯.
  • [MXNet] 데이터 리스트를 만⋯.
  • 예쁘게 출력하자 pprint - pr⋯.
  • 작업표시줄 미리보기를 리스⋯.
  • 이미지 실제 파일 포맷 확인하기.
  • 알리 등 해외배송 배송상태를⋯.
  • 티스토리 코드블럭 내용을 복⋯.
  • warning 을 on/off 하자.
  • windows 10 파일 선택, 파일⋯.
RSS 구독하기

BLOG VISITORS

  • Total : 1,130,795
  • Today : 25
  • Yesterday : 468

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바