1.PaddlePaddlle强化学习及PARL框架

PARL 的名字来源于 PAddlepaddle Reinfocement Learning,是一款基于百度 PaddlePaddle 打造的深度强化学习框架。

该强化学习框架主要有以下特点:

  • 可复现性保证。我们提供了高质量的主流强化学习算法实现,严格地复现了论文对应的指标。
  • 大规模并行支持。框架最高可支持上万个CPU的同时并发计算,并且支持多GPU强化学习模型的训练。
  • 可复用性强。用户无需自己重新实现算法,通过复用框架提供的算法可以轻松地把经典强化学习算法应用到具体的场景中。
  • 良好扩展性。当用户想调研新的算法时,可以通过继承我们提供的基类可以快速实现自己的强化学习算法。


框架结构

PARL的目标是构建一个可以完整复杂任务的智能体。以下是用户在逐步构建一个智能体的过程中需要了解到的结构:

Model

Model 用来定义前向(Forward)网络,这通常是一个策略网络(Policy Network)或者一个值函数网络(Value Function),输入是当前环境状态(State)。

Algorithm

Algorithm 定义了具体的算法来更新前向网络(Model),也就是通过定义损失函数来更新Model。一个Algorithm包含至少一个Model。

Agent

Agent 负责算法与环境的交互,在交互过程中把生成的数据提供给Algorithm来更新模型(Model),数据的预处理流程也一般定义在这里。

2. CPU版本安装

2.1  2.x版本安装

首先在anaconda下创建虚拟环境

飞桨安装链接【开始使用_飞桨-源于产业实践的开源深度学习平台

                                                  

python 飞桨如何训练模型 飞桨课程_python

pip install paddlepaddle==2.0.2 -i https://mirror.baidu.com/pypi/simple
conda install paddlepaddle==2.0.2 -c paddle

python 飞桨如何训练模型 飞桨课程_paddle_02

2.2 如果报错:

TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:

  1. Downgrade the protobuf package to 3.20.x or lower.
  2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

解决方案:降级 protobuf

 在当前conda环境下

pip uninstall protobuf

然后,安装即可

pip install protobuf==3.19.0

最后执行!

import paddle

paddle.utils.run_check()

安装完成后您可以使用 python 进入python解释器,输入import paddle ,再输入 paddle.utils.run_check()如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

python 飞桨如何训练模型 飞桨课程_python 飞桨如何训练模型_03

 

2.2 卸载

请使用以下命令卸载PaddlePaddle:

  • CPU版本的PaddlePaddle:
pip uninstall paddlepaddle

2.3  1.8版本安装

先在anaconda里安装pip

conda install pip
pip install paddlepaddle==1.8.5 -i https://mirror.baidu.com/pypi/simple
使用python 或 python3 进入python解释器,输入import paddle.fluid ,再输入paddle.fluid.install_check.run_check()。

这里提示安装成功会显示:PaddlePaddle is installed successfully!
最后补充一句:新建一个环境哦,别和之前比如tensorflow装在一起,有时候会出现莫名错误!慎重!


3.GPU版本安装

在anaconda下创建虚拟环境


确认Python和pip是64bit,并且处理器架构是x86_64(或称作x64、Intel 64、AMD64)架构,目前PaddlePaddle不支持arm64架构。下面的第一行输出的是”64bit”,第二行输出的是”x86_64(或x64、AMD64)”即可:

python -c "import platform;print(platform.architecture()[0]);print(platform.machine())"

python 飞桨如何训练模型 飞桨课程_强化学习_04

conda install paddlepaddle-gpu==2.0.2 cudatoolkit=10.2 -c paddle

安装完成后您可以使用 python 或 python3 进入python解释器,输入import paddle ,再输入 paddle.utils.run_check() 如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

python 飞桨如何训练模型 飞桨课程_强化学习_05

这里说明一下,因为我的电脑里安装了11.2和10.2两个版本的cuda,我会进行切换的。

python 飞桨如何训练模型 飞桨课程_paddle_06

当前使用的是11.2版本。中间的那段警告可以忽视,只要安装成功就行!

3.1 更新paddle

pip install --upgrade paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple

4.课程笔记


4.1第一节python基础语法                                                                                                                                     

                            

python 飞桨如何训练模型 飞桨课程_python_07

       

python 飞桨如何训练模型 飞桨课程_python 飞桨如何训练模型_08

                                                                                                                                             

4.2 第二节python常见的数据结构


python 飞桨如何训练模型 飞桨课程_强化学习_09

 

python 飞桨如何训练模型 飞桨课程_强化学习_10

4.3第三节python For 循环、While 循环                                                                                                                    

                                                    

python 飞桨如何训练模型 飞桨课程_python 飞桨如何训练模型_11

                                                                                                                         

4.4 第四节python 中定义函数       

 

python 飞桨如何训练模型 飞桨课程_强化学习_12

4.5第五节python 面向对象编程                                                                                                                

                                                                                                    

python 飞桨如何训练模型 飞桨课程_强化学习_13

             

python 飞桨如何训练模型 飞桨课程_paddle_14

                                                                                              

4.6 第六节python 面向对象编程 


python 飞桨如何训练模型 飞桨课程_python_15

python 飞桨如何训练模型 飞桨课程_python 飞桨如何训练模型_16