代码之家  ›  专栏  ›  技术社区  ›  Mei Zhang

pytorch神经网络在Unity中的应用

  •  0
  • Mei Zhang  · 技术社区  · 7 年前

    0 回复  |  直到 6 年前
        1
  •  7
  •   Ayaz Amin    6 年前

    查看unityml代理的新特性。UnityML代理(称为Barracuda)中有一个推理引擎,允许您在应用程序中使用预训练模型。另外,你可以把Tensorflow和ONNX模型转换成梭鱼。这应该不是问题,因为Pytorch模型可以转换为ONNX格式。如果模型直接受到应用程序的影响(例如,如果模型是RL代理),则可能需要对其进行重新培训。

    编辑:要回答第二个问题,可以继续训练模型,但不能实时训练。您可以从用户那里收集数据,并使用这些数据进一步训练模型(这就是TensorFlow服务的工作原理)。您可以通过ONNX将PyTorch模型转换为TensorFlow模型来实现这一点。

    编辑2:Barracuda现在是一个独立的、可用于生产的推理引擎,只在ONNX格式上运行。任何可以转换成这种格式的框架(例如Keras、Pytorch、MXNet)只要包含支持的操作符就可以工作。

        2
  •  3
  •   Doh09    7 年前

    这不是一个完整的答案。但它应该能够帮助你取得更大的进步。

    我做了一些搜索,找到了4个部分解决方案:

    1. Unity python解释器: https://forum.unity.com/threads/python-interpreter-in-unity.86461/

    2. 在Unity中使用IronPython运行代码的示例: https://gamedev.stackexchange.com/questions/123526/a-python-script-controlling-a-unity-game

    3. Unity3D C#和Python之间使用ZeroMQ的通信示例: https://unitylist.com/p/hc8/Unity3D-Python-Communication

    4. 通过XML文件自己实现对其他语言的语言支持: https://forum.unity.com/threads/add-multiple-language-support-to-your-unity-projects.206271/

    一旦能够运行代码,就需要引用python文件的位置。这样,如果运行它的环境也正确安装和设置了Python,就应该能够运行它。

    希望这对你有帮助。