반응형

목적

ONNX Model의 검증이 필요할 때에 간략하게 테스트 하는 방법

Dependency package

Pillow가 없을 경우 pip 설치가 필요함

출력

해당 모델은 customized된 Resnet 모델로 Output이 10개 이하임.
그래서 수치의 결과물을 보기 위한 것으로, 모든 값을 한 행에 출력을 하게끔 작성함.
필요에 따라 적절한 수정이 필요함.

Python Code

import os
import onnxruntime as rt
from PIL import Image
import numpy as np

model_path = 'model path str'
image_dir = 'image path str'
width = 224
height = 224

sess = rt.InferenceSession(model_path)

for filename in os.listdir(image_dir):
    if filename.endswith('.jpg') or filename.endswith('.jpeg'):
        img = Image.open(os.path.join(image_dir, filename))

        img = img.resize((width, height))
        img = np.array(img).astype('float32')

        img = np.expand_dims(img, axis=0)
        img = np.transpose(img, (0, 3, 2, 1))

        input_name = sess.get_inputs()[0].name
        result = sess.run(None, {input_name: img})

        result = np.reshape(result, (-1))
        print("{}: {}".format(filename, ', '.join(np.array2string(r.flatten(), separator=', ', max_line_width=np.inf) for r in result)))
반응형
반응형

 

https://github.com/ZhangGe6/onnx-modifier

 

GitHub - ZhangGe6/onnx-modifier: A tool to modify ONNX models in a visualization fashion, based on Netron and Flask.

A tool to modify ONNX models in a visualization fashion, based on Netron and Flask. - GitHub - ZhangGe6/onnx-modifier: A tool to modify ONNX models in a visualization fashion, based on Netron and F...

github.com

 

1. 설치

git clone git@github.com:ZhangGe6/onnx-modifier.git
cd onnx-modifier

pip install -r requirements.txt

2. 실행

python ./app.py

 

주의 사항

Web based며 실행 이후에는 Web Browser를 통해서 접근해야됨.
Default로 127.0.0.1:5000 을 사용하고 있으며, Loopback 주소이기 때문에, 해당 컴퓨터의 GUI를 사용해야 됨.

만약 서버에서 설치 후에 다른 컴퓨터에서 접근하고 싶을 경우 Eth에 할당된 다른 주소를 --host 옵션의 파라미터로 전달할 경우 접근 가능함

python3 ./app.py --host <<IP Address>> --port <<Port>>

혹은 해당 서버의 할당된 IP들에 대해서 사용하고 싶을 경우 0.0.0.0을 할당하면, 모든 Eth에 할당된 IP를 통해 서비스 가능함

python3 ./app.py --host 0.0.0.0 --port <<Port>>
반응형

+ Recent posts