GAIL-TF 项目使用指南
1. 项目目录结构及介绍
gail-tf/
├── gailtf/
│ ├── __init__.py
│ ├── main.py
│ ├── model.py
│ ├── misc/
│ │ ├── __init__.py
│ │ └── ...
│ └── ...
├── baselines/
│ ├── __init__.py
│ ├── ppo1/
│ │ ├── __init__.py
│ │ └── run_mujoco.py
│ └── trpo_mpi/
│ ├── __init__.py
│ └── run_mujoco.py
├── LICENSE
├── README.md
└── requirements.txt
目录结构说明
- gailtf/: 核心代码目录,包含主要的实现文件。
- main.py: 主程序文件,负责模型的训练和评估。
- model.py: 定义生成器和判别器的神经网络结构。
- misc/: 包含一些辅助功能的代码。
- baselines/: 包含从 OpenAI Baselines 项目中借鉴的代码,用于生成专家数据。
- ppo1/: PPO 算法的实现。
- trpo_mpi/: TRPO 算法的实现。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍和使用说明。
- requirements.txt: 项目依赖的 Python 包列表。
2. 项目启动文件介绍
main.py
main.py
是项目的启动文件,负责以下功能:
- 模型训练: 通过 GAIL 或行为克隆(BC)进行模仿学习。
- 结果评估: 评估训练好的模型在环境中的表现。
主要参数
--env_id
: 指定训练环境,例如Hopper-v1
。--expert_path
: 专家数据的文件路径。--num_cpu
: 使用的 CPU 数量。--g_step
: 生成器在每个迭代中的优化步数。--d_step
: 判别器在每个迭代中的优化步数。--num_timesteps
: 训练的总时间步数。
示例命令
python3 main.py --env_id Hopper-v1 --expert_path /path/to/expert.pkl --g_step 3 --d_step 1 --num_timesteps 1000000
3. 项目的配置文件介绍
requirements.txt
requirements.txt
文件列出了项目运行所需的 Python 包及其版本。
示例内容
python==3.5.2
mujoco-py==0.5.7
tensorflow==1.1.0
gym==0.9.3
环境变量配置
在运行项目之前,需要设置一些环境变量,以确保代码能够正确找到所需的资源。
示例配置
export GAILTF=/path/to/your/gail-tf
export ENV_ID="Hopper-v1"
export BASELINES_PATH=$GAILTF/gailtf/baselines/ppo1
export SAMPLE_STOCHASTIC="False"
export STOCHASTIC_POLICY="False"
export PYTHONPATH=$GAILTF:$PYTHONPATH
专家数据生成配置
在生成专家数据时,需要配置一些参数,例如是否使用随机策略等。
示例配置
export PATH_TO_CKPT=/checkpoint/trpo_Hopper_0_00/trpo_Hopper_00-900
python3 $BASELINES_PATH/run_mujoco.py --env_id $ENV_ID --task sample_trajectory --sample_stochastic $SAMPLE_STOCHASTIC --load_model_path $PATH_TO_CKPT
通过以上配置,您可以顺利地启动和运行 GAIL-TF 项目,进行生成对抗模仿学习。