프로그래밍 13

파이썬 extension 모듈 Stub 파일 생성하기

Pycharm은 python 개발에 참 좋은 도구입니다. vscode도 좋지만 python 개발 대부분은 pycharm을 이용하고 있습니다. 전 주로 windows 개발환경에서 개발하고 있는데 windows환경에서 extesion 한 모듈(pyd)을 사용할 때 해당모듈의 정보를 제공해주 sutb를 생성하고 잘 동작하는지 테스트하는 과정을 포스팅해보고자 합니다. mypy 사이트에서 stub는 다음과 같이 정의하고 있습니다 stub in python : A stub file is a file containing a skeleton of the public interface of that Python module, including classes, variables, functions – and most im..

Python pyd 만들기

파이썬은 그 자체가 C로 작성되었다. 이런 맥락에서 생각해보면 파이썬에서 C모듈을 사용할수도 있을뿐 아니라 C에서 파이썬 모듈을 사용할수도 있을것 같다. -> 이말은 사실이다. 본론으로 들어가기전에 파일의 확장자에 대해 살포시 살펴보기로 하자. 파일의 확장자는 그 파일의 속성과 종류를 손쉽게 알려주는 역할을 한다. (이는 어떻게 보면 있어도 되고 없어도 되는 존재이며, 관습적으로 사용하게 된다.) 우리가 흔히 알고 있는 확장자로는 'exe', 'txt', 'jpg', 'mp3' 등 수없이 많다. - lib : 정적 라이브러리 파일, 일반적으로 C, C++ 라이브러리다. - dll : 동적 라이브러리 파일 - pyd : 파이썬이 사용하는 C 라이브러리 여기서는 C로 작성된 코드를 이용하여 pyd를 만들고 ..

CUDA Tutorial

대표적인 병렬처리 프로그래밍 기법 - CPU - 복잡한 연산, 단일 성능이 높음 (Clock Speed)- GPU - 단순한 연산, 단일 성능이 낮음, ALU 동시에 구동 가능, 프로그래밍에 제한이 있음 A는 한 번에 1개의 공을 옮길 수 있고 1초에 한번 작업을 할 수 있다. (Latency : 1, Throughput : 1) B는 한 번에 4개의 공을 옮길 수 있고 2초에 한번 작업을 할 수 있다. (Latency : 2, Throughput : 2)(버스와 스포츠가 라고 생각할 수도 있다.) 전력 효율을 높이기 위해서 CPU 는 점점 latency 를 줄여가고 GPU 는 throughput 을 늘려간다. 배열 정보, index는 grid size 와 block size로 정의된다.grid size..

Tensorflow Export(Protocol buff) + OpenCV Load(dnn)

테스트 환경 :Python : 3.5Tools : Pycharm , Visual Studio 2012( Opencv 3.4.0 ) 1. Tensorflow 모델 학습2. PB(Protocol Buffer)로 graph 정보 및 weight 저장 : freeze_grpah.py 모듈을 사용 - 학습 변수(weights)들 상수화 - fold batch normaliation ? : dropout과 같은 node는 구동(run)환경에서 불필요하므로 제거함. - training node 제거 다음 코드는 optimize_for_inference_lib.py 모듈 코드 일부이다. """Applies a series of inference optimizations on the input graph. Args: i..

텐서플로우 Train 모델 C에서 Load하기

- Tensorflow 에서 학습된 모델을 다른 언어 환경에서 Load해서 사용 가능하다- Protocol Buffers( 일련의 데이터를 구조체저럼 저장) 로 파일을 저장(binary 확장명 .pb, text형태도 저장 가능(pbext -> name, op, input, attr 으로 구성되어 있는것을 확인 할수 있다.- 각 노드(node)는 자신의 고유 이름(name)을 가지고 있다. - Tensorflow API 공식사이트 설명https://www.tensorflow.org/extend/tool_developers/ : 위에 사이트에 살펴보면 freeze_graph.py 라고 github 예제 코드가 있음- freeze_graph.py 모듈을 사용 정의한 그래프(graph)와 checkoints를 ..