반응형
들어가며이 시리즈의 여정을 여기까지 따라와주셔서 감사합니다. 우리는 다음과 같은 단계를 거쳐왔습니다.LibTorch와 PyTorch 개념 이해 (1편)PyTorch의 C++ 배포판인 LibTorch를 소개하고, 왜 C++ 환경에서 PyTorch를 사용하는지, 또 Python과 C++을 함께 활용하는 최종 목표를 살펴보았습니다.LibTorch 환경 셋업 및 CMake 프로젝트 기초 (2편)LibTorch를 다운로드하고, CMake를 통해 간단한 "Hello LibTorch" 프로젝트를 구성하며 C++에서 텐서 연산을 위한 기초를 닦았습니다.C++에서 텐서 다루기 (3편)다양한 텐서 초기화와 연산, 모양 변경, GPU 사용 방법 등을 예제 코드를 통해 습득하며 C++에서도 Python PyTorch와 비슷한..
들어가며이 시리즈에서 우리는 다음과 같은 단계를 거쳐왔습니다.C++ 환경에서 LibTorch 사용법 익히기 (기초 텐서 연산, TorchScript 모델 로드)Python에서 학습한 모델을 C++로 가져와 추론하기pybind11을 통해 C++ 코드를 Python에 바인딩하기C++과 Python 사이에서 텐서를 자유롭게 교환하는 기법 살펴보기이제 여기까지 배운 내용을 종합하여, 하나의 일관된 파이프라인을 구축해봅시다. 최종적으로 다음과 같은 흐름을 구현할 예정입니다.Python에서 텐서(입력 데이터) 준비pybind11로 바인딩된 C++ 함수를 호출해 TorchScript 모델 추론 수행결과 텐서를 Python으로 되돌려 받아 후처리 및 시각화이 과정을 통해 C++ 성능과 Python의 편리함을 동시에 누..
앞선 글에서 우리는 C++에서 PyTorch 텐서를 생성하고 연산하며, TorchScript 모델을 C++에서 로드하는 방법, 그리고 pybind11을 통해 C++ 함수를 Python에서 호출하는 방법까지 살펴보았습니다. 이제 한 단계 더 나아가 C++과 Python 사이에서 텐서를 자유롭게 주고받는 방법을 다뤄보겠습니다.이 과정은 다양한 시나리오에서 유용합니다. 예를 들어,Python에서 전처리한 입력 데이터를 C++ 모델 로직에 전달하고 싶을 때C++에서 계산한 텐서를 Python에서 시각화하거나 후처리하고 싶을 때Python에서 추론 로직 일부를 C++로 구현하여 성능을 향상시키고, 그 결과를 다시 Python으로 반환할 때이 글에서는 pybind11과 LibTorch를 활용해 C++과 Python..
앞선 글에서 우리는 C++ 환경에서 LibTorch를 이용해 텐서 연산, TorchScript 모델 로딩 및 추론까지 다뤄보았습니다. 이제는 C++에서 구현한 기능을 Python 환경에서도 그대로 불러와 사용할 수 있다면 어떨까요? 이렇게 하면 C++ 코드 기반의 성능과 최적화를 유지하면서도, Python 환경이 제공하는 편리한 스크립팅과 풍부한 생태계를 활용할 수 있습니다.이때 pybind11 라이브러리를 이용하면 C++ 함수를 Python 모듈로 손쉽게 노출할 수 있습니다. Python 개발자는 마치 파이썬 함수처럼 C++ 함수를 호출할 수 있으며, 이는 C++/Python 혼합 워크플로우를 매우 유연하게 만들어줍니다. 이번 글에서는 pybind11을 사용하여 간단한 C++ 함수를 Python에서 호..
많은 개발자와 연구자들이 PyTorch를 이용해 Python 환경에서 딥러닝 모델을 개발하고 학습합니다. 하지만 실제 프로덕션 환경이나 고성능 애플리케이션에서는 C++ 기반의 애플리케이션에 모델을 통합하고 싶을 때가 있습니다. 이때 Python 환경 없이도 모델을 로딩하고 추론할 수 있도록 해주는 것이 바로 TorchScript 입니다.TorchScript를 사용하면 Python으로 학습한 PyTorch 모델을 별도의 .pt 파일 형태로 내보내고, 이 파일을 C++ LibTorch 환경에서 로딩해 추론할 수 있습니다. 이 글에서는 Python에서 TorchScript 모델을 만드는 방법, 그리고 C++에서 이를 로딩해 추론하는 과정을 단계별로 살펴봅니다. 또한 단순한 완전연결 모델에서 한 걸음 더 나아가..