dotnet/TorchSharp

A .NET library that provides access to the library that powers PyTorch.

해결하는 문제

TorchSharp은 PyTorch의 기능을 .NET 생태계로 가져옵니다. 이전에는 .NET 개발자가 PyTorch를 사용하기 위해 Python을 사용하거나 다른 프레임워크를 사용해야 했던 문제를 해결합니다. 기본 LibTorch 라이브러리에 대한 액세스를 제공하여 .NET 개발자가 C# 또는 F#에서 신경망을 구축 및 학습하고, 텐서 수학을 수행하는 등의 작업을 할 수 있도록 합니다.

작동 방식

TorchSharp은 래퍼 라이브러리입니다. 네이티브 LibTorch 바이너리를 래핑하고 이를 .NET API로 노출합니다. 설계는 PyTorch의 API를 최대한 가깝게 반영하여 Python 기반 예제를 쉽게 변환할 수 있도록 합니다. 메서드 오버로딩을 사용하여 여러 입력 유형을 지원하며, PyTorch에서 열거형을 사용하는 곳에서는 .NET 열거형을 사용합니다. 핵심은 텐서입니다. 이 라이브러리에는 각 모듈 클래스(예: Linear, ReLU, Dropout)에 대한 팩토리 메서드가 포함되어 있어 C# 코드가 PyTorch와 유사하게 보입니다. 메모리 관리는 삭제 가능한 객체와 신중한 리소스 추적을 통해 처리됩니다.

대상 사용자

이 라이브러리는 .NET 환경을 떠나지 않고 PyTorch의 강력한 기능을 사용하려는 .NET 개발자를 위한 것입니다. 특히 C# 또는 F#으로 작업하는 연구원, 데이터 과학자 및 머신 러닝 엔지니어에게 유용합니다. 또한 자동 미분을 위해 이를 기반으로 구축된 DiffSharp와 같은 다른 라이브러리에서도 사용됩니다.

주요 특징

  • 텐서에 중점을 둔 LibTorch(PyTorch의 엔진)에 대한 .NET 바인딩 제공.
  • PyTorch처럼 느껴지도록 설계되어 Python 예제를 쉽게 적응 가능.
  • CPU 및 CUDA(Windows/Linux)용 패키지가 번들로 포함된 NuGet을 통해 배포.
  • Linux, Windows 및 macOS (Apple Silicon)에서 작동.
  • 네트워크 구축 및 학습을 위한 고수준 모듈(Linear, ReLU, Dropout) 및 옵티마이저(Adam) 포함.
  • CPU 및 GPU (CUDA) 실행 모두 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트