본문 바로가기
AI/Development

[PytorchToC++] 03. Visual Studio에 LibTorch 설치하기

by _S0_H2_ 2021. 9. 29.
728x90
반응형

1. libtorch download

- OS와 CUDA를 컴퓨터 환경에 맞게 설정하고 debug, release 버전 둘 다 다운로드한다. 절대 경로로 참조할 예정이므로 폴더 위치를 신중하게 선택!

2. Visual Studio에서 C++, Windows 선택 후 빈 프로젝트를 생성한다.

 

다운로드 받은 라이브러리 사용을 위해 속성 페이지에서 추가 포함 디렉터리를 설정해주어야한다.

프로젝트 -> 속성 

구성 tab에서 Debug, Release 를 변경하며 동일하게 진행하되, debug와 release버전의 폴더는 다르게 설정한다.

  • C/C++ - 일반 - 추가 포함 디렉터리에서 libtorch(debug/release) 라이브러리가 포함된 경로를 추가한다.

  • C/C++ - 언어 - 준수모드 를 아니요로 변경한다.

  • 링커 - 일반 - 추가 라이브러리 디렉터리에 (debug/release) lib 폴더 경로를 추가한다.

  • 링커 - 입력 추가종속성 에 환경에 맞는 버전을 추가한다. CPU 사용 유저는 위 3개만, GPU 버전 유저는 아래 lib 파일들과 사용하실 파일들까지 입력한다.
  • CPU Version: torch_cpu.lib, c10.lib, torch.lib
  • GPU Version: torch.lib, torch_cuda.lib, caffe2_nvrtc.lib, c10.lib, c10_cuda.lib, torch_cpu.lib, -INCLUDE:?
  • 구성 - 디버깅 - 환경 편집 에 PATH=lib파일 경로;%PATH% 를 추가한다.

 

Debug 버전과 동일하게 Release버전도 설정한다.

 

소스 파일의 main.cpp 코드를 다음과 같이 입력한 뒤 실행시켜보자.

#include <torch/script.h> // One-stop header.

#include <iostream>
#include <memory>

int main(int argc, const char* argv[]) {
    if (argc != 2) {
        std::cerr << "usage: example-app <path-to-exported-script-module>\n";
        return -1;
    }


    torch::jit::script::Module module;
    try {
        // Deserialize the ScriptModule from a file using torch::jit::load().
        module = torch::jit::load(argv[1]);
    }
    catch (const c10::Error& e) {
        std::cerr << "error loading the model\n";
        return -1;
    }

    std::cout << "ok\n";
}

 

#include <torch/script.h> // One-stop header.

#include <iostream>

int main()
{
	torch::Tensor tensor = torch::rand({ 2,3 });

	std::cout << tensor << std::endl;

 

 

 

 

728x90
반응형