1.对于 Ubuntu 16.04,请先运行以下程序,以确保 apt 软件包列表是最新的:

sudo apt-get update

2.接着我们来安装一些软件:

sudo apt-get install golang python3-dev python-dev libcupti-dev libjpeg-turbo8-dev make tmux htop chromium-browser git cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig

3.接下来,我们安装 Anaconda,以便用 Anaconda 来创建与系统环境独立开来的 Anaconda 虚拟环境。我们之后的开发环境都会在这个虚拟环境里安装配置。

目前,Anaconda 的 Python 3.5 版本与 Universe 项目配合最好。如果用 Anaconda 的最新版本,也许不能很好地安装 Universe。

我们可以用 wget 命令(如果没有安装 wget,请使用 sudo apt install wget 来安装。不过 Ubuntu 里一般自带了)来获取 Anaconda 的 Python 3.5 版本:

# anaconda2
wget https://repo.continuum.io/archive/Anaconda2-5.3.1-Linux-x86_64.sh
# anaconda3
wget https://repo.continuum.io/archive/Anaconda3-5.3.0-Linux-x86_64.sh

这个 Anaconda 安装程序有 456 MB,因此下载时间视你的网速而定,需要等一会。你可以去泡杯咖啡,或者热一只烤鸡。

下载完之后,我们来安装 Anaconda,可以用 Bash 这个 Shell 软件来安装,当然如果你是 zsh 或其他 Shell 软件也可以用其他命令来安装 :

bash Anaconda2-5.3.1-Linux-x86_64.sh

提示信息说「Please press ENTER to continue」,也就是「请按下 回车键 以继续」,所以我们按下回车键。

接着安装程序会显示 Anaconda 的 License 就是一些证书和条款之类的信息:

不用看,直接用 空格键 翻页,然后翻到最后,看到显示这样一句话:

「Do you approve the license terms」,也就是「是否同意证书条款」 ,输入「yes」,

然后 回车。回车之后,又出现了下面的提示:

就是告诉你:Anaconda 的程序将会默认安装在你的家目录下的 anaconda2目录中(我的情况是在 /home/mooc/anaconda3,因为我的用户名是 mooc )。输入 回车 表示确认安装在默认目录中,如果你在提示符 >>> 后面输入其他路径,则会安装在你指定的其他路径下。

我们按 回车(ENTER)选择默认的路径来安装即可。

按下 回车 之后,就开始安装 Anaconda 了(包含一些基础软件环境),会花一些时间:

稍等片时,安装完成,显示如下信息:

确认是否将 Anaconda 的子目录 bin 加入系统 PATH 环境变量

输入「yes」的话,安装程序就会做以下操作:

在你的 Shell 的配置文件中,比如如果你的 Shell 是 Bash 的话,就会在 ~/.bashrc 文件中加入下面这句命令:

export PATH="/home/zhiqianghe/anaconda3/bin:$PATH"

就是把 Anaconda 的安装目录下的 bin 目录的路径( /home/$USER/anaconda2/bin )添加到 PATH 环境变量的最前面。

然后会做

source ~/.bashrc

使改动立即生效。

如果输入「no」的话,表示不需要安装程序帮你自动添加,之后可以自己添加:

我比较喜欢自己添加,这样我可以把 Anaconda 的 bin 目录的路径加入到 PATH 环境变量的最后,而不是最前。这样可以避免在命令行中输入 python 时调用的是 Anaconda 中的 python 程序。

如果你的默认 Shell 是 Bash 的话,就用文本编辑器在 ~/.bashrc 中添加下面这句命令:

export PATH="/home/zhiqianghe/anaconda2/bin:$PATH"

就是把 Anaconda 的安装目录下的 bin 目录的路径( /home/$USER/anaconda3/bin )添加到 PATH 环境变量的最后面。

保存,退出编辑器,然后在命令行输入:

source ~/.bashrc

使改动立即生效。

然后用

echo $PATH

来显示 PATH 环境变量的值,可以看到 /home/$USER/anaconda2/bin($USER 就是你的当前用户,比如我是 mooc )这个路径已经添加在 PATH 变量的最后了:

/home/$USER/anaconda2/bin 已经添加在 PATH 变量的最后

如果你的 Shell 是 zsh,那么请改动你的 ~/.zshrc 文件。其他的 Shell 程序也类似。

