think_deeply

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2020-04-13:今天一整天时间在配置Linux下的TensorFlow环境,着实心累

1. 目的:

  • Linux服务器下有3块2070GPU,我的reproduce代码是TensorFlow写的,所以要在该服务器下配置GPU版的TensorFlow

2. 连接Linux服务器,连网,数据互传:

  • 在windows下使用远程桌面,连接linux服务器,输入ip,用户名:ivlab,连接时选择'console' module,输入密码,即可连接成功
  • 将Linux服务器连网:sudo vpn-connect -c,输入校园网的上网账号+@a,密码,之后再输入sudo vpn-connect 可以连接上网
  • 从windows向linux传输数据:建议使用Xftp6软件,可以网上下载,学生账号免费使用。Xftp6使用方法:
    • 双击打开Xftp6,新建会话(如下),填写相关内容
    • 名称可以任意;主机是Linux的ip地址;协议旋转SFTP即可,端口号:22即可;用户名:ivlab,密码:xxx
    • 连接建立成功以后,可以直接从windows拖拽文件到linux。为了维护服务器健康,将文件放在home/ivlab/new_home/zx/目录下,这个目录是4TB的硬盘

 

  •    Linux 服务器驱动安装的教程
    •   服务器的版本型号是ubuntu 16.0.4,根据教程安装https://blog.csdn.net/fdqw_sph/article/details/78745375
    • 下载显卡驱动器, NVIDIA-Linux的驱动器在Home文件夹下:NVIDIA-Linux-x86_64-440.100.run
    • 以下方法重装了驱动以后,可能屏幕分辨率很小,需要使用独显连接一下屏幕让其工作一下就可以了!
    • #禁用nouveau
      lsmod | grep nouveau
      #卸载掉原有驱动
      sudo apt-get remove --purge nvidia-*
      #安装nvidia driver
      sudo chmod a+x NVIDIA-Linux-x86_64-440.100.run //获取权限
      sudo ./NVIDIA-Linux-x86_64-440.100.run –no-x-check –no-nouveau-check –no-opengl-files //安装驱动
      –no-x-check 安装驱动时关闭X服务
      –no-nouveau-check 安装驱动时禁用nouveau
      –no-opengl-files 只安装驱动文件,不安装OpenGL文件

       

3. 安装Anaconda虚拟环境、CUDN、cudnn、TensorFlow-gpu、降级numpy

  • 打开Terminal,输入以下代码创建名为zx,python=3.5的虚拟环境

 

conda create -n your_env_name python=X.X
# 例如,我安装的3.5的python
conda create -n zx python=3.5
  • conda常用的命令:
conda activate zx    # 激活指定的虚拟环境
conda list     # 查看当前环境的包和模块
conda deactivate     # 关闭当前的虚拟环境
conda info -e    # 查看当前存在哪些虚拟环境
在conda虚拟环境中安装CUDA
conda install cudatoolkit=8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
(上面两行是同一条语句的)    # 我安装的是8.0的CUDA

在conda虚拟环境中安装cudnn
conda install cudnn=6.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/
(上面两行是同一条语句的)    #我安装的是6.0的cudnn
  • pip安装tensorflow-gpu
pip install tensorflow-gpu==1.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple    
# 在Linux的虚拟环境下,我安装的是1.4.0的TensorFlow
# 这时可能会提醒安装scripy 和 pypml,同样适用pip安装
  • 降级numpy,以上步骤安装完TF,运行时总是出现大量关于numpy的警告,原因是当前TF版本与已安装的numpy版本不兼容,所以降级numpy
pip uninstall numpy    # 先卸载numpy
pip install --upgrade numpy==1.14.5    # 将numpy降级到1.14.5

4. 安装tf2.x时,原本的tf1.x不可用,出现 ImportError: cannot import name 'abs'错误

pip install --upgrade tensorflow==1.4.0 # 更新自己的tensorflow cpu版
pip install --upgrade tensorflow-gpu==1.4.0# 更新自己的tensorflow-gpu版

 

5. pycharm导入虚拟环境

  • 定位虚拟环境位置
conda info -e    # 查看虚拟环境所在的位置,记住它
  • 将pycharm的project的python解释器设置到上方目录的python文件上,即可

6. 使用GPU、常用设置语句

  • gpu版本的TensorFlow会优先使用gpu进行运算,但是会默认使用第1块gpu:'/gpu:0'。常用语句:
with tf.device('/gpu:0'):          # 指定运算发生在哪个设备上。
                                      # 所有的cpu只有1个名字:/cpu:0
                                      # 每块GPU都有唯一的名字,如/gpu:0, /gpu:1, /gpu:2

config = tf.ConfigProto(log_device_placement=True,
allow_soft_placement=True)            # log_...表示在执行代码时,显示运算发生在哪些设备上,allow_...表示将GPU不能运行的操作,自动加载到CPU上
with tf.Session(config=config) as sess:    # 在生成会话时,将上述config参数设置进来


import os
os.environ['CUDA_VISIBLE_DEVICES']='2'    # 只使用第3块GPU,注意这是字符串

config = tf.ConfigProto()
config.gpu_options.allow_growth = True    # 让GPU按需分配显存
config.gpu_options.allow_growth = 0.4     # 直接指定,让代码占用所有可使用的GPU的40%显存

with tf.Session(config=config) as sess:    # 生成会话时,设置config

 

posted on 2020-04-14 00:01  think_deeply  阅读(782)  评论(0编辑  收藏  举报