Unity之ml-agents(一):环境配置及初步使用

这篇具有很好参考价值的文章主要介绍了Unity之ml-agents(一):环境配置及初步使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  ml-agents是Unity官方专门用来提供强化学习的工具包,关于ml-agents的介绍不是本文的重点。相比于其他的工具包只需要在package manager中导入,ml-agents需要进行一下简单的配置。这篇文章就对于配置过程及过程中可能遇到的一些问题给予解答。
  Unity开源网址:https://github.com/Unity-Technologies/ml-agents
  ml-agents的配置有CPU版和GPU版,因为目前GPU并没有提供太多的增益。本篇文章就介绍CPU的配置了。
  本篇文章的环境为:windows10+Unity2021.3+Anaconda

一、环境配置

1.下载Anaconda,并完成环境变量设置

Unity之ml-agents(一):环境配置及初步使用
  标志:cmd执行conda list有输出

2.创建虚拟环境并进入虚拟环境

  cmd执行

conda create -n ml-agents python=3.7   
activate ml-agents

3.安装pytorch和相关python包(mlagents)

  cmd执行

pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
python -m pip install mlagents==0.28.0

  判断是否下载成功:

mlagents-learn --help

4.下载源码

  下载网址:https://github.com/Unity-Technologies/ml-agents/releases/tag/release_19
最新版本是Release_20,但19会稳定一点

5.激活源码环境

cd ml-agents-envs
pip install -e .
cd ..
cd ml-agents
pip install -e .

  完成以上过程以上环境配置成功

ps:因为需要python环境,所以以后每次使用都需要先activate到指定环境才能执行mlagents的一些命令

  笔者在配置过程中遇到了一些问题,在此做个记录,也希望能够提供一些帮助

记录一:报错:‘conda‘不是内部或外部命令,也不是可运行的程序或批处理文件

  原因及解决方案:这个是因为Anaconda虽然安装成功了但没有进入环境变量,在环境变量中的Path中配置一下就可以。具体步骤参考:https://blog.csdn.net/m0_68744965/article/details/125700817
同时在Anaconda下使用ml-agents需要多次使用conda命令,关于conda命令可以参考:https://zhuanlan.zhihu.com/p/94744929

记录二:查看pytorch的版本方法

  在cmd中进行如下操作:

python
import torch
print(torch.__version__)

记录三:报错:执行conda创建环境时产生如下报错:

C:\Users\Administrator>conda create -n ml-agents python=3.7
Collecting package metadata (current_repodata.json): failed

CondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is required to
download and install packages.

Exception: HTTPSConnectionPool(host='repo.anaconda.com', port=443): Max retries exceeded with url: /pkgs/main/win-64/current_repodata.json (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))

解决方法:将xxxx/Anaconda3/LIbrary/bin添加到环境变量(这个很多最开始配置Anaconda的教程都没提)

记录四:报错:执行mlagents-learn时报错信息如下:

C:\Users\Administrator\Desktop\ml-agents-release_19\ml-agents-release_19>mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun

            ┐  ╖
 Version information:
  ml-agents: 0.28.0,
  ml-agents-envs: 0.28.0,
  Communicator API: 1.5.0,
  PyTorch: 1.7.1+cpu
Traceback (most recent call last):
  File "D:\Anaconda\envs\ml-agents\Scripts\mlagents-learn-script.py", line 33, in <module>
    sys.exit(load_entry_point('mlagents', 'console_scripts', 'mlagents-learn')())
  File "c:\users\administrator\desktop\ml-agents-release_19\ml-agents-release_19\ml-agents\mlagents\trainers\learn.py", line 260, in main
    run_cli(parse_command_line())
  File "c:\users\administrator\desktop\ml-agents-release_19\ml-agents-release_19\ml-agents\mlagents\trainers\learn.py", line 256, in run_cli
    run_training(run_seed, options, num_areas)
  File "c:\users\administrator\desktop\ml-agents-release_19\ml-agents-release_19\ml-agents\mlagents\trainers\learn.py", line 89, in run_training
    stats_writers = register_stats_writer_plugins(options)
  File "c:\users\administrator\desktop\ml-agents-release_19\ml-agents-release_19\ml-agents\mlagents\plugins\stats_writer.py", line 47, in register_stats_writer_plugins
    if ML_AGENTS_STATS_WRITER not in importlib_metadata.entry_points():
  File "D:\Anaconda\envs\ml-agents\lib\site-packages\setuptools\_vendor\importlib_metadata\__init__.py", line 239, in __eq__
    return self._key() == other._key()
AttributeError: 'str' object has no attribute '_key'

  原因及解决方案:这个是因为缺少一个库,cmd中执行python -m pip install importlib-metadata

记录五:报错:执行mlagents-learn时报错,报错信息如下:

