稍微记录一下我配环境的辛酸历程


更新!!!!!!!
最近真正开始配环境跑实验了,感觉有的地方更清楚了一些,所以把下面的内容重新更新一下,重点新增了如何配置pytorch和怎么安装星际微操的环境
2020年9月底的时候我的状态: 这些我也不是特别懂,先记一下吧

安装深度学习框架

配置pytorch-gpu

首先装Anaconda,然后创建虚拟环境,因为现在conda管理python包非常方便,尤其是在安装需要gpu的深度学习框架的时候,会自动下好相应的cudatoolkit , 划重点!!! 不用自己再去下载cuda,cudnn,甚至改什么软连接了,比如说我现在要在linux的系统上安装一个pytorch-gpu版本的库,那我就去pytorch的官网,链接,选好我需要的配置就可以了,如下图:
在这里插入图片描述
只要在创建的虚拟环境中输入这个命令就可以了,亲测GPU可用。不得不说网上的各种教程还是有点误导人的,当然如果不使用anaconda,那还是可以按照现有的很多教程先安装CUDA,再cuDNN,等等依次安装。推荐几个教程,教程1,教程2,tensorflow的gpu版本应该也是可以通过anaconda这样安装的。

配置tensorflow

在Linux上

cpu版本的 :直接conda就行 conda install tensorflow
gpu版本的: 这是最神奇的,就是我在linux系统的服务器上装的,显卡是Titan X Pascal,然后我没有考虑版本问题,直接conda install tensorflow-gpu就可以用了,装的是tf-gpu 2.0.0,测试gpu是否可用显示TRUE, 然后我用
nvcc -Vcat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2测了一下CUDA和cudnn的版本,分别是8.0.61,6.0.21,就是也不是和2.0.0tf匹配的, 哈哈很神奇;但是同样我尝试了一下安装tensorflow1.8.0 gpu版本,直接conda install tensorflow-gpu==1.8.0发现是不行的,还挺合理的。(2020.11月更新,我觉得参考上面的pytorch-gpu安装,这块应该问题不大,之后用到tensorflow的时候我再更新)

在Windows上

cpu版本的 就是pip install tensorflow==2.0.0 /1.8.0 这种就行,可以加一个镜像源,如果安装成功了但是import出错,可能是因为核显不支持高版本,比如我的电脑目前就不支持2.0.0以上的版本 =.=,或者网上也有说加一个vs2015/17啥的,建议先考虑降低tf版本(但不知道为什么我用conda装不上,可能conda版本不够吧)。
GPU 版本的 首先是装CUDA cudnn,这些网上都有安装教程,然后根据CUDA cudnn tensorflow三者匹配关系确定一个tensorflow-gpu的版本,再pip install tensorflow-gpu ==xxx就可以了(感觉应该是这样的,但是我的CUDA没装上,所以我也不能保证这些),可以确定的是按照我电脑目前的配置直接装tf-gpu是可以装上但是运行不了,显示大概就是没有CUDA的问题。但是我不是很确定windows上会不会发生和我在服务器上一样的情况,就是安装2.x的TF,不必匹配版本,有CUDA就行。

测试tf-gpu装上没: tf.test.is_gpu_available()
另外怎么用tf2.x跑tf1.x的代码:可以参考这个链接 link
这个后续我会去官网看一下教程的,而不是直接看各种二手资料,我努力尽快尽量去

安装Multiagent Particle Environment

在这个github网址link 把环境下载下来(后续再说吧)

安装星际微操环境

按照我的理解是这样的,首先暴雪娱乐公司(Blizzard),也就是星际争霸的研发公司,和DeepMind团队共同发布了以星际争霸Ⅱ为AI训练和测试的环境StarCraft II Learning Environment (SC2LE),提供了游戏的API,方便用来研究相关的智能算法,并且基于提供的API还提供了一套相对更简洁的python接口,方便使用python来让智能体学习星际争霸,链接在pysc2,这差不多是在17年进行的工作,然后19年大牛组Shimon Whiteson团队基于SC2LE和pysc2提供了一个新的星际Ⅱ有关的benchmark,SMAC,主要用来研究多智能体合作、分布式控制多智能体的问题,链接在SMAC,另外这个组还提供了很多使用强化学习在多智能体合作领域一些sota算法的实现,如COMA,QMIX,QTRAN等等,算法实现在这里,Pymarl

