unity3d - 如何在 Unity 中为生产代码部署 pytorch 神经网络

标签 unity3d pytorch ml-agent

我有一个在 pytorch 中训练的神经网络,我想将其部署到 Unity 应用程序中。最好的方法是什么?我也有兴趣允许用户在 Unity 应用程序中进一步训练神经网络,我想这需要将 pytorch 的某些部分集成到 Unity 中(也许有一种方法可以将 pytorch 的 C++/torchscript API 与 Unity 集成?)。如果有人有这方面的经验,我想知道最好的选择是什么。

最佳答案

查看 Unity ML Agents 中的新功能。 Unity ML Agents(称为 Barracuda)中有一个推理引擎,允许您在应用程序中使用预训练模型。 AFAIK,您可以将 Tensorflow 和 ONNX 模型转换为 Barracuda。这应该不是问题,因为 Pytorch 模型可以转换为 ONNX 格式。如果模型直接受应用程序影响(例如,如果它是 RL 代理),您可能需要重新训练模型。
编辑:要回答您的第二个问题,您可以继续训练模型,但不是实时训练。您可以做的是从用户那里收集数据,并使用它来进一步训练模型(这就是 TensorFlow Serving 的工作方式)。您可以通过 ONNX 将 PyTorch 模型转换为 TensorFlow 模型来实现。
编辑 2:梭子鱼现在是一个独立的、生产就绪的推理引擎,专门在 ONNX 格式上运行。任何可以转换为该格式的框架(例如 Keras、Pytorch、MXNet)只要包含支持的运算符就可以工作。

关于unity3d - 如何在 Unity 中为生产代码部署 pytorch 神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56316823/

相关文章:

unity3d - 如何统一等待特定秒数

c# - 如何在具有良好音频的Unity 5.6中更改视频的速度?

visual-studio - 创建 mdb 文件以在 Unity 中调试托管 DLL

c++ - 找不到 <torch/extension.h>

optimization - 如何使用带渐变但不调整权重的图层?

c# - 查找带有标签的非事件游戏对象?

machine-learning - 自定义权重初始化导致错误 - pytorch

unity-game-engine - 使用内部大脑进行预训练网络的 Unity 机器学习会导致崩溃

python - 使用 Tensorflow 在 Windows 10 上为 ML-Agents 设置 Unity3D 机器学习