Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst

最近在调研 Ml-Agents ,遇到了这个问题。相信有很多同学会和我一样,会遇到这个不算是坑的坑,特来记录一下。

问题

Couldn't connect to trainer on port 5004 using API version 1.5.0. Will perform inference instead.

我入手的 Demo 是ML-Agents官方给出的,是 relase_18 。当我文档装好环境,写好代码,组装好Agent,点击运行按钮,却发现我们RollerAgent 并不会像描述的那样动起来。

检查过很多次后,确信所有代码,环节都是对的。所以怀疑编辑器报出来的这个警告,如下图所示。
Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst_第1张图片

解决方案

网上讨论

  • 因为辑器的5004端口被占用了,需要将其关掉
  • 可能是防火墙阻止了该端口的访问,需要关闭防火墙
  • 还有人说是因为安装的路径中有中文,需要将中文路径处理一下。(这一条不认可,多年开发,我所有的路径都是英文,且空格都不会有)

总之网上看到许多解决方案,上面的第一条想来是有影响的。第二条自己测了,关掉防火墙,问题依然存在。第三条已解释。

我的方案

其实我没有方案,在尝试了多次后,问题依然无法解决。于是硬着头皮向下做。

  • 按照文档配置 roller_ball_config.yaml 文件。
    Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst_第2张图片
    **注意:**我放在代码仓的 config/ppo 文件夹下

  • 启动训练环境
    Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst_第3张图片
    注意:
    请先激活环境,如果你使用了虚拟环境,因为所有的依赖都在虚拟环境中。我使用了虚拟环境 unityML
    Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst_第4张图片

  • 在编辑器启动程序

执行脚本 mlagents-learn rollerball_config.yaml --run-id=RollerBall --force
执行成功后,命令行中会打印出配置文件的信息

至此,我的第一个Demo 跑起来了,那个令人警告不在出现了,并且它动起来了,开始训练了 !!!
Couldn‘t connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst_第5张图片

总结

看到此处,相信你也看到了,我并没有做任何事情。那么问题的解决办法相信您已经知晓啦。
Couldn't connect to trainer on port 5004 using API version 1.5.0. Will perform inference inst ,我猜想它提到的 5004 端口应该是 mlagents-learn 训练环境起起来的,只有启动这个训练环境,你的 Agent 才会动起来。

你可能感兴趣的:(总结,人工智能,笔记,unity)