Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- ctypes
- C언어
- 딥러닝
- TensorFlow
- 파워셀
- ChatGPT
- CycleGAN
- V3
- 이터널리턴
- 게임개발
- 리뷰
- python
- 헬스케어
- 파이썬
- 개발자
- 논문
- yolo
- NPY
- 프로그래머
- 호흡분석
- 언어모델
- 논문리뷰
- pyqt5
- Detectron2
- 설치
- 욜로
- 딜러닝
- connx
- 언리얼엔진
- 텐서플로우
Archives
- Today
- Total
사냥꾼의 IT 노트
Python 병렬 라이브러리 개발 프로젝트 - 코드 분할: pyconnx_test.py 본문
※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다.
pyconnx_test.py
CONNX Model을 작동시키기 위한 메인 파일
import ctypes
import sys
# C 구조체
from pyconnx_Types import Model
from pyconnx_Types import Tensor
# C 함수
import pyconnx
# 라이브러리 경로 설정
path =f'./libconnx.so'
connx = ctypes.cdll.LoadLibrary(path)
args = sys.argv
# C 함수를 더욱 잘 활용하기 위함
connx_init = pyconnx.init()
connx_init_model_name = pyconnx.init_model_name()
connx_load_Model = pyconnx.load_Model()
temp_set_input_count = pyconnx.set_input_count()
connx_alloc = pyconnx.alloc()
connx_convert_input_file = pyconnx.convert_input_file()
connx_convert_output_file = pyconnx.convert_output_file()
connx_run_Model = pyconnx.run_Model()
compare = pyconnx.compare()
connx_destroy_model = pyconnx.Model_destroy()
# 메인 코드
ret = ctypes.c_int32()
connx_init()
model = Model()
print(model)
ret = connx_init_model_name(b'./mnist')
if ret != 0:
print('connx_init_model_name failed')
exit(1)
ret = connx_load_Model(ctypes.byref(model), 1)
if ret != 0:
print('connx_load failed')
exit(1)
input_count = 0
graph = model.graphs[0].contents
graph_count = graph.input_count - graph.initializer_count
if graph_count < 0 :
input_count = 1
else:
input_count = graph_count
temp_set_input_count(input_count)
ouput_count = graph.output_count
inputs = ctypes.POINTER(Tensor)()
outputs = ctypes.POINTER(Tensor)()
ret = connx_convert_input_file(ctypes.byref(inputs))
print(1)
if ret != 0:
print("Error: input file is not correct")
exit(1)
ret = connx_run_Model(ctypes.byref(model), ctypes.byref(inputs), ctypes.byref(outputs))
if ret != 0:
print("Error: run model failed")
exit(1)
onnx_result = ctypes.POINTER(Tensor)()
ret = connx_convert_output_file(ctypes.byref(onnx_result))
if ret != 0:
print("Error: output file is not correct")
exit(1)
ret = compare(ctypes.byref(onnx_result), ctypes.byref(outputs))
'python' 카테고리의 다른 글
m1 맥북에 tensorflow 설치하여 개발 환경 만들기 (0) | 2023.04.05 |
---|---|
Python 병렬 라이브러리 개발 프로젝트 - 코드 분할: 실행 결과 및 리뷰 (0) | 2023.01.12 |
Python 병렬 라이브러리 개발 프로젝트 - 코드 분할: pyconnx_Types.py (0) | 2023.01.12 |
Python 병렬 라이브러리 개발 프로젝트 - 코드 분할: pyconnx.py (0) | 2023.01.12 |
Python 병렬 라이브러리 개발 프로젝트 - 순환 참조 오류 (0) | 2023.01.12 |