목록전체 글 (68)
사냥꾼의 IT 노트

※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다. 원래는 함수, 구조체별로 코드를 분할 해 총 17개의 파일로 만들었으나, 업체에서 라이브러리를 불러오는 코드가 너무 불필요하게 많이 사용되어 시스템 부하의 문제가 발생할 수 있다는 우려가 들어왔다. 따라서 함수, 구조체별로만 코드를 묶어 분할하는 방향으로 프로젝트를 진행했다. pyconnx.py 로직: C 함수들을 모아 놓은 파이썬 파일 파일 'pycoonx'로 통합한 함수 목록 compare() alloc() convert_input_file() convert_output_file() init_model_name() init() load_Model() Model_destroy() run_Model() set_input_count..

※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다. demo.py를 다음과 같이 분할 후 실행 하면, 순환 참조 오류가 발생한다. # Set C function : init_model = load model and run model import ctypes from ctypes.wintypes import POINT import sys from enum import Enum # Set path And Load Library path =f'./libconnx.so' connx = ctypes.cdll.LoadLibrary(path) args = sys.argv # Set C Stucture by python ctypes class connx_Graph(ctypes.Structure)..

※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다. demo.py 연구 과제를 준 기업에서 보낸 demo 파일. 해당 파일을 파이썬에 맞게 튜닝하고 코드를 분할해야 한다. 라이브러리 import import ctypes from ctypes.wintypes import POINT import sys from enum import Enum ctypes : ctypes 라이브러리를 이용하기 위함 ctypes.wintypes : 특정 데이터형을 제공하여 구조체를 정의할 수 있게 함 sys : 파이썬 인터프리터를 제어하기 위함 enum : 여러 개 상수의 집합을 정의할 수 있음 so 파일 불러오기 path =f'./libconnx.so' connx = ctypes.cdll.LoadLibr..

※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다. __pycache__ : 파이썬 파일이 실행되면 자동적으로 생기는 byte 파일 include : C 라이브러리 호환을 위한 헤더 파일 mnist : connx model 을 위한 데이터셋 libconnx.so : C 언어로 작성된 so livrary 파일 pyconnx : C 함수들을 모아놓은 파이썬 파일 pyconnx_test : connx model을 작동시키기 위한 메인 파일 pyconnx_Types : C 구조체들을 모아놓은 파이썬 파일

※본 포스팅은 22년 9월~22년 11에 진행된 프로젝트의 연구노트입니다. ctypes란? ctypes는 C/C++로 만들어진 라이브러리를 파이썬에서도 이용할 수 있게 하는 라이브러리다. https://docs.python.org/ko/3/library/ctypes.html ctypes — A foreign function library for Python Source code: Lib/ctypes ctypes is a foreign function library for Python. It provides C compatible data types, and allows calling functions in DLLs or shared libraries. It can be used to wrap these ..
※본 포스팅은 22년 9월~22년 11월에 진행된 프로젝트의 연구노트입니다. CONNX Engine (인공지능 모델 추론 엔진)은 현재 C언어 라이브러리로 작성되어 있어 python 기반 모듈로의 변환 연구의 필요성이 제기되었다. 인공지능 분야에서 python은 C언어에 비해 상대적으로 범용성과 접근성이 높기 때문이다. CONNX Engine의 so 라이브러리는 python과 연동되어 인공지능 추론 엔진의 기능이 제대로 작동되어야 한다. python과 연동되는 과정에서 python에서 기본적으로 제공하는 모듈인 ctypes를 사용한다. ctypes는 C언어로 작성된 모듈 및 함수 등을 python에서도 이용 가능하게 해주는 모듈이다. https://docs.python.org/ko/3/library/ct..