深度學習框架:TensorFlow(簡介)

 

目前最主流的深度框架有 TensorFlow、Pytorch 以及 Keras。其中:python

  • TensorFlow 是被使用最普遍的一個深度學習框架,已普遍的運用在如,圖像識別、圖片分類等領域。
  • PyTorch 是一個開源的 Python 機器學習庫,基於 Torch 開發,底層由 C++實現,也被普遍使用在人工智能領域;
  • Keras 則是 Python 編寫的高級神經網絡 API,它能夠將 TensorFlow、CNTK,或是 Theano 做爲後端程序來用,它的代碼簡單、易讀。

 

 

 

TensorFlow的核心概念後端

 

 

  1. 張量(Tensor ):TensorFlow中的基本數據對象,做爲圖中的節點(Operation,提供圖當中執行的操做)的輸入輸出,在節點之間流動(Flow),所以得名。能夠被理解成一個多維數組,TensorFlow 的張量與 Numpy 的數組比較類似。其中的每一個元素都具備相同的數據類型,且該數據類型必定是已知的(使用 tensor 的 dtpye 屬性查看 tensor 的數據類型)。張量是有形狀的(經過 tensor 的 shape 屬性查看 tensor 的形狀),關於 tensor 的形狀有兩個術語:秩、軸(維度)。 
    • :張量維度的數目。
    • (維度):軸(維度)就是咱們計算機科學中數組的維度。例如,向量的維度就是 1,矩陣的維度就是 2。 

張量的階api

 

2. 計算圖:是一個有向圖,又能夠叫做數據流圖(data flow graphs),是TensorFlow將計算表示爲指令之間的依賴關係的一種表示法。它是 TensorFlow 操做對象(tf.Operation)與張量對象(tf.Tensor)的集合。操做對象是圖中的節點,是圖中的計算單元,張量對象是圖的邊,是在節點之間流動的數據。TensorFlow 的 3 種計算圖,分別是:數組

    • 靜態計算圖:優勢是高效,在分佈式訓練、性能優化和生產部署方面都有優點。定義好以後能夠反覆執行。
    • 動態計算圖:TensorFlow 2 中 Eager Execution 模型就是採用動態計算圖方式,大大地提升了代碼的簡潔性,且很是易於調試。
    • Autograph:兼顧代碼的可讀性與運行的高性能,TensorFlow 2 中提出了 Autograph只要在 Python 的函數前加上@tf.function 標籤,就能夠將 Python 的函數轉換爲靜態計算圖。

 

 3.會話:TensorFlow跨一個或者過個本地或遠程設備運行數據流圖的機制。瀏覽器

 

 

TensorFlow 2 中幾個比較經常使用的 API性能優化

 

  • tf.compact
  • tf.data
  • tf.image
  • tf.nn
  • tf.keras
  • tf.lite
  • tf.math

 

高效的實驗分析助手-TensorBoard網絡

 

 能夠經過 Web 頁面提供查看細節與過程的功能,它將模型的細節與過程,經過瀏覽器可視化的方式進行展示,幫助使用者感知各個參數與指標的變化,把握訓練趨勢。框架

 

 

參考:機器學習

 

1. TensorFlow 2.0的API詳解:https://tensorflow.google.cn/versions/r2.0/api_docs/python/tf分佈式

2. 可視化TensorFlow運行:

TensorFlow是一個採用數據流圖,用於數值計算的開源框架。節點在圖中表示數學操做,線則表示在節點互相聯繫的多維數據數組,即張量

 

 

3.Python安裝TensorFlow常見報錯:

W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory
I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

 

I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
  • 問題分析與解決方式:當前的CPU能夠支持未編譯爲二進制的指令AVX2 ;要想消除該提示,須要在代碼中添加兩行代碼:(用於設置TensorFlow的日誌級別的) 
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
View Code
相關文章
相關標籤/搜索