目前最主流的深度框架有 TensorFlow、Pytorch 以及 Keras,其中:
-
TensorFlow 是被使用最廣泛的一個深度學習框架,已廣泛的運用在如,影像識別、圖片分類等領域,
-
PyTorch 是一個開源的 Python 機器學習庫,基于 Torch 開發,底層由 C++實作,也被廣泛使用在人工智能領域;
-
Keras 則是 Python 撰寫的高級神經網路 API,它可以將 TensorFlow、CNTK,或是 Theano 作為后端程式來用,它的代碼簡單、易讀,
TensorFlow的核心概念
- 張量(Tensor ):TensorFlow中的基本資料物件,作為圖中的節點(Operation,提供圖當中執行的操作)的輸入輸出,在節點之間流動(Flow),因此得名,可以被理解成一個多維陣列,TensorFlow 的張量與 Numpy 的陣列比較相似,其中的每個元素都具有相同的資料型別,且該資料型別一定是已知的(使用 tensor 的 dtpye 屬性查看 tensor 的資料型別),張量是有形狀的(通過 tensor 的 shape 屬性查看 tensor 的形狀),關于 tensor 的形狀有兩個術語:秩、軸(維度),
- 秩:張量維度的數目,
- 軸(維度):軸(維度)就是我們計算機科學中陣列的維度,例如,向量的維度就是 1,矩陣的維度就是 2,
張量的階

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.
- 問題分析與解決方式:GPU的版本與TensorFlow的版本不一致;GPU的版本與TensorFlow的對應關系參見:https://tensorflow.google.cn/install/source#gpu
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/261622.html
標籤:Python
下一篇:Python中的組合資料型別
