You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ML.NET CPU环境下LibTorchSharp DLL加载失败问题求助

解决ML.NET文本分类中LibTorchSharp加载失败的问题

问题描述

执行ML.NET文本分类代码时触发以下异常:

System.DllNotFoundException: 'Unable to load DLL 'LibTorchSharp' or one of its dependencies: The specified procedure could not be found. (0x8007007F)'

当前项目引用的NuGet包:

<PackageReference Include="libtorch-cpu-win-x64" Version="2.4.0" />
<PackageReference Include="Microsoft.ML" Version="3.0.1" />
<PackageReference Include="Microsoft.ML.TorchSharp" Version="0.21.1" />

复现问题的最小控制台代码:

using Microsoft.ML;
using Microsoft.ML.TorchSharp;

namespace MLTest;
class TestClass
{
  public void MakeMLModel()
  {
    MLContext mlContext = new()
    {
      FallbackToCpu = true,
      GpuDeviceId = null
    };
    var data = mlContext.Data.LoadFromEnumerable(GetData());
    var pipeline =
      mlContext.Transforms.Conversion.MapValueToKey("Label", "Category")
        .Append(mlContext.MulticlassClassification.Trainers.TextClassification(sentence1ColumnName: "Text"))
        .Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));
    var model = pipeline.Fit(data);
  }

  private class DataObject
  {
    public string Category { get; set; }
    public string Text { get; set; }
  }

  private IEnumerable<DataObject> GetData()
  {
    for (var i = 0; i < 50; i++)
    {
      DataObject x = new() { Category = (i % 4).ToString(), Text = "abcdefghijklmnopqrstuvwxyz"[i%26].ToString() };
      yield return x;
    }
  }
}

解决步骤

1. 修正包版本兼容性

Microsoft.ML.TorchSharp与libtorch、TorchSharp存在严格版本绑定,手动指定libtorch-cpu-win-x64版本容易导致冲突。直接移除手动添加的libtorch-cpu-win-x64包,让Microsoft.ML.TorchSharp自动管理依赖组件,修改后的包引用:

<PackageReference Include="Microsoft.ML" Version="3.0.1" />
<PackageReference Include="Microsoft.ML.TorchSharp" Version="0.21.1" />

2. 统一项目平台目标

  • 右键项目 → 属性 → 生成 → 目标平台选择x64(libtorch仅支持64位环境,默认Any CPU可能引发加载失败)
  • 确保“首选32位”选项未勾选

3. 清理重建项目

  • 删除项目目录下的bin和obj文件夹
  • 执行命令:dotnet clean → dotnet restore → dotnet build
  • 重新运行项目

4. 安装系统依赖库

LibTorchSharp依赖Visual C++ Redistributable for Visual Studio 2019/2022(x64版本),如果系统未安装,下载对应版本运行时安装后重试。

5. 强制指定CPU运行

调整MLContext配置,显式强制使用CPU:

MLContext mlContext = new MLContext();
mlContext.GpuDeviceId = -1; // 强制禁用GPU,仅使用CPU

内容的提问来源于stack exchange,提问作者Thomas Coleman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:41:08