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

时间:2017-06-23 00:27:59

标签: c# python unity3d machine-learning tensorflow

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

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

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

3 个答案:

答案 0 :(得分:1)

  

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

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

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

例如,假设您有一个名为Context的C ++类,并且您希望将其作为插件并在Unity程序中使用它,请参阅描述如何使用的this帖子去做。这是最简单的解决方案。这就是如何为C ++ API创建包装器。

答案 1 :(得分:1)

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

使用该格式,您应该能够在

中加载模型

希望有所帮助。

答案 2 :(得分:0)

您可以启动提供预测服务的TensorflowServing,您可以通过C#grpc客户端访问预测服务。