MLAgents (0) Unity 安装及运行

news2025/2/25 13:37:11

1、下载ML-Agents

下载地址

GitHub - Unity-Technologies/ml-agents: The Unity Machine Learning Agents Toolkit (ML-Agents) is an open-source project that enables games and simulations to serve as environments for training intelligent agents using deep reinforcement learning and imitation learning.

 在develop-Tags中,选择release_18

下载zip文件,解压

2、anaconda配置pytorch环境

conda create -n 名称 python=3.9.9

注意:Python 3.9.10 以上目前与mlagents-learn 套件不相容,会出现错误TypeError: Invalid first argument to `register()`. typing.Dict[mlagents.trainers.settings.RewardSignalType, mlagents.trainers.settings.RewardSignalSettings] is not a class.

 conda activate 名称

激活环境

在环境中安装pytorch

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-forge

 安装完成后,执行python-->import torch-->torch.cuda.is_available()

如果为true,则安装成功

3、安装ml-agents-release_18所需要的库

在anaconda激活的环境中

(1)cd ml-agents-release_18的文件目录

定位到ml-agents-envs,在文件夹中创建文件setup.cfg清华源加快下载速度

[easy_install]

index_url = https://pypi.tuna.tsinghua.edu.cn/simple

执行命令 python setup.py install

安装库

安装出现 Finished processing dependencies for mlagents-envs==0.27.0

则为安装成功

(2)cd ..  --> cd ml-agents

也增加setup.cfg文件

执行命令 python setup.py install

出现错误:error: urllib3 2.0.4 is installed but urllib3<2.0 is required by {'google-auth'}

执行:pip uninstall urllib3

pip install -i https://pypi.douban.com/simple urllib3=1.26.9

重新安装urllib3

再次执行python setup.py install

当出现 Finished processing dependencies for mlagents==0.27.0

即为安装完成

4、在unity中 Window--> Package Manager

找到 com.unity.ml-agents,导入package.json

等待安装完成

之后可以搭建环境,并设置参数等

5、开启ml-agents,运行项目

在unity项目中,创建training-->xxx_config.yamlzheshi

behaviors:
  RB:
    trainer_type: ppo
    hyperparameters:
      batch_size: 10
      buffer_size: 100
      learning_rate: 0.0003
      beta: 0.0005
      epsilon: 0.2
      lambd: 0.99
      num_epoch: 3
      learning_rate_schedule: linear
    network_settings:
      normalize: false
      hidden_units: 128
      num_layers: 2
    reward_signals:
      extrinsic:
        gamma: 0.99
        strength: 1.0
    max_steps: 500000
    time_horizon: 64
    summary_freq: 10000

设置完成后,在anaconda中,定位到unity项目的training

cd xx/xx/unity_project/training

执行命令: mlagents-learn.exe xxx.yaml --run-id=RB

报错:ModuleNotFoundError: No module named 'six'

执行 pip install -i https://pypi.douban.com/simple six

再次执行命令

当出现以下界面

则运行成功,端口也开启成功 

此时点击unity的运行按钮,执行运行操作

结果生成在training文件夹中

当要界面化看结果时,需要执行命令

tensorbord.exe --logdir results --port 6006

预训练后的模型保存在Assets中,要使用预训练后的模型

可将模型拖到Behavior Parameters的Model上

mlagents-learn.exe xxx.yaml --run-id=RB --resume

继续上次训练的命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++杂货铺】国庆中秋特辑——多态由浅入深详细总结

文章目录 一、多态的概念二、多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.4 虚函数重写的两个例外2.4.1 协变&#xff08;基类与派生类虚函数返回值类型不同&#xff09;2.4.2 析构函数的重写&#xff08;基类与派生类析构函数的名字不同&#xff09; 2.5 …

【Java核心】JDK、JRE、 JVM的联系与区别

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ JDK、JRE、 JVM的联系与区别 1. 简述2. 是什么…

Linux查看系统信息

# 查看操作系统的详细信息 uname -a# 查看已安装的Linux发行版信息 cat /etc/os-release# 查看Linux Standard Base (LSB)的信息 lsb_release -a# 查看主机的信息 hostnamectl# 查看文件系统的磁盘空间使用情况 df -h# 查看系统内存的使用情况 free -h# 查看网络接口的信息 ifc…

【LeetCode75】第六十题 使用最小花费爬楼梯

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们一个数组&#xff0c;第i个数表示在第i个台阶起步所需的花费。我们可以从下标为0或是1的台阶出发&#xff0c;问我们最终到达顶…

【校招VIP】测试脚本语言之权限命令

考点介绍&#xff1a; 在计算机科学中&#xff0c;Shell俗称壳&#xff08;用来区别于核&#xff09;&#xff0c;是指“为使用者提供操作界面”的软件&#xff08;command interpreter&#xff0c;命令解析器&#xff09;。它类似于DOS下的http://COMMAND.COM和后来的cmd.exe…

nginx配置gzip压缩,优化传输效率,加快页面访问速度

