深度學習實踐(一)—tensorflow之概述
阿新 • • 發佈:2018-12-03
內容預覽
-
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 深度學習與機器學習的區別
-
特徵提取方面
- 機器學習的特徵工程要靠手動完成的,這需要大量的專業領域的知識
- 深度學習由多層組成,它通常將更簡單的模型組合在一起,將資料一層一層地傳遞來構建複雜的模型。通過大量資料訓練自動得出模型,不需要人工特徵提取環節。
- 深度學習演算法試圖從資料中提取高階特徵,這是深度學習的一個非常獨特的部分。因此深度學習中不再為每個問題開發新特徵提取器,這樣深度學習更適用在難提取特徵的影象、語音、自然語言處理領域。
-
資料量和計算效能要求
深度學習需要的執行時間遠大於機器學習,深度學習引數往往很龐大,需要通過大量資料的多次優化來訓練引數。
因此:
- 深度學習需要大量的訓練資料集
- 訓練深度神經網路需要大量的算力
可能要花費數天、甚至數週的時間,才能使用數百萬張影象的資料集訓練出一個深度網路。
所以深度學習通常:
- 需要強大的GPU伺服器來進行計算
- 全面管理的分散式訓練與預測服務——比如 谷歌 TensorFlow 雲機器學習平臺
-
演算法代表
- 機器學習
- 樸素貝葉斯、決策樹等
- 深度學習
- 神經網路
- 機器學習
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 好 中等 李沐和陳天奇等 - 最常用的框架當數 TensorFlow 和 Pytorch , Caffe 和 Caffe2 次之
- PyTorch , Torch 更適用於學術研究,TensorFlow,Caffe,Caffe2 更適用於工業界的生產環境部署
- Caffe 適用於處理靜態影象;Torch 和 PyTorch 更適用於動態影象;TensorFlow 在兩種情況下都很實用。
- 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
-