dotnet/TorchSharp

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

解决的问题

TorchSharp 将 PyTorch 的功能引入了 .NET 生态系统。它解决了 .NET 开发人员以前必须使用 Python 或其他框架来使用 PyTorch 的问题。它提供了对底层 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 示例。
  • 通过 NuGet 分发,并捆绑了适用于 CPU 和 CUDA(Windows/Linux)的包。
  • 适用于 Linux、Windows 和 macOS (Apple Silicon)。
  • 包含用于构建和训练网络的高级模块(Linear、ReLU、Dropout)和优化器(Adam)。
  • 支持 CPU 和 GPU (CUDA) 执行。

相关

  • 项目
  • 项目
  • 项目
  • 项目