1. 从命令行启动
格式为:
python -m spinup.run [algo_name] [experiment_flags]
例如:
python -m spinup.run ppo --exp_name ppo_ant --env Ant-v2 --clip_ratio 0.1 0.2
--hid[h] [32,32] [64,32] --act torch.nn.Tanh --seed 0 10 20 --dt
--data_dir path/to/data
解释:
含义为:在Ant-v2 Gym环境中运行PPO算法,同时由各个参数来控制相关设置。默认情况下,会运行Pytorch版本的实现(除了TRPO,因为Spinning Up目前没有相应的Pytorch实现)。所以如果想运行Tensorflow版本的ppo,可以将上述命令中的ppo替换为ppo_tf1。
-
hid和act分别控制我们要训练的神经网络的隐藏层的大小(hidden size)和激活函数(activation function)的类型;hid后面的[h]表示其缩写,将用于保存目录(save directory)的名字中。 -
seed用来设置随机数生成器的种子,由于强化学习算法一般都具有很高的方差(variance),所以我们设置多个种子来了解性能如何变化。 -
dt确保了保存目录(save directory)的名字上会有相应的时间戳(timestamp)(默认情况下,保存文件夹名字上没有时间戳;也可以通过在spinup/user_config.py中设置FORCE_DATESTAMP=True来实现。)。 -
data_dir设置保存结果的文件夹(save folder for results)(默认的保存结果文件夹在spinup的子文件夹data中,由spinup/user_config.py的DEFAULT_DATA_DIR来设定)。备注:更多相关参数设置及其含义可以参见官方文档或者运行:
python -m spinup.m [algo_name] --help
选择Pytorch或者Tensorflow版本
如果想要选择Pytorch版本,则调用格式为:
python -m spinup.run [algo_name]_pytorch
相应的,如果想要选择Tensorflow版本的,则调用格式为:
python -m spinup.run [algo_name]_tf1
备注:如果名字后无后缀(即: _pytorch或_tf1),则由spinup/usr_config.py来设置默认调用的版本)
2. 从脚本启动
在spinup中,每个算法都实现为一个相应的python函数,因此可以通过调spinup包来实现进行算法的调用。例如:
from spinup import ppo_pytorch as ppo
利用gym建立环境,并运行相应算法:
from spinup import ppo_tf1 as ppo
import tensorflow as tf
import gym
env_fn = lambda : gym.make('LunarLander-v2')
ac_kwargs = dict(hidden_sizes=[64,64], activation=tf.nn.relu)
logger_kwargs = dict(output_dir='path/to/output_dir', exp_name='experiment_name')
ppo(env_fn=env_fn, ac_kwargs=ac_kwargs, steps_per_epoch=5000, epochs=250, logger_kwargs=logger_kwargs)
备注:也可以使用Spinup中自带的ExperimentGrid来配置参数并运行相应算法,详见官方文档。
本文介绍MSpinUp库的使用方法,包括从命令行和脚本启动强化学习算法的过程。详解PPO算法在Ant-v2环境中的运行配置,如参数设置、隐藏层大小、激活函数类型及结果保存路径。
4163