C:\Users\Administrator\Desktop\Unity_workstation\Rollerball\config>mlagents-learn config/rollerball_config.yaml --run-id=RollerBall
Traceback (most recent call last):
  File "D:\Anaconda\envs\ml-agents\Scripts\mlagents-learn-script.py", line 33, in <module>
    sys.exit(load_entry_point('mlagents', 'console_scripts', 'mlagents-learn')())
  File "D:\Anaconda\envs\ml-agents\Scripts\mlagents-learn-script.py", line 22, in importlib_load_entry_point
    for entry_point in distribution(dist_name).entry_points
  File "D:\Anaconda\envs\ml-agents\lib\site-packages\importlib_metadata\__init__.py", line 937, in distribution
    return Distribution.from_name(distribution_name)
  File "D:\Anaconda\envs\ml-agents\lib\site-packages\importlib_metadata\__init__.py", line 531, in from_name
    raise PackageNotFoundError(name)
importlib_metadata.PackageNotFoundError: No package metadata was found for mlagents

  原因及解决方法:这个是因为环境被移动过了,之前激活的失败了。需要重新激活环境,在新路径下执行:

cd ml-agents-envs
pip install -e .
cd ..
cd ml-agents
pip install -e .

二、初步使用

  ml-agents官方提供了很多demo,都放在https://github.com/Unity-Technologies/ml-agents/tree/develop/Project/Assets/ML-Agents/Examples
  本文就以其中的一个3DBall的小项目为例,体会一下整体训练过程
  在进行下面的操作前,请保证本文第一部分的环境配置已经成功。

1.启动python环境

 具体一点就是cmd中activate ml-agents

2.准备Unity端

 本文中使用的是官方的demo,所以只要下载代码,在项目中选择3DBall并导入unity端就行了(官方的代码已经带了训练模型,需要取消一下才能从头训练,也就是下图圈出来的部分要选择None)

Unity之ml-agents(一):环境配置及初步使用

3.python端启动

  cmd执行如下命令:

mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun --force

  对这个命令解释一下,这里面有三个参数:第一个是一个yaml的配置文件,要注意下执行路径(相对路径)要提前在cmd中cd到config的上一层再执行,第二个参数是–run-id是唯一标识符,第三个参数是强制生产,因为id唯一,如果用同一个id连续训练两次是不行的(第一次训练是不用加的,不过我习惯性全都加上)
  命令执行后就会输出以下内容:
Unity之ml-agents(一):环境配置及初步使用

4.Unity端点击运行

  Unity运行之后发现已经开始在训练了(有移动效果),并且cmd端会有如下输出:

[INFO] Hyperparameters for behavior name 3DBall:
        trainer_type:   ppo
        hyperparameters:
          batch_size:   64
          buffer_size:  12000
          learning_rate:        0.0003
          beta: 0.001
          epsilon:      0.2
          lambd:        0.99
          num_epoch:    3
          learning_rate_schedule:       linear
          beta_schedule:        linear
          epsilon_schedule:     linear
        network_settings:
          normalize:    True
          hidden_units: 128
          num_layers:   2
          vis_encode_type:      simple
          memory:       None
          goal_conditioning_type:       hyper
          deterministic:        False
        reward_signals:
          extrinsic:
            gamma:      0.99
            strength:   1.0
            network_settings:
              normalize:        False
              hidden_units:     128
              num_layers:       2
              vis_encode_type:  simple
              memory:   None
              goal_conditioning_type:   hyper
              deterministic:    False
        init_path:      None
        keep_checkpoints:       5
        checkpoint_interval:    500000
        max_steps:      500000
        time_horizon:   1000
        summary_freq:   12000
        threaded:       False
        self_play:      None
        behavioral_cloning:     None

Unity之ml-agents(一):环境配置及初步使用
Unity之ml-agents(一):环境配置及初步使用
  这里是训练了50w次,训练结束后会在result文件夹生成一个3DBall.onnx文件(后面使用到的训练文件)
位置如下图:
Unity之ml-agents(一):环境配置及初步使用

5.把.onnx或者.nn放到Agent的参数Model处

Unity之ml-agents(一):环境配置及初步使用
  这个移动的时候需要注意,直接从文件夹拖到项目中,放到目标文件夹下没用

  再次运行Unity就发现按照模型训练的结果,在运动了。

  继续给一些过程记录说明:

记录一:Unity报的Warning:Couldn’t connect to trainer on port 5004 using API version 1.5.0. Will perform inference instead.

原因及解决办法:这个是因为cmd端会使用这个端口,开Unity的时候端口还没有打开,不用管的。cmd起来了,再次运行Unity就没了

记录二:关于onnx和nn

  .onnx是预训练模型,.nn是训练结果模型。我们使用onnx就可以了

最后留一下过程中看到的有用的资料:
https://blog.csdn.net/tianjuewudi/article/details/121116043
https://www.bilibili.com/video/BV1hE411W7Pi
https://www.bilibili.com/video/BV1qB4y1T7TG
http://www.yaotu.net/biancheng/145132.html文章来源地址https://www.toymoban.com/news/detail-424857.html

