0

我有一个训练有素的 TensorFlow 模型,该模型正确保存为pb 模型以加载到 .NET 并执行推理。如果目标是 64 位(x64),.NET 程序将正确构建,但是当平台目标更改为 32 位(x86)时,它会抛出异常:

在此处输入图像描述

如果您在谷歌上搜索异常,则最高结果是 2019 年的堆栈溢出响应,其中第二个答案是:

原因 1: Microsoft.ML仅适用于 x64

这看起来并不乐观。然而,那年早些时候,在devblogs.microsoft中有一篇文章,其中提供了有关支持的架构的更多详细信息:

  • 所有平台都支持 x64 位。
  • x86 在 Windows 上受支持,TensorFlow、LightGBM 和 ONNX 相关功能除外。

同一作者在今年晚些时候在devblogs.microsoft上发表的另一篇文章说:

ML.NET 使用硬编码为基于 x86 的 SSE 指令的 C++ 代码。

这听起来更有希望,因为 TensorFlow 很容易转换为 C++。

由于所有这些都是大约 3 年前编写的,并且对 x86 的支持尚不支持 Tensorflow,并且它是根据第三篇文章使用 C++ 构建的,所以有什么改变吗?我尝试浏览 Microsoft.ML 并没有找到任何东西。我也没有找到关于讨论的最新文章。有没有其他方法可以保存 TensorFlow 模型以使其在 .NET 中的 x86 上运行?现在是否支持 x86 上的 C# 中的 TensorFlow?有哪些可能的解决方法?

4

0 回答 0