复现ML.NET句子相似度示例遇System.AccessViolationException错误求助
解决ML.NET句子相似度示例中System.AccessViolationException的方案
检查CUDA环境兼容性
TorchSharp-cuda-windows(0.98.3)需要匹配对应版本的CUDA驱动和工具包,该版本通常适配CUDA 11.7或11.8。卸载系统中不兼容的CUDA版本,重新安装对应版本,同时确认CUDA_PATH环境变量指向正确的安装目录。切换为CPU版本TorchSharp包
移除TorchSharp-cuda-windows(0.98.3),安装TorchSharp(0.98.3)(CPU版本),规避CUDA相关的内存访问冲突。若仅需验证示例功能,CPU版本可满足测试需求,后续再单独排查CUDA环境问题。清理并重新还原项目依赖
删除项目目录下的bin和obj文件夹,在命令行执行dotnet clean和dotnet restore命令,确保所有依赖包完整下载并正确部署,避免缓存损坏的包引发内存异常。手动初始化TorchSharp
在执行var model = pipeline.Fit(dataSplit.TrainSet);之前,添加TorchSharp初始化代码,避免内部生成器初始化出错:// 若使用CPU版本 TorchSharp.Torch.InitializeDeviceType(TorchSharp.DeviceType.CPU); // 若确认CUDA可用(需先安装对应CUDA环境) // if (TorchSharp.Torch.Cuda.IsAvailable()) TorchSharp.Torch.InitializeDeviceType(TorchSharp.DeviceType.CUDA); TorchSharp.Torch.ManualSeed(42);验证.NET运行环境版本
确保项目使用的.NET版本和示例一致,ML.NET 2.0.0推荐搭配.NET 6或.NET 7,避免因.NET版本不兼容导致底层调用错误。
内容的提问来源于stack exchange,提问作者CBal
相关产品推荐
相关产品推荐

