相关文章:
【一】MADDPG-单智能体|多智能体总结(理论、算法)
【二】MADDPG多智能体算法实现(parl)【追逐游戏复现】
之前用的都是paddle,现在补一下tf的。
github上openAI已经给出了maddpg的环境配置https://github.com/openai/maddpg以及https://github.com/openai/multiagent-particle-envs,
1.环境配置
首先确保gym的版本为0.10.5,tensorflow是1.x版本,我的tensorflow是1.14.0,可以运行成功。
打开终端,将路径cd到multiagent-particle-envs文件夹下(即含有setup.py文件的文件夹下)
执行
代码语言:javascript复制pip install -e .
multiagent环境安装完成。
同样的,将路径再cd到maddpg文件夹下(即含有setup.py文件的文件夹下),执行
代码语言:javascript复制pip install -e .
maddpg安装完成。将路径加入到path中:打开~/.bashrc,将multiagent-particle-envs下的bin的路径添加到path里面(可有可无)
2.代码的运行
- 训练数据 cd到/maddpg/experiments文件夹下,运行train.py文件,默认环境为simple,若想修改环境,则运行以下代码: python train.py --scenario 环境的名称 例如:
python train.py --scenario simple_tag
注:
- 如果训练完之后报错:
FileNotFoundError: Errno 2 No such file or directory: ‘./learning_curves/_rewards.pkl’
那么就在跟experiments同级目录下,手动创建一个learning_curves文件夹,当然也可以注释掉这几行数据保存的代码,毕竟不影响训练的结果
Traceback (most recent call last): File “train.py”, line 193, in train(arglist) File “train.py”, line 182, in train rew_file_name = arglist.plots_dir arglist.exp_name ‘_rewards.pkl’ TypeError: can only concatenate str (not “NoneType”) to str
直接修改下格式就好:修改train.py第182行为
代码语言:javascript复制rew_file_name = str(arglist.plots_dir) str(arglist.exp_name) '_rewards.pkl'
第185行为
代码语言:javascript复制agrew_file_name = str(arglist.plots_dir) str(arglist.exp_name) '_agrewards.pkl'
- 显示可视化界面
训练完数据后,进行可视化,只需运行代码:python train.py --scenario 环境的名称 --display即可。例如:
代码语言:javascript复制python train.py --scenario simple_tag --display