2.2 硬件和软件要求
本书的示例都是用Python3.7版本实现并测试的。本书假设你已经熟悉该语言以及一些常见概念,比如虚拟环境,所以不会再详细介绍如何安装依赖包以及如何以隔离的方式进行安装。这些示例将会使用前面提到的Python注解,它允许我们提供函数和类方法的类型签名。
本书用到的外部依赖库都是开源软件,包含:
- NumPy:用于科学计算的库,它实现了矩阵运算和常用功能。
- OpenCV Python bindings:计算机视觉库,提供了许多图像处理的函数。
- Gym:RL框架,以统一的交互方式提供了各种各样的环境。
- PyTorch:灵活且有表现力的深度学习(Deep Learning,DL)库。第3章会提供它的速成课。
- PyTorch Ignite:基于PyTorch的高级工具库,用于减少样板代码。在第3章会有简短的介绍。完整的文档参见https://pytorch.org/ignite/。
- PTAN(https://github.com/Shmuma/ptan):笔者创建的一个Gym的扩展开源软件,用来支持深度RL方法以及方便地创建构造块。所有用到的类将同源代码一起详细解释。
一些特定章节会用到其他库,例如,用Microsoft TextWorld来学习基于文本的游戏,用PyBullet来进行机器人仿真,用OpenAI Universe解决浏览器的自动化问题等。这些特定的章节都会包含这些库的安装指令。
本书大部分章节(第二、三、四部分)都在关注近些年才开发出来的深度RL方法。“深度”一词意味着DL会被大量使用。你可能意识到DL方法需要大量的计算资源。现代图形处理器(Graphics Processing Unit,GPU)甚至比最快的多个中央处理器(Central Processing Unit,CPU)的系统还要快10~100倍。这意味着同样的代码,用GPU需要训练一小时,但用最快的CPU系统可能需要训练半天到一星期。这并不意味着你不能在没有GPU的情况下尝试本书的示例,只是要花更多时间而已。如果想实操一下代码(无论学什么实践都是最有效的方法),最好用一台带GPU的机器。有几种方式:
- 买一个能用CUDA的现代GPU。
- 购买云实例。Amazon Web Services和Google Cloud都可以提供带GPU的实例。
- Google Colab在它的Jupyter notebook中提供免费的GPU。
本书没介绍如何设置系统,读者可在互联网上查阅有用的手册。在操作系统方面,应该使用Linux或macOS操作系统。虽然PyTorch和Gym都支持Windows系统,但本书中的示例没有在Windows操作系统下完整测试过。
为了给出本书中会用到的外部依赖库的具体版本,我将pip freeze
命令的输出列了出来(这在对本书中的示例进行故障排除时会很有用,毕竟开源软件和DL工具包更新得特别快):
本书中的所有示例都是用PyTorch 1.3实现并测试的,遵循http://pytorch.org网站的指示就可以顺利安装(通常使用conda install pytorch torchvision -c pytorch
命令)。
现在,我们来详细了解一下OpenAI Gym的API吧,它提供了大量的环境,从简单的到极具挑战的都有覆盖。