【问题标题】:How to load and run Intel-Tensorflow Model on ML.NET如何在 ML.NET 上加载和运行 Intel-Tensorflow 模型
【发布时间】:2021-07-09 06:52:51
【问题描述】:

环境:Tensorflow 2.4、Intel-Tensorflow 2.4

据我所知,pb格式的Tensorflow模型可以加载到ML.NET上。

但是,我使用的是量化包 LPOT (https://github.com/intel/lpot),它利用了英特尔优化的 Tensorflow (https://github.com/Intel-tensorflow/tensorflow)。尽管 Intel-Tensorflow 是基于 Tensorflow 构建的,但它使用了一些在 Tensorflow 上没有注册 OpKernel 的量化操作(例如,在 TF 上不推荐使用“QuantizedMatmulWithBiasAndDequantize”)。因此,如果不安装 Intel-Tensorflow,量化模型无法在原生 Tensorflow 环境下运行。

我的目标是在 ML.NET 上运行这个量化的 pb Intel-Tensorflow 模型,有人知道 ML.NET 是否支持 Intel-Tensorflow 吗?或者有没有其他方法可以做到这一点?

非常感谢任何帮助/建议。

【问题讨论】:

  • 我不确定这是否受支持,但最好将问题添加到 ML.NET 存储库 - github.com/dotnet/machinelearning/issues
  • @Jon 谢谢,我会在他们的仓库中添加一个问题!我只是想知道是否有人对这个特定用例有经验,因为我在互联网上的任何地方都找不到任何资源/教程。

标签: python tensorflow ml.net intel-tensorflow intel-lpot


【解决方案1】:

ML.NET 中支持的 oneDNN 取决于 ML.NET 集成。如果他们在 TensorFlow C++ API 中启用 oneDNN,ML.NET 就可以支持 oneDNN。

您可以尝试在启用了英特尔 OneDNN 的 ML.NET 环境中安装 stock Tensorflow 2.5。您可以通过此链接安装库存的 Tensorflow 轮:https://pypi.org/project/tensorflow/#files

安装wheel文件:pip install __.whl.

要启用oneDNN优化,请设置环境变量TF_ENABLE_ONEDNN_OPTS:

set TF_ENABLE_ONEDNN_OPTS=1

为确保显示详细日志:set DNNL_VERBOSE=1

更多oneDNN详细模式请参考:https://oneapi-src.github.io/oneDNN/dev_guide_verbose.html

更多关于英特尔优化TensorFlow的信息,请参考:https://software.intel.com/content/www/us/en/develop/articles/intel-optimization-for-tensorflow-installation-guide.html

【讨论】:

  • 感谢详细的解释!让我试着解释一下,如果我错了,请纠正我:例如,如果我想在 Windows 平台上运行,我应该先在我的 ML 中安装“tensorflow-2.5.0-cp37-cp37m-win_amd64.whl” .NET 环境。然后在我的代码中,我应该设置 TF_ENABLE_ONEDNN_OPTS = 1。这样,ML.NET 应该能够使用我的 LPOT 模型运行推理。对吗?
  • 我知道有允许 TF 在 ML.NET 中本地运行的 Tensorflow.Net 包,我想知道是否可以使用该包而无需安装股票 TF python 轮?一位 LPOT 维护人员告诉我,ML.NET 依赖于nuget.org/packages/SciSharp.TensorFlow.Redist,我应该尝试通过指定一个基于 Intel Optimized TensorFlow 的新 TF nuget 包来构建新的 ML.Net 源代码(我不知道这意味着什么)跨度>
猜你喜欢
  • 2022-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-26
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多