IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【PARL强化学习】环境搭建 -> 正文阅读

[人工智能]【PARL强化学习】环境搭建

前言

抢了半年显卡,终于5.1时在pdd买到了原价的rtx3050(买不起不是我的问题,是矿老板的)。不用来玩机器学习太浪费了,刚好对Reinforcement Learning很感兴趣,今天就费了半天功夫搭环境,做下记录。

我准备搭建的环境构成如下:

  1. gym,模拟问题环境。
  2. PARL,搭建模型和训练Agent。
  3. PaddlePaddle-gpu,利用GPU训练。

我个人的电脑环境如下:

  1. Windows11 21H2
  2. i7 10700+rtx3050
  3. Anaconda

1、创建虚拟环境

之前搭pytorch时有经验了,最好创建一个conda虚拟环境来做专门的事情,这样一旦有任何问题,你可以直接把环境删了重来。

$ conda create -n RL_env python=3.8

根据我的惨痛教训,Python 3.10是不行的,PARL装不上。看了看官方的文档,给的Python 3.6+,这里建议用3.8。

2、安装库

首先切换到刚刚创建的虚拟环境,我们这里统一用pip安装包。

$ conda activate RL_env

有时候,错误的安装顺序也会导致依赖冲突,下面的安装顺序是我测试过的,确保没有问题:

$ pip install gym
$ pip install pygame # 可选,我装的flappy-bird-gym环境依赖于pygame
$ pip install parl
$ python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html

gym和parl直接装就好,没有问题,paddlepaddle-gpu是一个比较麻烦的东西。因为要用到gpu,所以依赖于cuda,根据PaddlePaddle官网给出的安装说明你需要自己去选择符合自己系统的安装链接。

PaddlePaddle官网安装说明
另外,如果你没有Nvidia的GPU,那么直接

$ pip install paddlepaddle

安装CPU版本的即可,也不需要后续CUDA安装步骤。

3、CUDA、cuDNN安装

理论上,你应当尽可能安装对应上面选择的CUDA版本。但是根据我的实测,CUDA11.6(截止2022.5.5最新)与CUDA11.2版本的PaddlePaddle-gpu完全兼容(也与cudatoolkit为11.1的pytorch兼容)。

  1. 首先,去Nvidia Developer下载你需要安装版本的CUDA。如果你不想装11.6,可以去Archive查找以往版本,这里你能下载到11.2。

  2. CUDA是安装包的形式,安装没什么操作难度。如果你是第一次安装CUDA,那么直接按照“精简”的方式安装就可以了(不过这样会安装到C盘),也不需要你去自己修改环境变量,比较友好。如果你想安装多个版本的CUDA,那么建议选择“自定义”,然后仅仅安装CUDA,不要安装多个版本的Nsight。

  3. 安装好CUDA后,去cuDNN页面寻找对应你CUDA版本的cuDNN链接库。需要注意的是,paddlepaddle-gpu对于不同版本的CUDA有不同版本的cuDNN要求。CUDA10.2,对应下载cuDNN7,也就是类似v7.65这样的版本;而CUDA11,对应下载cuDNN8,即v8.33之类的版本。

  4. cuDNN下载下来是一个压缩包,里面包含3个文件夹,直接把它解压到你的CUDA安装目录,如果是默认的那么应该为:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\版本号\。移入时需要管理员权限。

4、基础测试

我们装了一堆东西,现在该测试一下能不能正常运行了。

$ conda activate RL_env
$ python
Python 3.8.13 (default, Mar 28 2022, 06:59:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle
>>> paddle.utils.run_check()
Running verify PaddlePaddle program ... 
W0505 17:26:10.254304 20020 device_context.cc:447] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 11.6, Runtime API Version: 11.2
W0505 17:26:10.257297 20020 device_context.cc:465] device: 0, cuDNN Version: 8.4. 
PaddlePaddle works well on 1 GPU.
PaddlePaddle works well on 1 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

我们调用Paddle提供的检测接口,如果paddle.utils.run_check()能够有类似我上面的输出,那么我们的环境就大功告成了。

PS:import paddle会报告一串warning,这个是paddle自己的问题,它调用的一些接口已经废弃(deprecated)了,你要么根据报告自行修改,要么等paddle更新。

5、实例测试

这里我跑了一下Paddle文档中提到的CartPole测试,这个算是RL领域的Hello World了。这个项目的源代码都是在仓库里公开的,我就不贴了,给一张运行结果:

Training
上图是训练过程,训练结束后会生成一个model.ckpt的模型。把上图中我选中的部分注释删掉,就可以进行测试。测试时会显示CartPole左右移动的过程,挺有意思的:

Testing

结语

这篇博客对PARL的环境搭建过程做了一个记录。我看网上有很多的教程,不过我怀疑他们是不是真的走过一遍,你按照他们的大概率跑不起来。接下来我会尝试对之前提到的flappy-bird-gym做一次强化学习训练,当作入门了。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:03:14  更:2022-05-06 11:04:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:46:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码