人工智能AI培訓_TensorFlow入門基礎
發布時間:
2019-05-21 14:25:02
人工智能AI培訓_TensorFlow入門基礎
1.TensorFlow概述
TensorFlow是谷歌開源的第二代用于數字計算的軟件庫。它可以很好的支持深度學習的各種算法,但它的應用不局限于深度學習,可以支持多種計算平臺,系統穩定性較高。
TensorFlow擁有多層級結構,可部署于各類服務器、PC終端和網頁并支持GPU和TPU高性能數值計算,被廣泛應用于谷歌內部的產品開發和各領域的科學研究。
TensorFlow由谷歌人工智能團隊谷歌大腦(Google Brain)開發和維護,擁有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在內的多個項目以及各類應用程序接口(Application Programming Interface, API)
2.TensorFlow特點
靈活可擴展:TensorFlow在不同計算機上運行:小到智能手機,大到計算機集群都能擴展,可以立刻生成你的訓練模型。
多語言:支持C++,Python語言。
GPU:雖然TensorFlow在大型計算機集群的并行處理中,運行性能略低于CNTK,但是在個人機器使用場景中,會根據機器配置自動選擇CPU或GPU,更加友好與智能。
多平臺:TensorFlow生成的模型,可以滿足更多使用者的需求。適用于Mac,Linux,Windows系統上開發。滿足開箱即用的模型使用概念。
運算能力強:利用了DAG圖創建工作流圖,優化了計算過程。
分布式:
目前原生支持的分布式深度學習框架不多,只有 TensorFlow、CNTK、DeepLearning4J、MXNet 等。在單 GPU 的條件下,絕大多數深度學習框架都依賴于 cuDNN,因此只要硬件計算能力或者內存分配差異不大,最終訓練速度不會相差太大。
但是對于大規模深度學習來說,巨大的數據量使得單機很難在有限的時間完成訓練。而TensorFlow支持分布式訓練。
TensorFlow 的設計對不同設備間的通信優化得不是很好,其單機的 reduction 只能用 CPU 處理,分布式的通信使用基于 socket 的 RPC,而不是速度更快的 RDMA,所以其分布式性能可能還沒有達到最優。
3.TensorFlow應用場景
- 自動駕駛小車
- 生成音樂
- 圖像識別
- 語音識別
- 語言模型
- 人體行為識別
- 定理證明
- 拿來玩馬里奧賽車…
4.TensorFlow組成
TensorFlow是由Tensor+Flow組成,Tensor即為張量,Flow為流動,名字的含義就是張量在流動
5.TensorFlow計算過程
TensorFlow是一個通過計算圖的形式來表述計算的編程系統,是以張量(tensor)在計算圖(graph)上流動(flow)的方式實現和執行機器學習/深度學習算法的框架。計算過程如下:
- 構建計算圖:可以理解為前端工作,定義一個操作的集合,根據數據流,組織為有向無環圖。操作包含:初始化、各種加乘、讀取、賦值、網絡前向反饋、計算loss、梯度反向傳播等等。
- 執行:可以理解為后端。在一個指定的gpu或是cpu上,通過Session.run()調度,運行計算圖(C++)。一般是循環反復執行。
- 使用有向圖的節點和邊共同描述數學計算。graph中的nodes代表數學操作,也可以表示數據輸入輸出的端點。邊表示節點之間的關系,傳遞操作之間互相使用的多位數組(tensors),tensor在graph中流動——這也就是TensorFlow名字的由來。一旦節點相連的邊傳來了數據流,節點就被分配到計算設備上異步的(節點間)、并行的(節點內)執行。
6.TensorFlow架構
TensorFlow的內核引擎使用C++實現的,效率是很高的。TensorFlow的內核封裝實現了NN、CNN等基本機器學習算法。
前端應用層支持Python或C++,一般用Python(AI領域第一編程語言)。
在應用層,如果使用了其他的Python耗時操作(如數據預處理等),可能效率會比較低,但這不是TensorFlow造成的。
7.TensorFlow安裝
推薦使用pycharm + anaconda,安裝過程大家可以自行查詢
8.TensorFlow入門例子
'''
1.引入tensorflow
2.定義常量、變量
3.創建Session會話
4.調用Session中的run()方法來運行,得出結果
5.關閉seession
'''
#引入tensorflow
import tensorflow as tf
#定義常量
hello = tf.constant("hello,tensorflow")
a = tf.constant(10)
b = tf.constant(20)
with tf.Session() as sess:
print(sess.run(hello))
print(sess.run(a + b))
上一篇:
PS教程_PS文字排版設計教學
下一篇:
使用filter-policy控制路由可達性