人工智能AI培訓_TensorFlow 2.0 簡介
1、TensorFlow簡介
TensorFlow是目前最為流行的深度學習框架,是人工智能領域第一主要工具,迭代版本共有0.1,1.0,和2.0三個版本,本章主要針對最新的2.0版本進行講解和學習。它是一個用于機器學習和深度學習的端到端開源平臺。
15年9月發布0.1版本;17年2月發布1.0版本;19年3月發布2.0版本。15年同類型框架:
Ski-learn: Machine Learning, 不支持GPU;
Caffe: 第一個面向深度學習的框架,但不支持自動求導;
Keras: 只提供API接口;
Torch: Lua語言;
Teano: 開發調試難。
當下同類型框架:
Caffe: Facebook
Caffe2: PyTorch(最新版本的Caffe2 作為PyTorch的C++后端已經并入到PyTorch里去)。
Torch--PyTorch。PyTorch當下非常流行的框架,集合了Torch和Caffe2,Facebook主推。
Teano: Google推出 Tensorflow1.0 ----Tensorflow2.0。
2、V1.0與PyTorch1.0對比
與Tensorflow1.0版本同一時期PyTorch1.0版本發布。
Tensorflow1.0與PyTorch1.0版本的對比:
?
3、V1.0的弊端
TensorFlow1.0里在創建了Tensor之后,不能直接返回結果。 而是需要創建session會話機制,包含graph的概念在里面,而且需要session.run 才能運行。 這種風格更像是一種硬件編程語言VHDL。
與PyTorch等一些簡單的框架相比,TensorFlow1.0 徒增了以上概念,用戶使用起來非常的困擾。
TensorFlow1.0調試困難,API混亂,入門困難。入了門使用起來依舊困難,導致很多研究人員轉向了PyTorch。
4、V2.0 coming
TF+Keras:
較大的特性(Easy to use): 去掉了graph 和session機制。變的像Python,PyTorch一樣所見即所得。
主要改進點:
Session.run:圖和會話機制;
Tf.control_dependencies:實時控制的概念;
Tf.global_variables_initializer;
Tf.cond:分支控制的概念原本可以通過python中if,else等語句來完成;
Tf.while_loop 。
對比發現跟PyTorch的風格很相似:
import TensorFlow as tf
a=tf.constant(1.)
b=tf.constant(3.)
c=tf.add(a,b)
print(float(c))
TensorFlow1.0會將大量的時間花費在這些冗余的概念編寫上,而忽略對深度學習算法的研究。諸如以下所列出的抽象的概念將一去不復返。
計算圖Graph
會話Session
變量管理Variable Scope與共享reuse
Define-and-run
本課程假設你對TensorFlow一無所知,即使知道一些TensorFlow1.0中的概念,但是在2.0中基本上用不到。因此今后不需要我們對TensorFlow1.0再進行學習和了解。
5、TensorFlow2.0簡介
TensorFlow2.0包括了TensorFlow核心庫,JavaScript, Lite, Extended。構成了TensorFlow的一個完整的生態系統。
TensorFlow核心庫:
使初學者和專家可以輕松的創建機器學習模型。
TensorFlow的高級API基于Keras API標準,用于定義和訓練神經網絡。
Keras通過用戶友好的API實現快速原型設計,最先進的研究和生產。
5.1、JavaScript
TensorFlow.js:是一個用于在JavaScript中開發和訓練ML模型,并在瀏覽器或Node.js上部署的庫。
運行現有模型:使用官方TensorFlow.js模型或者轉換Python模型。
重新訓練現有模型:使用Transfer Learning自定義模型。
使用JavaScript開發ML:使用靈活直觀的API直接在JavaScript中構建和訓練模型,TensorFlow.js。
5.2、TensorFlow Lite
TensorFlow Lite:是一個用于設備推理的開源深度學習框架。它可以滿足在移動和物聯網設備上部署機器學習模型。
選擇一個模型:選擇新模型或者重新訓練現有模型
兌換:使用TensorFlow Lite轉換器將TensorFlow模型轉換為壓縮的平緩沖區
部署:獲取壓縮的.tflite文件并將其加載到移動或嵌入式設備中。
優化:通過將32位浮點數轉換為更高效的8位整數或在GPU上運行來進行量化。
5.3、TensorFlow Extended
TensorFlow Extended (TFX):是用于部署生產ML管道的端到端平臺,當訓練好的模型準備從研究轉移到生產時,使用TFX創建和管理生產管道。
TensorFlow數據驗證:TFDV可幫助開發人員大規模了解,驗證和監控其ML數據。
TensorFlow變換:將數據預處理成合適的格式。
TensorFlow模型分析:TFMA使開發人員能夠計算和可視化模型的評估指標。
TensorFlow服務:輕松部署新算法和實驗,同時保持相同的服務器架構和API。
6、為什么使用TensorFlow
TensorFlow最為當下最流行的框架主要因為一下幾個優勢:
支持GPU加速
支持自動求導
深度學習API
7、使用TensorFlow
7.1、GPU加速
支持GPU加速:對矩陣的加減乘除有一個并行的運算加速。
?
7.2、自動求導
TensorFlow框架的另一個優勢就是自動求導:
?
7.3、深度學習API
TensorFlow框架提供大量深度學習API:
tf.matmul
tf.nn.conv2d
tf.nn.relu
tf.nn.maxpool2d
tf.nn.sigmoid
tf.nn.softmax
layers.Dense
layers.Conv2D
layers.LSTM
layers.ReLU
layers.MaxPool2D
本實驗利用網上已有的北京房價數據集預測了北京的房價,實現了TensorFlow的線性回歸應用。