깔끔하게 파이토치 모델을 C++ 완성된 애플리케이션에 넣어 사용하는 방법을 정리하는 글이다
개발 환경은 다음과 같다
OS: Ubuntu 16.04
Pytorch 1.0
CMAKE 3.13.3
libtorch cpu버전
C++편집기: Dev C++
우선 새 폴더를 만들어 CMakeLists.txt와 Cpp 소스코드를 만든다
CMakeLists.txt:
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(custom_ops)
find_package(Torch REQUIRED)
add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 11)
C++ 코드는, 실행시 모델 경로를 같이 전달하면 확인 후 load하며 잘 load가 되었다면 cout을 통해 ok를 출력하는 코드이다
두 파일이 있는 폴더에 새폴더를 만들어 build로 이름짓고 폴더로 들어가 터미널을 실행한다
그리고 CMAKE를 만드는 명령어들을 실행한다
cmake -S '소스코드있는 경로' -DCMAKE_PREFIX_PATH='libtorch 경로'
make
순서대로 입력 후 빌드가 성공적으로 끝나면 ./example-app '모델경로' 명령어로 완성된 애플리케이션을 실행하낟
ok가 출력되면 성공
이제 실제 load한 모델에 인풋값을 통과시켜보는 작업을 한다
C++ 코드를 아래와 같이 수정한다
이때 자신이 사용하는 모델의 인풋 shape에 맞게 inputs을 생성해준다
터미널로 돌아가
make
./example-app '모델경로'
순서대로 명령어를 실행하면 된다
그 결과 아래와 같은 결과를 얻었다.
'딥러닝 > 파이토치' 카테고리의 다른 글
파이토치 모델을 C++에서 사용하기 -3- (0) | 2019.01.16 |
---|---|
파이토치 모델을 C++에서 사용하기 -2- (0) | 2018.12.26 |
파이토치 모델을 C++에서 사용하기 -1- (6) | 2018.12.10 |
배치 사이즈에 대한 얕은 탐구 (0) | 2018.09.20 |
PIL 이미지 퀵 스타트 튜토리얼 quick start tutorial (0) | 2018.06.15 |