这样,我们的 Anaconda 就安装配置好了。接下来,我们可以用 Anaconda 来创建一个虚拟环境,可以起名叫 universe(当然,你也可以取其他名字):

conda create --name universe python=3.5 anaconda

回车后,会让我们确认是否要安装列出的软件到这个虚拟环境中:

默认是「y」,表示 yes,就是同意。我们按下 回车 即可。

它就开始下载安装那些软件到虚拟环境中了:

下载安装会花一段时间,依网速而定。这时候你可以喝一喝咖啡,或者吃一下之前热的烤鸡。

经过一定时间的等待,虚拟环境创建完毕:

然后,我们可以随时用以下命令来激活并进入环境中:

source activate universe

activate 是英语「激活」的意思。

用以下命令可以退出虚拟环境:

source deactivate universe

deactivate 是英语「灭活」的意思。

这里的 universe 是我们创建的虚拟环境的名字,你的情况可能不是叫这个名字,那么请根据你的虚拟环境的名字来更改命令。

你可以运行下面的命令来看看你有哪些虚拟环境:

conda env list

conda env list 命令显示所有虚拟环境

可以看到默认 Anaconda 有个环境,名字叫 root,就是 Anaconda 安装的所在。这个环境默认是不激活的。

看到我们创建的 universe 那个环境了吗?目前它没有被激活(相当于「选中并进入」),因此星号(*)表示的当前的虚拟环境还是在 root 上。

如果我们用

source activate universe

命令来进入 universe 这个虚拟环境,那么命令行的提示符会变样:

命令行提示符前面多了 (universe) 字样,表示目前在此虚拟环境中

此时,我们再用

conda env list

来列出所有的虚拟环境:

星号指在 universe 的上面,表示 universe 是被激活的虚拟环境

可以看到目前星号(*)由原先的 root 变到了 universe 上,说明 universe 是目前被激活的虚拟环境。

如果你用

source deactivate universe

来退出 universe 这个虚拟环境,则命令行提示符又变回原来的样子:

可以看到命令行提示符的 (universe) 前缀消失,说明我们已经不在 universe 这个虚拟环境中了。

当然了,说是虚拟环境中,其实所在的真实目录还是本系统的目录,你可以用 cd 命令去切换到各个目录,只不过你的 Python 的开发环境的所有软件和参数什么的都是用的此虚拟环境的了,而不是系统的了。

比如你如果再进入 universe 虚拟环境,并且输入 python 命令,可以看到它显示的 Python 的解释器是 Anaconda 版本的:

虚拟环境中的 Python 解释器和操作系统的不一样

如果用

conda list

可以列出当前虚拟环境信息:

conda list 命令会列出当前虚拟环境的信息 1

conda list 命令会列出当前虚拟环境的信息 2

如果要删除虚拟环境,使用下面的命令:

conda remove --name <env name> --all

其中 <env name> 表示要删除的虚拟环境的名字,比如我们创建的 universe。

要在虚拟环境中安装软件,用下面的命令:

conda install xxx

xxx 表示要安装的软件名称。

好的,那么,既然我们已经用 Anaconda 创建了我们的 虚拟环境,起名叫 universe,那么现在我们继续配置我们的开发环境,在 universe 这个虚拟环境中安装我们所要用的软件。

首先,我们要确保自己位于创建的虚拟环境中:

source activate universe

然后,安装一些额外的软件:

conda install pip six libgcc swig

按 回车,表示同意安装或升级软件。

然后我们再安装 OpenCV :

conda install opencv

按 回车,表示同意安装。

安装 Docker


接着我们来安装 Docker 这个软件:

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

如果是 Ubuntu 14.04,则还需要运行下面的一句命令:

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

接着,我们运行如下命令:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

这里如果出现什么网络上的错误,我们可以将其换成手机热点

再运行下面的命令:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

再做一次 apt 列表的升级:

sudo apt-get update

接着,就可以安装 Docker 了:

sudo apt-get install docker-ce

被询问是否安装时,输入「y」,再按 回车。

安装完 Docker,我们来测试一下安装是否成功。

首先,我们启动 Docker 服务:

sudo service docker start

运行以下命令来让 Docker 给我们输出一些信息:

sudo docker run hello-world

Docker 输出 "Hello from Docker !",表示安装成功

可以看到上面我们都是以 root 的身份运行 Docker 的命令。为了让我们之后每次运行 Docker 不需要用 root 身份而只需要用我们的普通用户身份,我们可以这样做:

sudo groupadd docker

上面的命令是为了创建一个用户组,叫做 docker。

然后,我们再把我们当前所在的用户添加到 docker 这个用户组里:

sudo usermod -aG docker $USER

接着,重启一下电脑:

sudo reboot

重启以后,加入你遇到 Docker 的连接问题,可以尝试依次运行下面的几句命令来解决:

sudo groupadd dockersudo gpasswd -a ${USER} dockersudo service docker restart   sudo reboot

至此,Docker 安装完毕。

安装 Gym

接着,我们安装 OpenAI Gym。

首先,先确认你还在 universe 这个虚拟环境里:

命令行提示符前面有 (universe) 字样,表示目前在此虚拟环境中

然后我们用 git 来获取 Gym 的代码,依次运行下面两句命令:

cd ~git clone https://github.com/openai/gym.git

进入 gym 目录,然后安装 Gym。依次运行下面两句命令:

cd ~/gympip install -e '.[all]'

Gym 的安装大家也可以参考下官方的 Github 页面:https://github.com/openai/gym

目前的最新版的 Gym 的那个 MuJoCo 的模块有些问题,似乎安装不上,MuJoCo 本身也比较特殊,需要一些额外配置。

MuJoCo 是 Multi-Joint dynamics with Contact 的缩写。表示「有接触的多关节动力」是用于机器人、生物力学、动画等需要快速精确仿真领域的物理引擎。
官网:http://mujoco.org

所以不出意外地话,上面的命令

pip install -e '.[all]'

会出错:

比较简单的规避错误的方法就是在 gym 目录下的
setup.py 这个文件里去掉 MuJoCo 的安装选项:

比如说用 vim 或 atom 文本编辑器(随便你用什么文本编辑器)来打开 ~/gym/setup.py 这个文件:

vim  ~/gym/setup.py

注释掉 setup.py 文件中和 MuJoCo 有关的安装选项

如上图所示,我们可以暂时把和 MuJoCo 相关的安装选项都注释掉。把

'mujoco': ['mujoco_py>=1.50', 'imageio'],
'robotics': ['mujoco_py>=1.50', 'imageio'],

这两句注释掉,不让它被安装,将其改为:

#'mujoco': ['mujoco_py>=1.50', 'imageio'],
#'robotics': ['mujoco_py>=1.50', 'imageio'],

保存,退出 setup.py 文件的编辑。

然后,重新运行以下命令:

pip install -e '.[all]'

这次就可以安装成功了,安装的是 Gym 的最新版本。

Gym 官方的 Github 上说如果你之后还是需要安装 MuJoCo 的话,可以尝试运行:

pip install -e '.[mujoco]'

来单独安装。这里我们不理会 MuJoCo,因为暂时用不到。

安装 Universe


安装完了 Gym,我们终于可以进入 Linux 中安装 Gym 和 Universe 之旅的最后一站了:安装 Universe。

和安装 Gym 类似,我们首先用 git 来获取 Universe 的代码(请确认你始终位于你用 Anaconda 创建的虚拟环境中),依次运行下面两句命令:

cd ~git clone https://github.com/openai/universe.git

然后进入 universe 目录,安装 Universe。依次运行下面两句命令:

cd ~/universepip install -e .

安装 Universe 成功。

写程序测试 Gym 和 Universe


我们可以写几个 Python 的程序来测试一下 Gym 和 Universe。

比如我们可以创建一个文件,叫 test_universe1.py。

然后在里面写入以下代码:

import gym
import universe  # register the universe environments
from universe import wrappersenv = gym.make('gym-core.PongDeterministic-v0')
env = wrappers.experimental.SafeActionSpace(env)
env.configure(remotes=1)observation_n = env.reset()while True:action_n =  [env.action_space.sample() for ob in observation_n]observation_n, reward_n, done_n, info = env.step(action_n)env.render()

上面的程序会启动 Pong(乒乓球)这个游戏。

保存这个文件。然后在命令行里运行以下命令:

python test_universe1.py

但是不出意外的话,会有一个错误(略坑...):

我看了 Universe 的 Github 上的 Issue 里的问题汇报,发现是 Gym 的 0.9.6 版本里把 benchmarks 这个包给去了:https://github.com/openai/universe/issues/228 。我晕...

所以我们可以卸载 Gym,重新安装,但是是指定安装 0.9.5 版本。