到了这里,关于Unity之ml-agents(一):环境配置及初步使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity-ML-Agents安装

    目录 1.下载ML-Agents  1.1 前往官网  1.2 选择版本  1.3 下载文件 2.下载Anaconda 3.虚拟环境 3.1 构建虚拟环境 3.2 创建项目,导入package.json 3.2.1 创建项目,导入package.json 3.2.2 导入成功 3.2.3 将模板项目拖入unity项目中 3.3 开始训练  3.3.1 开始训练 3.3.2 选择场景 3.3.3 利用训练结果  

    2024年02月10日
    浏览(30)
  • Unity-ML-Agents--Custom-SideChannels.md-代码解析

    官方文档: https://github.com/Unity-Technologies/ml-agents/blob/release_19/docs/ML-Agents-Overview.md#additional-features https://github.com/Unity-Technologies/ml-agents/blob/release_19/docs/Custom-SideChannels.md 目录 1.Unity C# 示例 1.1 StringLogSideChannel类 1.1.1 ChannelId = new Guid(\\\"621f0a70-4f87-11ea-a6bf-784f4387d1f7\\\"); 1.1.2 protected o

    2024年02月05日
    浏览(34)
  • Unity-ML-Agents注意事项及报错、警告等解决方式

    在 ml-agents 0.16.0 版本中,Unity 中的 ML-Agents 插件中包含了名为 Brain 的组件,用于控制智能体的决策过程。然而,在 ml-agents 0.28.0 版本中,该组件已经被重构为 IAgent 接口和 Agent 类。因此,如果您正在使用 ml-agents 0.28.0 或更高版本,您不会在 Unity 的 \\\"Add Component\\\" 菜单中找到 Br

    2024年02月09日
    浏览(32)
  • 自然语言处理库NLTK的初步环境配置和使用例子

    NLTK的基本介绍见此, 了解自然语言处理_bcbobo21cn的博客-CSDN博客 先安装python;然后用pip命令安装nltk;   然后进入python,下载nltk的数据包;输入下图语句,弹出一个框,   一般选择 all,然后下载;下载完一部分后,失败,   看下有没有一些功能可用;输入下图2个语句,根

    2024年02月11日
    浏览(50)
  • 【边缘端环境配置】英伟达Jetson系列安装pytorch/tensorflow/ml/tensorrt环境(docker一键拉取)

    Jetson系列板卡是算法边缘端部署无法避开的一道坎,作为英伟达旗下产品,可以使用tensorrt加速,因此用户较多,生态较好;但是由于是ARM架构,因此无法使用x86部署方式,用过的都有一堆血泪史可以诉说,以下是英伟达官方介绍: NVIDIA® Jetson™ 是适用于自主机器和其他嵌入

    2023年04月22日
    浏览(47)
  • 使用unity hub安装unity并配置安卓环境

            总结,最方便快速的方法就是使用unity hub来安装我们需要的unity版本,会自动帮我们配置好安卓环境。         首先去官网下载hub并安装,然后通过hub来安装。点击右上角的\\\"安装编辑器\\\",在打开的页面点击\\\"存档\\\",再点击\\\"下载存档\\\",在打开的官网下载界面找到我们

    2024年02月12日
    浏览(44)
  • PHP小白搭建Kafka环境以及初步使用rdkafka

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:windows环境安装失败,Linux环境安装成功(以下并没有windows安装示例) 下载地址:链接: https://www.oracle.com/java/technologies/downloads/#jdk20-linux 将文件放在Linux目录中后进行解压: 下载地址:https://kafk

    2024年02月11日
    浏览(30)
  • 【Unity工具,简单学习】PUN 2,多人在线游戏开发,初步使用

    链接 PUN 可以让你 简单地开发多人游戏 ,在 全球范围 推出 让开发者 不用管托管、链接和延迟 支持移动端、台式、一些主机 全球范围内低延迟 始终连接,无需穿透 免费20 CCU(Concurrent User, 并发用户) 支持 Unity 2019 - 2022 安装包,输入邮箱来注册,或输入Appid来登录。 输入邮箱

    2024年02月07日
    浏览(47)
  • 基于K8s环境·使用ArgoCD部署Jenkins和静态Agent节点

    今天是「DevOps云学堂」与你共同进步的第  47 天 第⑦期DevOps实战训练营· 7月15日已开营 实践环境升级基于K8s和ArgoCD 本文节选自第⑦期DevOps训练营 , 对于训练营的同学实践此文档依赖于基础环境配置文档, 运行K8s集群并配置NFS存储。实际上只要有个K8s集群并安装好Ingress、

    2024年02月15日
    浏览(34)
  • Python学习笔记(1)--环境搭建,开发工具PyCharm 安装及初步使用

    传送门==B站黑马python入门教程 1.Python环境安装搭建 安装python基础包 首先,打开python 官网 https://www.python.org/ 下载windows版 下载后进行安装 默认下一步 可自定义安装位置,install安装即可 验证安装文件 win+R 输入cmd ,打开命令框,输入python,若看到安装版本,即安装成功 2.hello world 命令

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包