gpt4 book ai didi

python-3.x - 将经过 tensorflow 训练的图部署到生产中的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 16:04:26 24 4
gpt4 key购买 nike

作为实习的一部分,我最近一直在研究机器学习问题。到目前为止,我一直在使用带有 python 的 Tensorflow,因为这是我最熟悉的。一旦使用深度学习解决了一个问题,剩下的就是网络架构和权重。现在,我的问题是,如何在生产中部署我的解决方案?我不会使用 tensorflow 服务,因为它主要用于设置远程服务器的大型应用程序,您开发的应用程序将向该服务器发出请求。就我而言,我只想开发一个机器学习解决方案并将其集成到一个现有的软件中,该软件使用 C++ 和 visual studio 2017。

到目前为止,经过大量研究,我想到了一些解决方案:

1) 使用 OpenCV 的“dnn”模块:该模块可以加载图形,您可以进行推理和其他操作(例如在运行时从网络中提取特定层)。这个模块看起来很有前途,但是当我使用与 OpenCV github 中描述的示例中使用的网络略有不同的网络时,我开始遇到一些问题,他们使用“inception5h”作为示例,当我尝试加载“inception_v3”时网络中的某个未知层存在错误,即 JPEG_decode 层。

2) 从源代码构建 tensorflow 并直接使用 C++。这个解决方案似乎是最好的解决方案,但后来我遇到了很多问题,我的部分代码无法编译,而其他代码可以编译。我在 Windows 10 上使用 Visual Studio 2017。所以虽然我能够从源代码构建 tensorflow,但我无法编译代码的所有部分,事实上它甚至不是我的代码,它是 tensorflow 的一个例子网站,这个:tensorflow C++ example .

3) 我感兴趣的另一种可能性是使用 tensorflow 设计解决方案,然后使用其他机器学习框架(例如 Caffe2、CNTK 等)部署到生产环境中。我在这里发现了一些将图形从一个框架转换为另一个框架的可能性:models converters .我认为这可能是一个合理的解决方案,因为我所要做的就是找到与 Windows 最兼容的框架,并在我完成在 tensorflow 和 python 中设计我的解决方案后进行模型转换。转换过程虽然看起来有点太好了,我错了吗?

4) 我想到的最后一种可能性是使用 CPython。所以基本上,我将在 python 中创建用于预测的管道,包装一些 python 函数然后使用 <Python.h>在我的 Visual Studio 项目中并使用 C++ 调用这些函数,这是一个示例:embedding python in C++ .我以前从未使用过这样的解决方案,我不确定所有可能出错的地方。

那么基本上,您认为将机器学习解决方案部署到 Visual Studio 上使用 C++ 的现有项目中的最佳解决方案是什么?我错过了更好的解决方案吗?非常感谢任何指南或提示!

最佳答案

我最终使用了解决方案 2。在 tensorflow 的新更新之后,现在可以更轻松地在 Windows 上从源代码构建 tensorflow。有了这个解决方案,我不需要担心我的模型的兼容性,因为我将 tensorflow 与 python 一起用于原型(prototype)设计,并将它与 C++ 一起用于生产。

[编辑]:2021 年,我现在使用 ONNX 运行时 (ORT) 作为 C++ 应用程序的一部分在生产中部署我的模型。 ORT 的文档不是很好,但工具本身非常好。

关于python-3.x - 将经过 tensorflow 训练的图部署到生产中的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com