【Spinning Up】 运行实验

  • Post author:
  • Post category:其他




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

来配置参数并运行相应算法,详见

官方文档