【问题标题】:How should I deploy a trained CNN model to a C# project?我应该如何将经过训练的 CNN 模型部署到 C# 项目中?
【发布时间】:2017-06-24 02:31:03
【问题描述】:

我已经使用 Tensorflow 在 python 上训练了一个 CNN 模型,我计划在 Unity 项目(使用 C#)中使用该模型。

我想可以使用 IronPython 运行 python 脚本,但它是否需要 Unity 游戏的用户安装 Tensorflow?那么为移动设备(Android)打包游戏呢?

或者我是否必须自己编写一个函数或其他东西来模拟CNN的过程?有什么更简单的方法来做到这一点?

【问题讨论】:

  • 你试过pythonnet吗?

标签: c# python unity3d machine-learning tensorflow


【解决方案1】:

我应该如何将经过训练的 CNN 模型部署到 C# 项目中?

我在 Tensorflow 网站上进行了快速搜索,最简单且推荐的方法是使用 C++ 而不是 Python。这与 C++ 与 Python 无关。这是关于可移植性的,因为用这种语言编写的任何代码都可以在 Unity 支持的大多数平台上运行,并且 Tensorflow API 支持适用于 Android 和 iOS 的 C++。

只需下载 Tensorflow C++ API。为您要使用的每个 Tensorflow 类构建一个简单的包装器。在 C# 端,调用这些 wapper 函数。

例如,假设您有一个名为 Context 的 C++ 类,并且您想将其作为插件并在 Unity 程序中使用,请参阅描述如何执行此操作的 this 帖子。这是最简单的解决方案。这就是为 C++ API 制作包装器的方法。

【讨论】:

    【解决方案2】:

    您可能希望使用 SavedModel 格式导出模型(请参阅this related question/answer)。

    使用该格式,您应该能够以任一方式加载模型

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      你可以启动一个TensorflowServing提供predict服务,你可以通过C# grpc客户端访问predict服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-19
        • 2019-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 2019-12-13
        相关资源
        最近更新 更多