• 安装

  • 预备知识

    Baselines要求Python3(>=3.5),同时需要CMakeOpenMPIzlib包。可以通过如下方式安装:

  • Ubuntu

    1. sudo apt-get update && sudo apt-get install cmake libopenmpi-dev python3-dev zlib1g-dev
  • Mac OS X

    在Mac上安装系统包需要 Homebrew。安装 Homebrew后,运行如下代码:

    1. brew install cmake openmpi
  • Windows 10

    我们建议windows用户采用Anaconda.

    1. Anaconda Navigator (至少python 3.5) 创建一个新环境,在此环境下安装zlib
    2. 复制Github上Stable-Baselines仓库,并用gym[classic_control]>=0.10.9替换setup.py中的gym[atari,classic_control]>=0.10.9
    3. 从源文件安装Stable-Baselines。在安装目录运行pip install -e
    4. [可选]如果你想用atari环境,你需要安装这个包:https://github.com/j8lp/atari-py (再用 pip install -e)
  • 稳定版本

    1. pip install stable-baselines
  • 最新版本

    支持运行测试和构建文档

    1. git clone https://github.com/hill-a/stable-baselines && cd stable-baselines
    2. pip install -e .[docs,tests]
  • 使用Docker图像

    如果你用已安装的stable-baselines寻找docker图像,我们建议用来自RL Baselines Zoo的图片。

    不然,下面图片包含stable-baselines的所有依赖项,但不包含stable-baselines包本身。他们是为开发而生。

  • 用构建好的图像

    GPU图像(需要 nvidia-docker):

    1. docker pull araffin/stable-baselines

    只用CPU

    1. docker pull araffin/stable-baselines-cpu
  • 构建Docker图像

    构建GPU图像(用nvidia-docker):

    1. docker build . -f docker/Dockerfile.gpu -t stable-baselines

    构建CPU图像:

    1. docker build . -f docker/Dockerfile.cpu -t stable-baselines-cpu

    如果你是用了代理,在构建过程中你需要额外传递一些参数并做微调:

    1. --network=host --build-arg HTTP_PROXY=http://your.proxy.fr:8080/ --build-arg http_proxy=http://your.proxy.fr:8080/ --build-arg HTTPS_PROXY=https://your.proxy.fr:8080/ --build-arg https_proxy=https://your.proxy.fr:8080/
  • 运行图像(CPU/GPU)

    运行nvidia-docker GPU图像

    1. docker run -it --runtime=nvidia --rm --network host --ipc=host --name test --mount src="$(pwd)",target=/root/code/stable-baselines,type=bind araffin/stable-baselines bash -c 'cd /root/code/stable-baselines/ && pytest tests/'

    或者,用shell文件:

    1. ./run_docker_gpu.sh pytest tests/

    运行docker CPU图像

    1. docker run -it --rm --network host --ipc=host --name test --mount src="$(pwd)",target=/root/code/stable-baselines,type=bind araffin/stable-baselines-cpu bash -c 'cd /root/code/stable-baselines/ && pytest tests/'

    或者用shell文件:

    1. ./run_docker_cpu.sh pytest tests/

    解释docker命令:

    • doctor run -it 创建图像实例(等同于容器),并交互式地运行(ctrl+c会起作用)
    • --rm 选项意味着容器一旦推出/停止就删除。不然,你就要用docker rm
    • --network host 不用网络隔离,着允许在主机使用tensorboard/visdom
    • --ipc=host 用主机系统的IPC命名空间。IPC (POSIX/SysV IPC)命名空间提供命名共享内存段、信号量和消息队列的分离
    • --name test 明确给容器test名字,不会会被随机赋名
    • --mount src=... 给容器本地目录(pwd命令)权限(应该匹配/root/code/stable-baselines),以便容器在此目录下创建的日志都被保留
    • bash -c '...' 在docker图像内运行命令。此处运行pytest tests测试