使用 TensorFlow 2.0 -gpu (包括問題錄)

Table of Contents

 簡介

遇到的問題錄

配置GPU資源使用

加載keras.datasets.imdb.load_data()時報錯


 

  •  簡介

  • TensorFlow是目前深度學習的框架,與Keras、Pytorch合稱爲深度學習三大框架。
  • 是一個開放源代碼軟件庫,用於進行高性能數值計算。
  • 數據流圖  Data Flow Graph  數據流圖用“結點”(nodes)和“線”(edges)的有向圖來描述數學計算。“節點” 一般用來表示施加的數學操作,但也可以表示數據輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變量(persistent variable)的終點。“線”表示“節點”之間的輸入/輸出關係。這些數據“線”可以輸運“size可動態調整”的多維數據數組,即“張量”(tensor)。一旦輸入端的所有張量準備好,節點將被分配到各種計算設備完成異步並行地執行運算。
  • MNIST   是一個入門級的計算機視覺數據集,它包含各種手寫數字圖片,也包含每一張圖片對應的標籤。
  • Softmax Regression   一個簡單的數學模型
  • VirtualEnv   用於在一臺機器上創建多個獨立的Python虛擬運行環境,多個Python環境相互獨立,互不影響。虛擬環境是在Python解釋器上的一個私有複製,你可以在一個隔絕的環境下安裝packages,不會影響到你係統中全局的Python解釋器。虛擬環境非常有用,因爲它可以防止系統出現包管理混亂和版本衝突的問題。爲每個應用程序創建一個虛擬環境可以確保應用程序只能訪問它們自己使用的包,從而全局解釋器只作爲一個源且依然整潔乾淨去更多的虛擬環境。另一個好處是,虛擬環境不需要管理員權限。
  • 給python3安裝pip
  • 遇到的問題錄

  1. 在Jupyter notebook中編寫的代碼,訓練卷積網絡時,遇到如下問題

    1. 瀏覽器端報錯爲

      UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [Op:Conv2D]
      
    2.  終端報錯爲(cc:338)

      E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
      E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
    3. 【環境配置】操作系統Ubuntu 18.04.2 LTS;顯卡2080驅動430.14;Python版本python 3.6.7;cuda 10.0 + cudnn 7.6.0 + tf-gpu 2.0

    4. 原因推測:

      1. 可能是顯卡內存不足

      2. 也可能是因爲RTX顯卡不兼容它出生前的接口有關。

    5. 問題解決:

      1. 卸載原來安裝的 cudnn7.6.0 (安裝是 deb 格式的)

      2. 重新安裝  cudnn7.6.0 (安裝的是 tar 格式的文件)

      3. 重新設置了 ~/.bashrc 文件中的環境變量配置

        
        export LD_LIBRARY_PATH=<解壓tar文件生成cuda文件的路徑>/cuda/lib64:$LD_LIBRARY_PATH
        1. (增加了cudnn7.6.0 解壓後 /cuda/lib64 的路徑)

      4. 在代碼中添加了:(參考: https://blog.csdn.net/pkuyjxu/article/details/89402298)

        from tensorflow.compat.v1 import ConfigProto
        
        from tensorflow.compat.v1 import InteractiveSession
        
        
        config = ConfigProto()
        
        config.gpu_options.allow_growth = True
        
        session = InteractiveSession(config=config)
        1. 更多可參考:https://github.com/tensorflow/tensorflow/issues/24496#

  2. 配置GPU資源使用

    1. https://blog.csdn.net/dcrmg/article/details/79091941

  3. 加載keras.datasets.imdb.load_data()時報錯

    1. 原因分析: 可能是 numpy的版本不匹配,重新安裝numpy的版本 $ pip install numpy==1.16.2

    2. 檢測 numpy 的版本信息 $ import numpy as np       $ print(np.__version__)

  4.  

  5.  

  6.  

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章