首页 > 解决方案 > 如何在 ML.NET 上加载和运行 Intel-Tensorflow 模型

问题描述

环境: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 吗?或者有没有其他方法可以做到这一点?

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

标签: pythontensorflowml.netintel-tensorflowintel-lpot

解决方案


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

在此处输入图像描述

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

要安装轮文件: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


推荐阅读