配置Linux服務器TensorFlow環境的問題匯總


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM