1. 为什么需要Anaconda虚拟环境刚开始接触多智能体强化学习的时候我踩过最大的坑就是环境依赖冲突。当时直接在系统Python环境里安装各种包结果跑MADDPG的时候各种报错折腾了一整天都没解决。后来才知道用Anaconda创建独立的虚拟环境才是正解。虚拟环境就像是一个隔离的沙盒你可以在里面安装特定版本的Python和各种依赖包而不会影响到系统环境或其他项目。这对于需要特定版本依赖的MADDPG和MPE来说特别重要。比如MADDPG需要TensorFlow 1.8.0而你可能在其他项目里用着TensorFlow 2.x没有虚拟环境的话这两个版本就会打架。我建议从一开始就养成使用虚拟环境的习惯。这样不仅能让项目依赖保持干净还能方便地分享环境配置。比如你可以把环境配置导出为YAML文件其他人拿到后一键就能复现相同的环境。2. 安装与配置Anaconda2.1 下载安装Anaconda首先去Anaconda官网下载Windows 64位的Python 3.7版本。为什么是3.7而不是最新版因为后面我们会创建Python 3.6.5的虚拟环境用3.7版本的Anaconda作为基础更稳定。安装时记得勾选Add Anaconda to my PATH environment variable这样可以直接在命令行使用conda命令。虽然安装程序会警告说可能影响系统稳定性但实测下来勾选更方便特别是对新手来说。安装完成后打开命令提示符(cmd)输入conda --version如果能看到版本号说明安装成功。我当前用的是conda 4.12.0版本。2.2 配置国内镜像源为了加快下载速度建议先配置清华的conda镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes3. 创建MADDPG专用虚拟环境3.1 新建Python 3.6.5环境MADDPG官方要求Python 3.6.5我们创建一个名为maddpg_env的虚拟环境conda create -n maddpg_env python3.6.5激活环境conda activate maddpg_env你会看到命令行前缀变成了(maddpg_env)表示已经进入虚拟环境。3.2 安装核心依赖在虚拟环境中依次安装以下依赖注意版本号必须严格匹配pip install tensorflow1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy1.14.5 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install gym0.10.5 -i https://pypi.tuna.tsinghua.edu.cn/simple这里有个坑要注意直接安装gym0.10.5可能会失败可以先安装旧版本再升级pip install gym0.9.4 pip install --upgrade gym0.10.54. 配置多智能体粒子环境(MPE)4.1 下载MPE源码从GitHub克隆MPE仓库git clone https://github.com/openai/multiagent-particle-envs.git或者直接下载zip包解压。记住你的存放路径我这里是D:\multiagent-particle-envs。4.2 安装MPE进入MPE目录并安装cd /d D:\multiagent-particle-envs pip install -e .这个-e参数表示以可编辑模式安装这样你修改源码后不需要重新安装就能生效。4.3 测试MPE环境进入bin目录运行交互测试cd bin python interactive.py如果报错说pyglet版本不对需要降级pip install pyglet1.2.4再次运行应该能看到粒子环境的可视化窗口。5. 配置MADDPG算法5.1 下载MADDPG源码同样从GitHub克隆或下载git clone https://github.com/openai/maddpg.git我存放在D:\maddpg目录。5.2 关键配置步骤这里有个重要操作把MPE中的multiagent文件夹复制到MADDPG目录下。具体路径是D:\multiagent-particle-envs\multiagent 复制到 D:\maddpg\maddpg5.3 运行训练脚本进入experiments目录运行simple场景cd /d D:\maddpg\experiments python train.py --scenario simple如果一切正常你会看到训练日志不断输出。想可视化训练过程的话修改train.py中的display_default参数为True。6. 常见问题排查6.1 报错AttributeError: module tensorflow has no attribute placeholder这是因为TensorFlow版本不对。确保你安装的是1.8.0版本并且是在虚拟环境中运行的。可以用以下命令检查pip show tensorflow6.2 报错numpy版本冲突如果遇到numpy相关错误尝试先卸载再安装指定版本pip uninstall numpy pip install numpy1.14.56.3 可视化窗口无法关闭有时候pyglet窗口会卡住无法关闭。可以按CtrlC终止程序或者在任务管理器中结束Python进程。7. 进阶配置建议成功运行simple场景后你可以尝试其他场景如simple_adversary。这时候可能会遇到tmp文件夹冲突的问题解决方法很简单删除tmp/policy下的所有文件再重新训练。如果想在PyCharm中使用这个环境只需要在项目设置中选择maddpg_env作为解释器即可。PyCharm会自动识别已存在的conda环境。我在实际使用中发现用conda导出环境配置非常方便conda env export maddpg_env.yaml这样在其他机器上可以直接复现相同的环境conda env create -f maddpg_env.yaml