无root权限服务器gpu节点下tensorflow源码安装过程及问题
服务器环境:
CentOS Linux release 7.2.1511 (Core)
问题:
1.没有root权限,不能使用sudo命令,所有包都必须安装在自己的目录下
2.服务器没有联网,配置文件中的包的链接无法直接下载,必须提前自己下载,通过xftp传入服务器,再用scp命令传到gpu 节点
scp –r /home/path [email protected]:/home/path
解决:
由于TensorFlow的许多依赖包无法联网安装,且需要手动修改安装配置文件,所以用源码安装方式(pipy上都是tensorflow的whl安装包,源码在GitHub上下载.zip文件,传到gpu节点并在自己目录下解压)
方案1:直接装(失败)
cd tensorflow
./configure –prefix=/home/wanglz
然后根据实际情况修改一些配置
编译:bazelbuild--config=opt //tensorflow/tools/pip_package:build_pip_package
(bazel需要提前安装)
报错:
报错的原因是因为服务器无法联网,配置文件里写的这些依赖的下载路径无法访问,这些路径在tensorflow解压之后的WORKSPACE文件中,把其中所有的链接下载之后传到GPU节点,并把该配置文件中的路径全部改为本地,
之后继续编译,继续报错:
无法进行下去,换方案2
方案2:在Python虚拟环境中装(失败)
由于此时已经在自己目录下尝试了许多次,也安装了好几个Python版本,为了不互相干扰,用pip安装python-virtualenv,并创建一个env1的虚拟环境,使其不受干扰,但是最后还是在和方案一同样的位置无法进行下去
方案3:在本机装,将整个文件拷贝到gpu节点(成功)
在台式机的ubuntu系统下创建一个目录,并在该目录下安装tensorflow(将其所有的依赖包均安装在本目录下),然后将目录是整体拷贝传到服务器GPU节点,最后验证通过。