另外我确实在实际安装SMAC这个环境的时候遇到了太多问题,还相对费时间地学习了一下docker,=.=,后来发现安装这个环境有一些坑还是可以避免的,不必每一个坑都踩,这里也记录一下方便大家学习,真的是很抱歉本来我应该很早就记录的,懒惰让我忘记了。我安装这个SMAC环境主要参考的是Pymarl的这个教程,在其github主页上的提示是这样的:
在这里插入图片描述
真的好简单,但是也花了我好多时间,这里稍微解释一下吧

首先关于dockerfile,为了避免配环境需要各种依赖库等等的麻烦,这里提供的是docker容器,把各种依赖都打包好封装在一个沙箱里,进入这个沙箱就可以直接运行各种应用。具体的应用过程是:dockerfile生成镜像image,用image去运行一个容器container,在容器里(理解成一个新的环境配好的电脑,环境就是按照dockerfile配好的)运行实验,关于docker的具体介绍可以参考这个教程,docker 教程

参考dockerfile配置环境

所以如上所述,可以直接按照docker那一套来配环境所需要的依赖,但是对于docker不太熟悉的朋友,这里也可以简单说一下怎么按照dockerfile自己配环境,我们可以来看一下这个dockefile。

在这里插入图片描述

  • 这里1-2行是标准的dockerfile的写法,是说我的这个镜像是基于那个镜像来写的,管理人是谁,比如生成的container里的系统就是ubuntu16.04的系统,cuda9.2版本,因此自己在配环境的时候就可以自己安装一下cuda9.2版本,cudnn对应的版本等
  • 5-7 是在声明环境变量,因为有的代码要用到gpu,所以需要在环境变量里添加CUDA的位置,自己可以查一下
  • 10-19 这里是按照一些常见的linux系统的包,比如说vim wget这些,因为生成的容器container是非常纯净的啥也没有,但是一般我们的服务器上应该是这些常见的包都有的,所以并不是每个都需要,比如我这里就直接跳过了
  • 22-25 安装python,pip,28-31,安装python代码运行的时候需要的一些依赖包,36,38同理
  • 33,34+39,这里是安装 oxwhirl这个课题组提供的一个sacred的包,具体就是git clone sacred.git这个包,然后进入 sacred这个文件夹,再python3 setup.py install就可以安装sacred了,反正目的是安装这个包,具体怎么实现的无所谓
    在这里插入图片描述
  • 44-45,安装pytorch,这样安装的好像不会用gpu,具体如何安装gpu版本,参考上面
  • 48 安装smac这个包
  • 49 声明星际争霸的安装位置,因为代码要和这个环境实时交互,所以需要声明它的位置
  • 51 这个和docker有关,不用管

安装星际争霸,添加地图

上面那步相当于我们把算法代码运行需要的依赖库等等都安装好了,接下来还需要安装算法真正交互的环境,也就是星际争霸Ⅱ,具体参考install_sc2.sh,截图:
在这里插入图片描述
这里最主要的就是:

  • 按照红圈1 wget下载星际争霸的linux版本,解压,并且参考15声明星际争霸的位置,这里是安装到了当前目录/3rdparty/StarCraft,和上面的49行其实还有点重复
  • 按照红圈2下载smac地图,地图里面有具体的星际微操设定,并且把地图放到当前目录/3rdparty/StarCraft/Maps里面

运行代码

基本上按照上面的方式配置好环境依赖,安装好星际争霸就没有问题了,反正我是运行了,就是python3 src/main.py --config=qmix --env-config=sc2 with env_args.map_name=2s3z
大家有什么问题再提问吧,另外需要注意的是这里安装环境的时候用的是pip3安装,但是不知道为什么在anaconda3中生成虚拟环境后,用pip3安装是安装不到当前的虚拟环境的,所以运行会报错,建议使用pip3的时候先看一下pip3的位置,可以用pip3 -V,看是不是和当前虚拟环境一致,难以置信这样简单的问题我花了快两天才找到,=.=,不过用conda装python包好像就没有这个问题,只是有些python包conda里没有,只能pip

写在最后

关于配环境基本就是这样了,更新得有点晚,T.T

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值