TensorFlow版本變遷與tf1.0架構

目錄

TensorFlow1.0

1.1XLA:Accelerate linear algebra

1.2 更高級別API

1.3支持docker鏡像

Docker

TensorFlow Docker 要求

2、tensorflow1.0架構


TensorFlow1.0

1.1XLA:Accelerate linear algebra

TensorFlow 的設計目標和核心優勢之一是其靈活性。TensorFlow 被設計成一個靈活和可擴展的系統,可用於定義任意數據流圖(data flow graph)並使用異構計算設備(如 CPU 和 GPU)以分佈式方式有效地執行它們。

但是靈活性通常與性能不能兼得。雖然 TensorFlow 旨在定義任何種類的數據流圖,但是由於 TensorFlow 分別優化每個 運算/指令(op),所以使所有圖都高效地執行是有挑戰性的。當一個具有高效實現的運算存在,或者每個運算都是相對重量級的操作(heavyweight operation)時,一切都很好;否則,用戶仍然可以從低級 op 中組合 op,但是這種組合不能保證以最有效的方式運行。

這就是我們開發了 XLA(Accelerated Linear Algebra/加速線性代數)的原因,它是一個用於 TensorFlow 的編譯器。XLA 使用 JIT 編譯技術來分析用戶在運行時(runtime)創建的 TensorFlow 圖,專門用於實際運行時的維度和類型,它將多個 op 融合在一起併爲它們形成高效的本地機器代碼——能用於 CPU、GPU 和自定義加速器(例如谷歌的 TPU)。

1.2 更高級別API

關於高級別的API,這裏只是簡單知道一下概念就ok,後續的博客將具體介紹。

  • tf.layers

tf.layers中分爲類和函數,我們這裏主要講函數,因爲類和函數的用法大同小異。


Input(…): 用於實例化一個輸入 Tensor,作爲神經網絡的輸入。 average_pooling1d(…): 一維平均池化層
average_pooling2d(…): 二維平均池化層 average_pooling3d(…): 三維平均池化層
batch_normalization(…): 批量標準化層 conv1d(…): 一維卷積層 conv2d(…): 二維卷積層
conv2d_transpose(…): 二維反捲積層 conv3d(…): 三維卷積層 conv3d_transpose(…):
三維反捲積層 dense(…): 全連接層 dropout(…): Dropout層 flatten(…): Flatten層,即把一個
Tensor 展平 max_pooling1d(…): 一維最大池化層 max_pooling2d(…): 二維最大池化層
max_pooling3d(…): 三維最大池化層 separable_conv2d(…): 二維深度可分離卷積層


看上面這個函數,可以發現,這個模塊主要覆蓋的區域是全連接和卷積等等的基本操作。但是這些操作已經非常足夠了。我們可以根據自己的需要,在可以使用這裏的API的時候使用,來簡化我們的代碼。

  • tf.metrics

Tensorflow內置的評估指標算子。

  • tf.losses

用於計算各種損失函數
官方文檔:https://tensorflow.google.cn/api_docs/python/tf/keras/losses

  • tf.keras

這是一個很方便上手的API,2.0版本對其進行進一步升級,後面會具體講。


1.3支持docker鏡像

 

通俗來說:部署服務更加簡潔

Docker

Docker 使用容器創建虛擬環境,以便將 TensorFlow 安裝結果與系統的其餘部分隔離開來。TensorFlow 程序在此虛擬環境中運行,該環境能夠與其主機共享資源(訪問目錄、使用 GPU、連接到互聯網等)。我們會針對每個版本測試 TensorFlow Docker 映像。

Docker 是在 Linux 上啓用 TensorFlow GPU 支持的最簡單方法,因爲只需在主機上安裝 NVIDIA® GPU 驅動程序,而不必安裝 NVIDIA® CUDA® 工具包。

TensorFlow Docker 要求

在本地主機上安裝 Docker。

要在 Linux 上啓用 GPU 支持,請安裝 NVIDIA Docker 支持。
請通過 docker -v 檢查 Docker 版本。對於 19.03 之前的版本,您需要使用 nvidia-docker2 和 --runtime=nvidia 標記;對於 19.03 及之後的版本,您將需要使用 nvidia-container-toolkit 軟件包和 --gpus all 標記。這兩個選項都記錄在上面鏈接的網頁上。

2、tensorflow1.0架構

高層封裝

Keras
Estimator
datasets
layers
distrbution engine
 

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