cd ~/gympip uninstall gympip install gym==0.9.5

希望 OpenAI 之后能解决这个问题...

现在我们再运行:

python test_universe1.py

就可以启动环境了(第一次启动环境时 Docker 需要下载一些文件,需要等一会):

刚才运行了 Pong 这个简单的游戏,我们也可以来演示一个复杂一些的游戏,比如 Universe 的官方 Github 上的例子 DuskDrive 这个赛车游戏 。

我们创建一个新的文件,可以起名叫 test_universe2.py。在里面写入如下代码:

import gym
import universe  # register the universe environmentsenv = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1)  # automatically creates a local docker container
observation_n = env.reset()while True:action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]  # your agent hereobservation_n, reward_n, done_n, info = env.step(action_n)env.render()

运行它:

python test_universe2.py

运行 Universe 里面的游戏 DuskDrive

当然,我们还可以写代码来测试其他各种各样的环境,比如再测试一个 Neon Race(霓虹赛车)的环境,加入一些小小的代码修改,让它略微聪明些:

我们创建一个新的文件,可以起名叫 test_universe3.py。在里面写入如下代码:

# -*- coding: UTF-8 -*-"""
测试 Gym 和 Universe 环境是否正确安装
"""import random
import gym
import universeenv = gym.make('flashgames.NeonRace-v0')  # 创建 NeonRace 的环境
env.configure(remotes=1)  # 自动创建一个本地的 Docker 容器
observation_n = env.reset()  # 重置环境,并且返回初始的 Observation# 左转和右转
goleft = [('KeyEvent', 'ArrowUp', True), ('KeyEvent', 'ArrowLeft', True),('KeyEvent', 'ArrowRight', False)]
goright = [('KeyEvent', 'ArrowUp', True), ('KeyEvent', 'ArrowLeft', False),('KeyEvent', 'ArrowRight', True)]# 向前加速
boostforward = [('KeyEvent', 'ArrowUp', True), ('KeyEvent', 'ArrowRight', False),('KeyEvent', 'ArrowLeft', False), ('KeyEvent', 'n', True)]sum_reward = 0
turn = 0
rewards = []
buffer_size = 100
action = boostforwardwhile True:turn -= 1if turn <= 0:action = boostforwardturn = 0# 根据速度来选择 actionaction_n = [action for ob in observation_n]# 实行 action,返回细分的多个参数observation_n, reward_n, done_n, info = env.step(action_n)sum_reward += reward_n[0]rewards += [reward_n[0]]# 如果卡住了,尝试向某一个方向开一会if len(rewards) >= buffer_size:mean = sum(rewards) / len(rewards)if mean == 0:turn = 25if random.random() < 0.5:action = goleftelse:action = gorightrewards = []env.render()

运行它:

python test_universe3.py

运行 Universe 里面的游戏 NeonRace

当然了,你也可以写一个小程序单独测试一下 Gym。我们创建一个新的文件,可以起名叫 test_gym.py。在里面写入如下代码:

# -*- coding: UTF-8 -*-import gymenv = gym.make('CartPole-v0')for i_episode in range(100):observation = env.reset() for t in range(100):env.render() # 更新动画action = env.action_space.sample()observation, reward, done, info = env.step(action) # 推进一步if done:env.reset() continue

运行它:

python test_gym.py

很有趣吧,更多环境等待你去发现、去实验。你也可以配合一些强化学习的算法来训练你的环境,然后让代理(agent)有智能,可以玩这些游戏比人更厉害。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

原文链接:https://www.jishux.com/p/5d55556c160bf1e1

强化学习实战(二)ubuntu16.04安装Anaconda、Gym和 Universe相关推荐

  1. 阿里云服务器Ubuntu16.04安装Anaconda(python3.6)和本地远程连接jupyter

    一.ubuntu16.04安装Anaconda(python3.6) 1.上传Anaconda 我选择的是在本地下载了anaconda的linux版本,之后用xftp上传到服务器上 下载地址:http ...

  2. MATLAB强化学习实战(二) 使用并行计算训练倒立摆系统

    使用并行计算训练倒立摆系统 行动者的并行训练 创建Cart-Pole MATLAB环境接口 创建AC智能体 并行训练选项 训练智能体 AC智能体仿真 参考文献 此示例显示了如何通过使用异步并行训练来训 ...

  3. 【强化学习实战-04】DQN和Double DQN保姆级教程(2):以MountainCar-v0

    [强化学习实战-04]DQN和Double DQN保姆级教程(2):以MountainCar-v0 实战:用Double DQN求解MountainCar问题 MountainCar问题详解 Moun ...

  4. Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程(此种方案不好,好的方案是另一篇,基于pyhton2的)

    Ubuntu16.04 安装 CUDA.CUDNN.OpenCV 和 Caffe 详细过程(基于Python2,没有anaconda2和3,因为基于anaconda2和3在安装caffe时会报错,很难 ...

  5. caffe2安装篇(二) ubuntu16.04 安装方法

    caffe2 ubuntu16.04 安装方法 Caffe2的安装相比于caffe在安装的时候更加简便,略去了Makefile.config的各种配置,对于有无GPU以及各种可选库例如opencv,a ...

  6. Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程

    Ubuntu16.04 安装 CUDA.CUDNN.OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程 1.配置环境 Ubuntu16.04 64-bit系统 ...

  7. Unity红球吃绿球强化学习小任务——Ubuntu20.04系统于2022年2月26日实现

    Unity红球吃绿球强化学习小任务--Ubuntu20.04系统于2022年2月26日实现 Unity红球吃绿球强化学习小任务 一.主机环境参数说明 二.具体教程以之前提供的视频介绍为主,需要修改的章 ...

  8. 【强化学习实战】基于gym和tensorflow的强化学习算法实现

    [新智元导读]知乎专栏强化学习大讲堂作者郭宪博士开讲<强化学习从入门到进阶>,我们为您节选了其中的第二节<基于gym和tensorflow的强化学习算法实现>,希望对您有所帮助 ...

  9. ubuntu16.04安装英伟达(NVIDIA)驱动——run文件安装

    ubuntu16.04安装英伟达(NVIDIA)驱动--run文件安装 去官网http://www.nvidia.com/Download/index.aspx?lang=en-us选择显卡驱动 中文 ...

  10. Ubuntu16.04 安装 OpenMPI4.0.0

    Ubuntu16.04 安装 OpenMPI4.0.0 文章目录 OpenMPI 简介 一.OpenMPI 1.0.0版本下载 二.OpenMPI 安装步骤 1.解压并进行配置 2.Build 并安装 ...

最新文章

  1. 云计算与边缘计算协同发展的一些思考
  2. SQLSERVER存储过程基本语法
  3. 圆形百分比_还有半圆形的饼图!怎么做出来的?
  4. 无法连接到数据库服务器 could not connect to server: Connection refused
  5. 产品经理八大惹怒程序员而被砍杀的行为
  6. Flask爱家租房--订单(房东接单、拒单)
  7. 澳洲虚拟主机空间_澳洲空间|澳洲虚拟主机|澳洲主机|澳洲虚拟空间-万纵科技 www.xmwzidc.cn...
  8. jquery源码抽丝剥茧--把jquery最小化
  9. 门面设计模式php,学习php设计模式 php实现门面模式(Facade)
  10. 设计灵感|独具中国韵味的海报设计
  11. 天津全国计算机等级考试报名时间2020,天津2020年计算机等级考试报名时间汇总...
  12. C++----为什么不让用using namespace std
  13. java实现爬虫_手把手教你从零开始用Java写爬虫
  14. 小学奥数公式大全 学习奥数必备“工具”
  15. git如何将本地分支关联到远程分支
  16. 在tecplot中计算Q准则
  17. Free Candies UVA - 10118
  18. 群辉 RAID1 数据恢复小记
  19. 解决 访问 github 网速慢 (亲测有效,速度大幅度提升)
  20. 最强大的专业PDF阅读器PDF Reader Pro功能

热门文章

  1. jquery跨域访问解决方案
  2. 深入浅出InfoPath——如何在项目中引用GAC中的dll文件
  3. ssh与tcp wappers
  4. keep怎么生成运动轨迹_空间新物种 !| 垂直运动路径与商业综合体的整合与植入...
  5. MPLS virtual private network PE-CE之间的路由协议(静态、RIP、IS-IS)
  6. C++ 从入门到入土(English Version)Section 9 : Computer Graphics and Command Prompt
  7. 从 Vue 的视角学 React(二)—— 基本语法
  8. 跟随腾讯WeTest一起来2019Unreal Open Day!
  9. Synchronize和ReentrantLock区别 1
  10. 好好活着就是一场博弈