官网
学习资源
蘑菇书EasyRL-文字描述,浅显易懂
莫烦python-动画描述,浅显易懂,部分课程含有代码,但是注意TensorFlow版本
MATLAB之工程师谈强化学习-MATLAB强化学习入坑必备
大神王树森-理论推导、逻辑清晰
一、安装有关:
1. 激活环境命令:
conda activate pytorch
2. To install Stable Baselines3 with pip, execute:
pip install stable-baselines3[extra]
[Stable Baselines3官网]()官网
3. A simple, continuous-control environment for OpenAI Gym安装
- 源代码网址
- 安装环境要求为TensorFlow
conda activate pytorch
pip install gym-cartpole-swingup
安装成功后显示如下:
二、环境(env)
1. 参考
2. 环境安装目录
若安装不成功提示如下错误
fatal: destination path 'cartpole-swingup-envs' already exists and is not an empty directory.
将下载的已经封装好环境放入gym安装目录内
D:\Anaconda3\envs\gym\Lib\site-packages
3. render函数
- 此函数中定义显示物体动作,其旋转坐标方向可能会与定义环境不同,如旋转角度,在环境中正向可以逆时针和顺时针两种,在次环境中逆时针方向为正向旋转角度,顺时针为负向旋转角度
- 竖直向上为0弧度位置
- 显示需与显示屏幕大小成一定比例关系,其计算程序为:
scale = screen_width / world_width
polelen = scale * polewidth # 0.6 or self.l1
- 选装角度起始位置为上一个参考运动物体杆的方向,如第一个物体旋转45度,第二个物体同样定义旋转45度,则有第二个物体绕原点的旋转角度为90度(此处只是说明,gym中角度单位为弧度)
三、调试
1. tensorflow因为版本不同会报错,采用如下命令可以避免报错
import tensorflow.compat.v1 as tf
2. 报错
RuntimeError: tf.placeholder() is not compatible with eager execution
在session中执行,但在使用T的ensorFlow 2.0及以上版本中,默认情况下开启了紧急执行模式,即定义即执行。
所以,我们需要在上面的语句前定义一下它不着急执行(原文摘自调皮李小怪博客)
解决方法,添加如下代码:
tf.compat.v1.disable_eager_execution()
x = tf.compat.v1.placeholder(tf.float32, [None, 784])
3. 报错
AttributeError: module 'gym.envs.box2d' has no attribute 'BipedalWalker'
原因分析,没有安装box2d
解决方案
conda activate pytorch
pip install box2d-py
4. 函数说明
from torch.utils.tensorboard import SummaryWriter
# create a summary writer with automatically generated folder name.
writer = SummaryWriter()
Gym中Space类的层级
- sample() 从该空间中返回随机样本
- contains(x) 检验参数x是否属于空间
- Discrete类表示一个互斥的元素集,例如Discrete(n=4)表示动作空间有4个方向
- Box类表示有理数的n维张量,在[low,high]之间,比如油门的0.0~1.0之间的值
- Tuple类将不同的Space实例组合起来,例如Tuple(spaces=(Box(low=-1.0, high=1.0, dtype=np.float32), Discrete(n=3), Discrete(n=2)))
基本只是点整理参考博客《深度强化学习实践》学习内容整理