ml-agents与tensorflow结合的先关操作文档
ml-agents操作文档
安装和设置
要安装和使用ML-Agents,您需要安装Unity,克隆这个存储库并安装Python以及其他依赖项。除了实验性Docker设置之外,下面的每个小节都会概述每个步骤。
安装Unity2017.1或更高版本
下载Unity的链接https://store.unity.com/download并安装Unity。
克隆ml-agents储存库
安装完成后,您需要克隆ML-Agents GitHub存储库。
git clone git@github.com:Unity-Technologies/ml-agents.git
在unity-environment此存储库目录包含统一资产添加到您的项目。该python目录包含培训代码。这两个目录都位于存储库的根目录。
安装Python(具有依赖关系)
为了使用ML-Agents,需要Python 3以及需求文件中列出的依赖项。一些主要的依赖包括:
1)TensorFlow
2)Jupyter
Windows用户
如果您是一位刚接触Python和TensorFlow的Windows用户,请按照以下指南设置您的Python环境。
第一步:通过Anaconda安装python
从这个链接https://www.anaconda.com/download/#windows进行Anaconda下载,您可以为不同的Python分布管理不同的环境。由于我们不再支持Python 2,因此需要Python 3。在本指南中,我们使用Python 3.6版和Anaconda 5.1版(64位或32位直接链接)。
我们建议使用默认的高级安装选项。但是,请选择适合您的具体情况的选项。
安装后,您必须打开Anaconda Navigator才能完成设置。在Windows搜索栏中,输入anaconda导航器。打开后您可以关闭AnacondaNavigator。
第2步:安装并激活新的Conda环境
您将创建一个新的Conda环境用于ML-Agents。这意味着您安装的所有软件包都已本地化为只有此环境。它不会影响任何其他Python或其他环境的安装。无论何时你想运行ML-Agents,你都需要激活这个Conda环境。要创建新的Conda环境,请打开一个新的Anaconda提示(搜索栏中的Anaconda提示)并输入以下命令:
conda create -n ml-agents python=3.6
您可能会被要求安装新的软件包。键入y并按回车键(确保您已连接到互联网)。您必须安装这些必需的软件包。新的Conda环境被称为ml-agents,并使用Python版本3.6。
要使用这个环境,你必须激活它。(要使用此环境将来,您可以运行相同的命令)。在同一个Anaconda提示符下,输入以下命令:
conda activate ml-agents或者不用命令行直接在anaconda打开ml-agents
可以看到ml-agents出现在最左边
第3步:安装必需的Python软件包
ML-Agents取决于很多Python包。使用pip安装这些Python的依赖关系。
如果您还没有,请将ML-Agents Github存储库克隆到本地计算机。您可以使用Git(在此https://git-scm.com/download/win下载)并在Anaconda Prompt中运行以下命令(如果您打开新提示,请确保通过键入来激活ml-agents Conda环境activate ml-agents):
git clone git@github.com:Unity-Technologies/ml-agents.git
如果你不想使用Git,你可以直接在https://github.com/Unity-Technologies/ml-agents/archive/master.zip直接下载所有的文件。
在我们的例子中,这些文件位于C:\Downloads。在从Anaconda提示符中克隆或下载文件后,切换到ML-agents目录内的python目录:
cdC:\Downloads\ml-agents\python确保你已连接到互联网,然后输入Anaconda提示符:
pip install .
第4步安装tensorflow-gpu:
这是高级用户想要使用GPU进行训练的指南。此外,您需要检查您的GPU是否兼容CUDA。请在这https://developer.nvidia.com/cuda-gpus查看Nvidia的页面。首先查看我的显卡
1)首先在桌面鼠标右键查看显卡类型
本来自己的显卡是GTX750版本太低无法装载高版本的cuda(比如cuda8.0)
2)安装Nvidia CUDA工具包
从Nvidia的档案下载https://developer.nvidia.com/cuda-toolkit-archive
(温馨提示最好不要装最新版本的cuda可能最新版还不支持TensorFlow,本文作者一开始安装了最新版本的cuda9.1之后出现下面的错误)
并安装CUDA工具包。该工具包包括GPU加速库,调试和优化工具,C/C ++编译器和运行时库在安装之前,请确保关闭任何正在运行的Unity或Visual Studio实例。
请注意您安装CUDA工具包的目录。在本指南中,我们安装在目录中C:\Program Files\NVIDIA GPUComputing Toolkit\CUDA\v9.0
3) 安装Nvidia cuDNN库
从 https://developer.nvidia.com/cudnn下载并安装cuDNN库。cuDNN是一个GPU加速的深层神经网络原语库。在您下载之前,您需要免费注册Nvidia开发者计划。
注册后,返回到cuDNN 下载页面。您可能会或可能不会被要求填写一个简短的调查。当您到达cuDNN发布的列表时,请确保您正在为在步骤1中安装的CUDA工具包下载正确的版本。
下载完cuDNN文件后,您需要将文件解压缩到CUDA工具包目录中。在cuDNN zip文件中,有三个文件夹叫bin,include和lib
将这三个文件夹复制到CUDA工具包对应的目录中。CUDA工具包目录位于C:\Program Files\NVIDIA GPUComputing Toolkit\CUDA\v9.0
4)设置环境变量
您将需要添加一个环境变量和两个路径变量。要设置环境变量,请输入environment variables搜索栏(可以通过点击Windows键或左下角的Windows按钮来达到此目的)。您应该看到一个名为“ 编辑系统环境变量”的选项。
从这里,点击环境变量按钮。点击New添加一个新的系统变量CUDA_HOME对于变量值,放置CUDA工具包的目录位置。在本指南中,目录位置是C:\Program Files\NVIDIA GPUComputing Toolkit\CUDA\v9.0。按OK一次。(确保你在系统变量而不是用户变量下执行此操作。
分别在环境变量窗口和系统变量到一个变量PATH
,然后编辑。分别将下面两条路径各自添加到目录列表中(
在添加路径是需要注意前面必须用
;
分号隔开
)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64
5)安装tensorflow GPU
接下来,tensorflow-gpu使用安装pip。在Conda环境ml-agents激活的Anaconda Prompt中,输入以下命令(确保已连接到互联网):
pip install tensorflow-gpu
(注:因为我已经安装完tensorflow-gpu显示成这样)
测试tensorflow是否成功?
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
结果显示:
查看tensorflow的类型
查看tensorflow的路径
(以上部分算上Ml-Agents的环境已经配置完毕了以下开始在Unity环境进行3D平衡球测试)
开始使用3D平衡球环境
本教程介绍了在Unity中打开ML-Agents示例环境,构建Unity可执行文件,在其中训练代理以及最终将训练好的模型嵌入到Unity环境中的端到端流程。
第一步Unity的设置
1)用unity2017.1 或以上的版本打开从https://github.com/Unity-Technologies/ml-agents上下载的ML-Agents工程。
并通过Unity找到下载后的文件Ml-agents-master下的Unity-environment进行导入
找到Assets/ML-Agents/Examples/3DBall/,打开scene文件。
2).选择Edit--->Project Settings ---> Player, 将Resolution and Presentation ---> Run in Background 勾上,并将Display Resolution Dialog 设置成Disabled.
3.在场景中选中游戏物体 Ball3DBrain (Ball3DAcademy的子物体),在Inspector界面里确保它的“Brain Type”属性设置成External.
4.按Ctrl + Shift + B 或者选中 File ---> Build Settings,选择你要导出的平台(一般是PC平台),然后选中Development Build 选项(非必须)。
(请记得勾选场景,不勾选场景的话后面的代码找不到场景运行出错)
5.点击Build按钮。然后把导出的exe文件目录设置到python目录下。(最好build到下载好的ml-agents\python的目录下以免后面有些文件没有拷贝过去(比如自己忘了把3Dball_Data文件拷贝过去就出错了))
我的文件是如下所示:
第二步:在Python环境下进行机器学习,训练AI:(这步超级关键搞了半天各种错误,最后还是成功了)
先说一种旧版本(release-0.2)的做法(就是自己刚开始没有运行成功最后问了博主原来这个方法运行必须要下载
这个版本)
1.进入Anaconda命令行,并输入: jupyter notebook ,它会在你的浏览器里打开一个新的网页。
2.更改jupyter notebook 的默认根目录,把启动目录设置为我们刚才用到的那个python 文件夹下.具体更改的方法:
1)打开 cmd 输入命令 jupyter notebook --generate-config
可以看到生成文件的路径
如上图可以看到,这个目录
这个就是生成的配置文件,打开后找到这个地方删除前面的’#‘然后填写自己的路径,比如我的ml-agents的路径如下
启动 jupyter notebook
3.重新进入jupyter notebook, 此时我们在浏览器将会看到python文件夹下的目录内容,打开PPO.ipynb,请确认你打开的文件后缀是.ipynb,而不是.py . 然后将文件内的env_name 的值设置成我们导出的.exe文件的名字。比如你导出的.exe文件名字叫做 ball.exe ,那么就把env_name 的值设置成 ball 。
4.点击最上面的工具栏Cell菜单,选择Run All 选项,然后python就运行起来了。机器就开始运行我们导出的.exe程序,并开始训练。后面会有一系列的输出。
运行完之后并出现 Save Model 时,表示保存了一些训练数据。此时我们可以选择关闭打开的.exe程序,此时训练也会暂停;也可以继续等待,让训练继续。
并自动在你运行的目录下产生两个文件:
(由于这个原因浪费我整整三个多小时没有解决此方法就此失败,有时候还出现如下的错误别慌因为你开启了多个运行窗口端口被占用了)
第二种方法:观看ml-agents的官方文档https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Getting-Started-with-Balance-Ball.md发现了一个更好的方法
接下来讲讲我尝试成功的方法:
1.进入ml-agents目录并输入(这步很关键)
python learn.py ball.exe --train
其中ball.exe是我自己保存的名字(注:每个人保存的名字并不会相同,因人而异)
该--train
标志告诉ML-Agents以训练模式运行。
模型正在训练中还会弹出一个窗口如下:(此视频一直在抖没事证明它正在训练)
运行到50000次左右就自动停止训练了并保存模型如下:
并自动在你运行的目录下产生两个文件:
第三步:将受过训练的大脑嵌入团结环境(实验)
一旦训练过程完成,并且训练过程保存模型(由SavedModel消息表示),您可以将其添加到Unity项目并将其用于具有内部大脑类型的代理。
设置TensorFlowSharp支持
由于TensorFlowSharp支持仍处于试验阶段,因此默认情况下它是禁用的。为了启用它,你必须遵循这些步骤。请注意,Internal大脑模式只有在完成这些步骤后才可用。
1.确保TensorFlowSharp插件位于您的Assets文件夹中。包含TF#的插件文件夹可以在https://s3.amazonaws.com/unity-ml-agents/0.3/TFSharpPlugin.unitypackage下载 。双击并下载后导入它。您可以通过检查项目选项卡中的Assets- > MLAgents-> Plugins- > 下的TensorFlow文件来查看是否已成功安装Computer。
2.转到Edit- > Project Settings- >Player
3.在场景中选中游戏物体 Ball3DBrain,把Brain Type 属性设置成Internal.
4. 对于每个平台你的目标
1)进入Other Settings。
2)选择Scripting Runtime Version到 Experimental (.NET 4.6 Equivalent)
3)在Scripting Defined Symbols,添加标志ENABLE_TENSORFLOW。输入后,按Enter键。(这步很重要我就是忘了添加所以导致错误)
5.转到File- >Save Project
6.重新启动Unity编辑器。
第四步:将训练好的模型嵌入到Unity中
1.移动ball_ppo.bytes从python/models/ppo/成 unity-environment/Assets/ML-Agents/Examples/3DBall/TFModels/。
2.把我们保存的二进制文件ball_ppo.bytes拖进Graph Model栏中。
3.点击 Play 按钮,观看训练结果。大功告成。
ml-agents与tensorflow结合的先关操作文档相关推荐
- 深度学习和TensorFlow学习资源(书籍、文档和视频)
自己学习机器学习有一段时间了,有了一定基础,学习下深度学习和TensorFlow 汇总下找到的比较好看学习资源,也方便看 深度学习 理论篇–视频 吴恩达教授的视频 网易云课堂吴恩达deeplearni ...
- python程序设计从基础到开发夏敏捷_《Python程序设计——从基础到开发》 夏敏捷 杨关 张慧档 张慎武 宋宝卫 【正版电子纸书阅读_PDF下载】- 书问...
目录 基础篇 第1章Python语言介绍 1.1Python语言简介 1.2安装与配置Python环境 1.2.1安装Python 1.2.2运行Python 1.3Python开发环境IDLE简介 ...
- 开放式神经网络交换-ONNX(上)
开放式神经网络交换-ONNX(上) 目的 本文档包含ONNX语义的规范性规范. "onnx"文件夹下的.proto和.proto3文件构成了用协议缓冲区定义语言编写的语法规范..p ...
- 1_数据分析应掌握的Python基础
理解代码,远比记忆代码更重要 打开notebook或IDE前,可先参考Python基础知识图,以帮助理解代码. 如需要,可点击链接百度网盘查看Python基础知识图PDF:MindMap_Python ...
- python数据分析002—python基础语法
本文为在猴子老师社群中学习python数据分析的第二关任务,主要是学习python中的一些基础语法,并通过一些简单代码展示出来. 数据类型:字符串(String)¶#案例1:定义字符串 nameStr ...
- Mozilla的架构(收集)
Mozilla的架构 原文发表于<程序员>2007第5期,BLOG首发. Firefox的横空出世在很多人的意料之外,其体积小巧功能强大,在安全性.扩展性和可移植性上都有惊人的表现.这样优 ...
- 07_02Redis
Redis详解 1.Redis概述 2.下载与安装 3.使用Redis 1. 概述 1.1 互联网架构的演变历程 第1阶段 数据访问量不大,简单的架构即可搞定! 第2阶段 数据访问量大,使用缓存技术来 ...
- 分布式技术(下)-RedisFastDFSRabbitMQ
第七阶段模块二 Redis 1. 概述 1.1 互联网架构的演变历程 第1阶段:数据访问量不大,简单的架构即可搞定! [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4n ...
- 开发常用镜像资源替换为国内开源镜像(yum,compose,maven,docker,android sdk,npm,国内开源镜像汇总)...
一.国内开源镜像站点汇总 阿里云开源镜像站 (http://mirrors.aliyun.com/) 网易开源镜像站 (http://mirrors.163.com/) 中国科学技术大学开源镜像站 ( ...
- Java_00000
contents Java语言概述 Java语言运行机制及运行过程 Java两种核心机制 环境搭建 下载JDK 安装JDK 配置环境变量 JDK.JRE 使用记事本开发Java程序 注释(Commen ...
最新文章
- 两张照片重叠处半透明_手机可以“抛起来”拍照,给你的照片换个角度
- Java数据结构和算法(四)——栈
- docker安装配置分布式elasticsearch、kibana、head、cerebro
- Arrays数组工具类
- 文献学习(part9)--基于模型分解的小样本学习
- web前端教程,详解引入CSS的4种方式
- Android半透明提示效果的实现
- 云服务器htdocs文件夹在,htdocs文件夹
- 2023-04-18_面试题复盘笔记(121)
- 认真的雪歌词的c语言编码,薛之谦《认真的雪》歌词
- spring boot参数校验 告别校验胶水代码
- ionic中android的返回键
- onedrive登陆以后是白板,OneDrive不能正常显示与设置
- 获取Mac地址getMacAddress
- 剑魂之刃登录显示服务器异常,剑魂之刃新手问题汇总
- Spring自动装配解析
- 绿色环保简约风格PPT模板
- S50卡(RFID)卡
- 一周python面试题汇总:星期三
- 视频教程-FFmpeg音视频编码实战屏幕录像机视频课程-基于QT5和FFMpegSDK-C/C++
热门文章
- 测试软件的稳定性,客户端稳定性测试
- java名片_JavaWeb练习-网上名片管理系统
- 日本語 IME输入法(Microsoft 输入法)切换问题
- 服务器怒稳定进不了某个网址,登录服务器的一瞬间,让我感觉自己再也不是“菊外人”...
- 创建通用 macOS 二进制文件
- iOS非常全的三方库、插件、大牛博客
- Redis锁解决超卖问题
- 2018杭州云栖大会免费送票啦!
- 复现论文常用函数(一)tf.one_hot,tf.train.batch,tf.train.shuffle_batch,数据读取机制,获取文件路径,Bunch等
- 微信公众号系列之创建新浪云平台应用