1. 程式人生 > >深度學習實踐(一)—tensorflow之概述

深度學習實踐(一)—tensorflow之概述

內容預覽

  • 1.1 深度學習與機器學習的區別

    • 1.1.1 特徵提取方面
    • 1.1.2 資料量和計算效能要求
    • 1.1.3 演算法代表
  • 1.2 深度學習的應用場景

    • 1.2.1 影象識別
    • 1.2.2 自然語言處理技術
    • 1.2.3 語音技術
  • 1.3 深度學習框架介紹

    • 1.3.1 常見深度學習框架對比
    • 1.3.2 TensorFlow的特點
    • 1.3.3 TensorFlow的安裝

1.1 深度學習與機器學習的區別

  • 特徵提取方面

    • 機器學習的特徵工程要靠手動完成的,這需要大量的專業領域的知識
    • 深度學習由多層組成,它通常將更簡單的模型組合在一起,將資料一層一層地傳遞來構建複雜的模型。通過大量資料訓練自動得出模型,不需要人工特徵提取環節。
    • 深度學習演算法試圖從資料中提取高階特徵,這是深度學習的一個非常獨特的部分。因此深度學習中不再為每個問題開發新特徵提取器,這樣深度學習更適用在難提取特徵的影象、語音、自然語言處理領域。
  • 資料量和計算效能要求

    深度學習需要的執行時間遠大於機器學習,深度學習引數往往很龐大,需要通過大量資料的多次優化來訓練引數。

    因此:

    1. 深度學習需要大量的訓練資料集
    2. 訓練深度神經網路需要大量的算力

    可能要花費數天、甚至數週的時間,才能使用數百萬張影象的資料集訓練出一個深度網路。

    所以深度學習通常:

  • 演算法代表

    • 機器學習
      • 樸素貝葉斯、決策樹等
    • 深度學習
      • 神經網路

1.2 深度學習的應用場景

  • 影象識別

    • 物體識別
    • 場景識別
    • 車型識別
    • 人臉檢測跟蹤
    • 人臉關鍵點定位
    • 人臉身份認證
  • 自然語言處理技術

    • 機器翻譯
    • 文字識別
    • 聊天對話
  • 語音技術

    • 語音識別

1.3 深度學習框架介紹

  • 常見深度學習框架對比

    框架名 主語言 從語言 靈活性 上手難易 開發者
    Tensorflow C++ cuda/python Google
    Torch Lua C/cuda 中等 Facebook
    PyTorch Python C/C++ 中等 Facebook
    Caffe C++ cuda/python/Matlab 一般 中等 賈楊清
    Theano Python C++/cuda 蒙特利爾理工學院
    MXNet C++ cuda/R/julia 中等 李沐和陳天奇等
    1. 最常用的框架當數 TensorFlow 和 Pytorch , Caffe 和 Caffe2 次之
    2. PyTorch , Torch 更適用於學術研究,TensorFlow,Caffe,Caffe2 更適用於工業界的生產環境部署
    3. Caffe 適用於處理靜態影象;Torch 和 PyTorch 更適用於動態影象;TensorFlow 在兩種情況下都很實用。
    4. Tensorflow 和 Caffe2 可在移動端使用。
  • TensorFlow 的特點

    官網:https://www.tensorflow.org/

    • 高度靈活
      • 它可以做神經網路演算法,也可以做機器學習演算法,甚至只要把計算表示成資料流圖,都可以用TensorFlow 。
    • 語言多樣
      • TensorFlow 使用 C++ 實現的,使用了 Python 進行封裝。谷歌號召社群通過 SWIG 開發更多的語言介面來支援 TensorFlow 。
    • 裝置支援
      • TensorFlow 可以執行在各種硬體上,同時根據計算的需要,合理將運算分配到相應的裝置。比如卷積就分配到 GPU 上,也允許在 CPU 和 GPU 上的計算分佈,甚至支援使用 gRPC 進行水平擴充套件。gRPC 是一個高效能、通用的開源RPC框架。
    • TensorBoard 視覺化
      • TensorBoard 是 TensorFlow 的一組 Web 應用,用來監控 TensorFlow 執行過程 或 視覺化Computation Graph。
      • TensorBoard 目前支援 5 種視覺化:標量(scalars)、圖片(images)、音訊(audio)、直方圖(histograms)和計算圖(Computation Graph)。TensorBoard 的 Events Dashboard 可以用來持續地監控執行時的關鍵指標,比如 損失(loss)、學習速率(learning rate)或是 驗證集上的準確率(accuracy)等等。
  • TensorFlow 的安裝

    • CPU版本

      安裝較慢,最好指定映象源,並在帶有 numpy 等庫的虛擬環境中安裝

      pip install tensorflow -i https://mirrors.aliyun.com/pypi/simple
      
    • GPU版本
      pip install tensorflow-gpu -i https://mirrors.aliyun.com/pypi/simple
      
    • CPU與GPU的對比

      CPU:核芯的數量更少;但是每一個核芯的速度更快,效能更強;更適用於處理連續性(sequential)任務。

      GPU:核芯的數量更多;但是每一個核芯的處理速度較慢;更適用於並行(parallel)任務。

    • 推薦下載 whl 檔案

      下載地址:TensorFlow