文章目录 引言一、什么是nginx的gzip二、nginx的常用配置项三、使用示例四、浏览器查看gzip是否生效1. 判断浏览器是否支持gzip2. 判断gzip是否生效 总结 引言 在现代互联网的高速发展进程中&#xff0c;网站的访问速度愈发成为了用户选择和留存的关键。其中&#xff0c;通过g…

【方案】浅析AI视频分析与视频监控技术的工厂车间智能化监管方案

一、方案背景 工厂生产车间一般是从原材料到成品的流水作业&#xff0c;有大量器械和物料。为保障车间财产安全并提高生产效率&#xff0c;需要进行全面的监管。在生产制造流水线的关键工序中&#xff0c;不仅有作业过程监管需求&#xff0c;同时&#xff0c;也存在生产发生异…

SpringBoot-JWT生成

一、理论 1.配置pom.xml <!-- JWT令牌--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency> 2.加密方式 说明:官网JSON Web Tokens - jwt…

vim的使用介绍以及命令大全(系统性学习day3)

懒羊羊感谢大家的关注和三连支持~ 目录 前言 一、vim的使用介绍 二、命令大全 1.命令模式 &#xff08;1&#xff09;复制&#xff08;配合粘贴命令p使用&#xff09; &#xff08;2&#xff09;剪切 &#xff08;3&#xff09;粘贴 &#xff08;4&#xff09;删除 …

IDM激活

激活脚本原地址 github搜索&#xff1a;IDM-Activation-Script 或者直接点我进入 如何激活&#xff1f; 下载IDM 官网链接&#xff1a;Internet Download Manager: The fastest download accelerator 然后安装 安装成功后进入powershell win x 执行命令 iwr -useb https:/…

企业蓄电池怎么实时监测?这个方法最简单使用!

在这个数字时代&#xff0c;企业对电力的依赖性愈发显著&#xff0c;这使得电池系统成为维持业务连续性的不可或缺的一环。 蓄电池监控不仅有助于实时跟踪电池系统的性能和状态&#xff0c;还有助于预测问题&#xff0c;提前采取措施以防止电力中断。它还可以帮助企业降低能源成…

2023年9月21日,历史上的今天大事件早读

​公元前19年9月21日古罗马诗人维吉尔逝世 1069年9月21日宋神宗采用王安石新法&#xff0c;开始实行青苗法 1643年9月21日皇太极逝世 1898年9月21日慈禧太后发动戊戌政变 1909年9月21日我国飞机设计师冯如第一次试飞成功 1920年9月21日民主革命家朱执信遇难 1926年9月21日…

c++ 函数的参数是否可以为auto

&#xff08;1&#xff09;在vs2019开到 cpp20 的语法规范&#xff0c;是可以的 &#xff08;2&#xff09;但网上和文心一言和书上说不可以 (2) 再附上一种auto 的很炫酷的写法&#xff1a;

面试Java后端

sql 五表联合查询 面试八股 JDK&#xff0c;JRE,JVM之间的区别 JDK&#xff0c;Java标准开发包&#xff0c;它提供了编译、运行Java程序所需的各种工具和资源&#xff0c;包括Java编译器、Java运行时环境&#xff0c;以及常用的Java类库等。 JRE(Java Runtime Environment)&…

label_studio中uwsgi内存占用高的问题排查

问题描述 使用docker起的label_studio服务&#xff0c;起来就占了8GB内存&#xff0c;无论是否有标注任务。 而且这个么大内存label_studio起来就有&#xff0c;不是随着时间起来的。本来发现问题的是label_stuido17.3, 我下载了18.02版本的docker&#xff0c;问题也是一样的,…

视频监控系统/安防监控/视频AI智能分析网关:持刀检测算法场景汇总

TSINGSEE青犀AI智能分析网关——持刀检测算法&#xff0c;是一种利用计算机AI分析算法技术来检测和辨别视频中是否存在刀具的算法&#xff0c;用来保障群众安全&#xff0c;维护公共治安&#xff0c;还可以与“人员跌倒”、“人员聚集”、“人员跌倒”等算法结合&#xff0c;制…

inpaint-anything:分割任何东西遇到图像修复

用户可以通过单击图像中的任何对象来选择它。借助强大的视觉模型&#xff0c;例如SAM&#xff0c;LaMa和稳定扩散&#xff08;SD&#xff09;&#xff0c;Inpaint Anything能够顺利地删除对象&#xff08;即删除任何内容&#xff09;。 此外&#xff0c;在用户输入文本的提示下…

JUnit测试进阶(Mock测试)

Mock测试 一、Mock测试1.Mock测试产生背景2.什么是Mock测试3.具体案例 一、Mock测试 1.Mock测试产生背景 一个应用程序通常由多个类文件组成&#xff0c;各个类之间彼此存在着继承&#xff0c;实现&#xff0c;关联&#xff0c;依赖等关系&#xff0c;共同为用户服务。应用中单…

vue部分/所有内容全屏切换展示

需求&#xff1a;就是把一个页面的某一部分内容点击全屏操作按钮后全屏展示&#xff0c;并非所有内容全屏&#xff0c;所有内容的话那肯定就所有全屏展示啊&#xff0c;可以做切换 1.部分全屏代码 element.requestFullscreen();这个就是全屏的代码了&#xff0c;注意前面的ele…