Unity 用ml-agents机器学习造个游戏AI吧(1)(Windows环境配置)
前言:以前觉得机器学习要应用于游戏AI,还远得很。
最近看到一些资料后,突发兴致试着玩了玩Unity机器学习,才发觉机器学习占领游戏AI的可能性和趋势。
- 机器学习训练出的游戏AI,模型可能数据庞大,但是这完全可以部署于服务器。
- 目前绝大部分游戏AI都是人工制作,工作量庞大。机器学习可以解放生产力,放台主机训练让其自己培养出更实的AI。
ml-agents介绍
Unity Machine Learning Agents (ML-Agents) 是一款开源的 Unity 插件, 使得我们得以在游戏环境和模拟环境中训练智能 agents。
它可以使用 reinforcement learning(强化学习)、imitation learning(模仿学习)、neuroevolution(神经进化)或其他机器学习方法,
通过简单易用的 Python API进行控制,对 Agent 进行训练。
环境配置
环境示例:Windows 10 + Unity2018.4.1f + Anaconda3 + python 3.8 + CUDA toolkit 10.1 + cuDNN 7.6.5 + tensorflow 2.1.0
要注意各软件版本应当互相匹配,特别是CUDA、cuDNN和tensoflow有版本对应。
0.下载/安装Unity(2018.4或更高版本)
1.下载/安装python(3.7或更高版本)
2.下载/安装/配置Anaconda3
2.1 下载并安装Anaconda3
https://www.anaconda.com/distribution/#windows
2.2 更改环境变量
编辑系统变量的"Path"变量,添加下面这些新路径:
%UserProfile%\Anaconda3\Scripts
%UserProfile%\Anaconda3\Scripts\conda.exe
%UserProfile%\Anaconda3
%UserProfile%\Anaconda3\python.exe
3.配置GPU训练环境
3.1 下载并安装CUDA 10.1通用并行计算架构
https://developer.nvidia.com/cuda-10.1-download-archive-update2
3.2 下载 Nvidia cuDNN 7.6.5深度神经网络的GPU加速库(需要注册Nvdia账号)
https://developer.nvidia.com/cudnn
3.3 添加cuDNN库到CUDA
将下载好的cuDNN库cuda目录的三个文件夹(bin,include,lib),复制覆盖到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1文件夹里。
3.4 再次更改环境变量
添加系统变量:"CUDA_HOME",变量值为
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
编辑系统变量"Path",添加如下路径:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\libx64
系统变量"Path"所有添加的路径如红框圈起来:
3.5 配置GPU训练环境
首先要打开Anaconda Prompt窗口 (可以通过在windows开始菜单搜索)
打开之后,首先要创建一个新的Conda环境,输入如下命令(根据自己具体python版本):
conda create -n ml-agents python=3.8
中间会有问要不要安装新包,输入y并回车就完事了。
为了使用这个环境,还得先激活它,输入如下命令:
activate ml-agents
输入后会看到左边()里的内容变成ml-agents
然后为了安装tensorflow,输入如下命令(为了契合版本,这里选择的是2.1.0):
pip uninstall tensorflow
pip install tensorflow-gpu==2.1.0
安装成功界面如下:
4.下载并安装 Unity的ml-agents插件
(如果重新打开了一个新的Prompt窗口记得得重新激活ml-agents)
下载方法:
- 可以直接去github克隆 Unity ml-agents 项目下来 https://github.com/Unity-Technologies/ml-agents
- 或者执行如下git命令:
git clone --branch latest_release https://github.com/Unity-Technologies/ml-agents.git
然后在Anaconda Promptc窗口定位到你clone项目的目录ml-agents文件夹的ml-agents-envs文件夹(本文clone项目路径在C:\project),并使用pip install -e .命令。
cd C:\project\ml-agents\ml-agents-envs
pip install -e .
之后,同样地,对项目目录ml-agents文件夹里的ml-agents文件夹使用pip install -e .命令。
cd C:\project\ml-agents\ml-agents
pip install -e .
如果提示找不到setup.py,说明定位路径不对,要检查一下。
结语
看到这里就已经证明该配置好的配置好了,终于可以关掉电脑,去泡杯咖啡好好休息一下了。如果还想继续的话,不妨看看下一篇博文。
更新于2020.3.6:由于现在Unity ml-agents项目比起2018年已经更新了许多,无论是搭环境还是实际操作都有所改变,于是决定翻新本系列博客。
下一篇博文将介绍一个Unity ml-agents机器学习的入门案例:
https://www.cnblogs.com/KillerAery/p/10631310.html
Unity 用ml-agents机器学习造个游戏AI吧(1)(Windows环境配置)的更多相关文章
- Unity 用ml-agents机器学习造个游戏AI吧(2)(入门DEMO)
前言: 上一篇博文已经介绍了Unity ml-agents的环境配置(https://www.cnblogs.com/KillerAery/p/10629963.html)了. 个人建议先敲demo再 ...
- 游戏AI之初步介绍(0)
目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...
- Unity教程之-基于行为树与状态机的游戏AI
AI.我们的第一印象可能是机器人,现在主要说在游戏中的应用.关于AI的相关文章我们在前面也提到过,详细请戳这现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完成的.比 ...
- AI Boot Camp 分享之 ML.NET 机器学习指南
今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题<ML.NET 机器学习指南和Azure Kinect .NET SDK概要>, ...
- 游戏AI之路径规划(3)
目录 使用路径点(Way Point)作为节点 洪水填充算法创建路径点 使用导航网(Navigation Mesh)作为节点 区域分割 预计算 路径查询表 路径成本查询表 寻路的改进 平均帧运算 路径 ...
- 游戏AI之决策结构—有限状态机/行为树(2)
目录 有限状态机 行为树 控制节点 条件节点 行为节点 装饰节点 总结 额外/细节/优化 游戏AI的决策部分是比较重要的部分,游戏程序的老前辈们留下了两种经过考验的用于AI决策的结构: 有限状态机 行 ...
- 做游戏长知识------基于行为树与状态机的游戏AI(一)
孙广东 2014.6.30 AI. 我们的第一印象可能是机器人,如今主要说在游戏中的应用. 现代的计算机游戏中已经大量融入了AI元素,平时我们进行游戏时产生的交互都是由AI来完毕的.比方在RPG游戏中 ...
- 游戏AI的综合设计
原地址:http://www.cnblogs.com/cocoaleaves/archive/2009/03/23/1419346.html 学校的MSTC要出杂志,第一期做游戏专题,我写了一下AI, ...
- 游戏AI系列内容 咋样才能做个有意思的AI呢
游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...
随机推荐
- 提高Maven下载jar包的速度
1.提高Maven下载jar包的速度 打开项目所配置的maven包下conf目录下的settings.xml 找到 <mirrors>标签添加一下内容: 1 <!-- 阿里云仓库 ...
- Java开源生鲜电商平台-订单表的设计(源码可下载)
Java开源生鲜电商平台-订单表的设计(源码可下载) 场景分析说明: 买家(餐馆)用户,通过APP进行选菜,放入购物车,然后下单,最终支付的流程,我们称为下单过程. 买家可以在张三家买茄子,李四家买萝 ...
- 手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程
今天小编给大家分享如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/downlo ...
- 终于等到你: 图形化开源爬虫Hawk 3发布!
超级图形化爬虫Hawk已经发布两年半时间了,2015年升级到第二版,收到上千条用户反馈(tucao),100多个红包,总共666块五毛~一直想攒着这笔钱,去北境之王天通苑的龙德商场买最心爱的阿迪王! ...
- Linux集群服务 LVS
linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性 ...
- .NET面试常考算法
1.求质数 质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反的是合数, 就是除了1和他本身两个因数以外,还友其他因数的数叫做合数. 1 nam ...
- Spring MVC温故而知新-从零开始
Spring MVC简介 Spring MVC是一款基于MVC架构模式的轻量级Web框架,目的是将Web开发模块化,对整体架构进行解耦. Spring MVC有一下优点: 作为Spring框架的一部分 ...
- 详解vue生命周期
vue生命周期 @(vue)[生命周期] 前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周 ...
- js中的对象创建与继承
对象创建 1.工厂模式 优点:解决了创建多个相似对象的问题 缺点:没有解决对象识别问题:每一个对象都有一套自己的函数,浪费资源 function createPerson(name, age, job ...
- 整合 ucenter 注册自动激活
http://my.oschina.net/banbo/blog/311691 应用整合 UCenter,同步注册到 Discuz 的用户,在 Discuz 登录时得手动激活,用户体验很不好,不过解决 ...