如何使用C#让Microsof.tML在NVDIA GPU上运行?我按照的指示
https://github.com/dotnet/machinelearning/blob/master/docs/api-reference/tensorflow-usage.md
我的管道看起来像下面。所有版本的依赖项(onnxruntime.gpu、Microsoft.ML等(都是1.5.2,因此应该支持这一点,但我得到了异常DllNotFoundException:无法加载DLL"onnxruntime"或其依赖项之一:找不到指定的模块-是的,onnxrunning确实出现在已安装的nuget包列表中。
有人用过这个吗?文档仍然相当稀疏,而且似乎没有任何可用的在线示例。
var pipeline = context.Transforms.ResizeImages(
resizing: ImageResizingEstimator.ResizingKind.Fill,
outputColumnName: "image", imageWidth: ImageSettings.imageWidth,
imageHeight: ImageSettings.imageHeight,
inputColumnName: nameof(ModelInput.Image)
)
.Append(context.Transforms.ExtractPixels(outputColumnName: "image"))
.Append(context.Transforms.ApplyOnnxModel(
modelFile: "./ObjectDetection/tinyyolov2-8.onnx",
outputColumnName: "grid",
inputColumnName: "image",
gpuDeviceId:0)
);
OK-回答我自己的问题的形式不好,但上面的链接说你必须使用Cuda 10似乎不准确。如果你使用的是ML.net 1.5 nuget版本,你需要Cuda 10.2。
11不会起作用,除非你从源头构建(谁有时间这样做(。
希望这能解决问题,但如果你要发表评论,请也这样做!
这是兼容性图表。较新的版本具有不同的兼容性。
CUDA Execution Provider可在Nvidia CUDA GPU上实现硬件加速计算:
https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html