一、背景
0.0、在安装之前需要明确自己需要安装的版本号,必须安装的为cuda、cudnn(这两个与所安装电脑这里也就是Linux服务器显卡有关)、tensorflow-gpu、python,这四个的版本号有对应关系,可参考tensorflow官网
0.1、需要另一个可以联网的电脑or服务器
-下文中所有需要下载的文件都是从这个可以联网的电脑上下载,然后上传到不能联网的服务器上。
-我的情况是:有两台服务器(两个都是linux操作系统,一个可以联网A,一个不能联网B),anaconda环境在A上创建,上传到B,后面的轮子都是在自己电脑(windows操作系统)上,下载的。
-我不知道如果在widows操作系统上创建anaconda环境,复制到linux操作系统上会不会有什么影响,如果真的没有条件,可以试一下,或者自行百度搜索一下~~~
1. 首先在另外一个可以联网的服务器上创建了python3.7的环境,创建方式可参考此链接,创建完成后在自己的anaconda安装路径下(xxx/anaconda/envs/your_name)会出现一个新的文件夹,名字为创建时命名的环境名(your_name),如下图
2. 这里我建议使用conda list 命令查看是否安装了pip包(如下图,我这里显示已经安装了),这个在后续安装中会用到。如果没有安装就安装一下,应该是conda install pip
随后在anaconda的安装路径下的envs文件夹下找到自己创建的虚拟环境,这里为tensorflowgpu_py37,把此文件夹打包整个复制到不能联网的服务器上
二、开始安装tensorflow-gpu-2.3.0
这里默认已经安装了CUDA和cudnn,cuda和cudnn与tensorflow-gpu和python版本的对应关系参考官网:Build from source on Windows | TensorFlow
0. 在此之前还要再强调一点,一定要下载.whl进行安装(有一些我没有找到轮子文件,然后下载压缩包从源文件进行安装,虽然提示安装成功但不知道为什么会识别不出来),如果没找到轮子可以尝试从源文件进行安装(可能每个电脑不一样?毕竟配环境是一个玄学问题hhh),不成功的话建议从互联网上寻找轮子,即.whl文件。
分为两步:
1. 下载tensorflow-gpu的轮子进行离线安装,这里以我自己需要的为例tensorflow-gpu-2.3.0版本,下载地址:Links for tensorflow-gpu
安装命令:
pip install tensorflow_gpu-2.3.0-cp37-cp37m-manylinux2010_x86_64.whl
-我建议使用pip安装,也可以使用conda install xxx ,但是我用conda的时候它会自动寻找网络,最后报http错误,也就是联网失败,使用pip不会遇到这个问题。
-如果使用pip安装时报错:bad interpreter:No such file or directory, 参考此链接
(又遇到了这个问题,回过头来看解决方案,发现链接已经不存在了,多次的经历告诉我们写教程一定不能偷懒!!!)
解决:
which pip
显示:~/anaconda3/envs/your_env/bin/pip
然后修改pip文件的python路径:
vim ~/anaconda3/envs/your_env/bin/pip
#!/opt/conda/envs/pythondgnn/bin/python
# 第一行修改为当前conda环境的python解释器的绝对路径:
#!/xxx/anaconda3/envs/your_env/bin/python
保存,再运行,成功!!!
这是由于当前虚拟环境是从另外一个电脑上复制过来的,pip安装的绝对路径是其他电脑上的,需要修改一下。(这是复制环境的通病,有很多绝对路径都是另一个电脑的,不会自动修改,只能后续报错之后,慢慢改,但一般不怎么报错)
2. 安装gpu版tensorflow依赖包
在线安装时会自动检索安装所需的依赖包,离线安装就需要我们手动把所有的依赖包轮子下载下来进行安装。
下载地址:Simple Index
我安装的依赖包如下:
-有可能你们和我会不一样,但是步骤大概就是 pip install xxx, (xxx是你下载的轮子的全称)如果成功就是成功了,如果需要其他依赖则会报错:需要xxx,后面还会跟着版本号的要求。
搜索这个依赖包,下载,pip install xxx,安装,成功后再安装上一级的包,一层一层安装就好了。
2.1 如何搜索依赖包
如下图所示:若报错提示为absl-py这个包缺失,直接在链接simple后面加包的名字进入包的文件夹,里面是对应的各种版本,按要求选择相应的版本
这里再说明一下,还有可能遇到同一个包刚刚已经安装了,刚安装时提示xxx版本>=0.4.0,然后我安装了0.4.0版本,但后面安装别的时候又提示缺少xxx版本<1.2.0 >=0.7.1,这时由于我刚刚安装的版本不符合要求,所以应该先把刚安装的版本卸载,重新安装一个符合这两个要求的版本(即>=0.4.0和<1.2.0 >=0.7.1,是一个并区间,不知道会不会出现并区间为null的情况,我没遇到过),卸载命令:pip uninstall xxx,xxx是包的名字,即报错提示的名字,不是轮子全称。
2.2 报错
最后!
-如果报错内容不是提示缺少依赖,就重新再安装一遍,有可能报错就会改变,如果还不变,就上一级再重新安装一下!
-如果找不到轮子,刚刚提供的是阿里云镜像站,这里还有清华镜像站,都找一下!实在找不到就去百度or谷歌,我还有一个轮子在这里找到了,好像说是官网,我没仔细看。
-希望大家都能成功!!!!
-反正我安装了一万个依赖包终于成功了!!!
三、成功了!
输入命令:conda list |grep tensorflow
查找到有tensorflow-gpu就是安装成功了!!!希望每个人都能到这一步!大功告成!