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



我已经使用TensorFlow在Python上训练了CNN模型,我计划在Unity项目中使用该模型(使用C#(。

我想可以使用Ironpython运行Python脚本,但是Unity游戏的用户是否已安装了TensorFlow?那为移动设备(Android(打包游戏呢?

还是我必须编写功能或其他内容来模拟自己的CNN过程?做这个更简单的方法是什么?

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

我在 tensorflow 网站上进行了快速搜索,最简单和建议的方法是使用C 而不是Python。这与C 与Python无关。这是关于可移植性的,因为此langugae中编写的任何代码都可以在大多数平台上运行,而 tensorflow api支持C 为Android和iOS。

只需下载 tensorflow c api即可。为要使用的每个 tensorflow 类构建一个简单的包装器。在C#侧,调用这些Wapper功能。

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

您可能想使用SavedModel格式导出模型(请参阅此相关问题/答案(。

使用该格式,您应该能够将模型加载到

  • TensorFlow服务 - 您可以从C#
  • 制作RPC
  • 或在C#程序中使用c#bintings(https://github.com/migueldeicaza/tensorflowsharp(。但是,似乎这些绑定尚未支持SavedModel格式,应该很容易添加该功能。

希望会有所帮助。

您可以启动一个提供预测服务的TensorFlowserving,您可以通过C#GRPC客户端访问预测服务。

最新更新