深度學習應用開發 課件 第2章 TensorFlow2.0介紹_第1頁
深度學習應用開發 課件 第2章 TensorFlow2.0介紹_第2頁
深度學習應用開發 課件 第2章 TensorFlow2.0介紹_第3頁
深度學習應用開發 課件 第2章 TensorFlow2.0介紹_第4頁
深度學習應用開發 課件 第2章 TensorFlow2.0介紹_第5頁
已閱讀5頁,還剩84頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

目錄1TensorFlow概述01任務TensorFlow的優點02任務TensorFlow的幾個基本概念03任務1初識TensorFlow1TensorFlow概述TensorFlow是Google開源的基于數據流圖的、面向于深度學習算法的科學計算庫,命名來源于本身的運行原理,Tensor(張量)表示N維數組,Flow(流)表示基于數據流圖的計算。內部數據保存在張量(Tensor)對象上,所有的運算操作(Operation,OP)基于張量對象進行。在深度學習領域應用廣泛,如深度神經網絡、卷積神經網絡和遞歸神經網絡已被應用計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學等領域并獲取了極好的效果。2TensorFlow的優點2TensorFlow的優點真正的可移植性

引入各種計算設備的支持包括CPU/GPU/TPU,以及能夠很好地運行在移動端,如安卓設備、ios、樹莓派等等多語言支持

Tensorflow有一個合理的c++使用界面,也有一個易用的python使用界面來構建和執行你的graphs,你可以直接寫python/c++程序高度的靈活性與效率

TensorFlow是一個采用數據流圖(dataflowgraphs),用于數值計算的開源軟件庫能夠靈活進行組裝圖,執行圖。隨著開發的進展,Tensorflow的效率不斷在提高TensorFlow由谷歌提供支持,谷歌投入了大量精力開發TensorFlow,它希望TensorFlow成為機器學習研究人員和開發人員的通用語言3TensorFlow的幾個基本概念3TensorFlow的幾個基本概念計算圖(graphs):描述了計算過程,Tensorflow用圖來表示計算過程。張量(tensor):Tensorflow使用tensor表示數據,每一個tensor是一個多維的數組。變量(variable):變量(Variable)是特殊的張量(Tensor),它的值可以是一個任何類型和形狀的張量,變量存儲的是持久張量,當訓練模型時,用變量來存儲和更新參數。占位符:輸入變量的載體。可以理解為定義函數時的參數。操作:圖中的節點為op,一個op獲得/輸入0個或者多個Tensor,執行并計算,產生0個或多個Tensor。會話(session):

tensorflow的運行需要在會話里面運行。3TensorFlow的幾個基本概念(1)計算圖(graphs):圖是TensorFlow用于表達計算任務的一個核心概念,Tensorflow用圖來表示計算過程,graph被定義一些操作和張量的集合3TensorFlow的幾個基本概念(2)張量(tensor)TensorFlow中,張量是計算圖上的數據載體,用張量統一表示所有的數據,張量在計算圖的節點之間傳遞;張量主要有三種類型:常量tf.constant()、變量tf.Variable()、占位符tf.palceholder()張量可以看做是n維的數組,數組的維數即為張量的階數:階數學實例Python例子0純量(只有大小)s=4831向量(大小和方向)v=[1.1,2.2,3.3]2矩陣(數據表)m=[[1,2,3],[4,5,6],[7,8,9]]33階張量(數據立體)t=[[[2],[4],[6]],[[8],[10],[12]],[[14],[16],[18]]]nn階(多維數組)....

3TensorFlow的幾個基本概念(3)變量(variable)1、變量是計算圖中的一種有狀態節點,用于在多次執行同一計算圖時存儲并更新指定參數,對應了機器學習或深度學習算法中的模型參數;作為有狀態節點,其輸出由輸入、節點操作、節點內部已保存的狀態值共同作用;2、創建變量的方法有三種:使用tf.Variable()函數直接定義使用TensorFlow內置函數創建使用其他變量初始值來定義新變量3、調用語法:tf.Variable(dtype,shape=None,name=None)dtype:數據類型shape:數據維度name:張量名稱

3TensorFlow的幾個基本概念(4)占位符(placeholder)用于聲明一個張量的數據格式,告訴系統這里會有一個這種格式的張量,但是還沒有給定具體數值,具體的數值要在正式運行的時候填充。占位變量是一種TensorFlow用來解決讀取大量訓練數據問題的機制,它允許你現在不用給它賦值,隨著訓練的開始,再把訓練數據傳送給訓練網絡學習。調用語法:tf.placeholder(dtype,shape=None,name=None)dtype:數據類型shape:數據維度name:張量名稱

3TensorFlow的幾個基本概念(5)操作(operation):簡稱op,是TensorFlow圖中的節點,它的輸入和輸出都是Tensor。作用都是完成各種操作,包括算數操作、矩陣操作、神經網絡構建操作等。(6)會話(session):Tensorflow會話,在Tensorflow中是計算圖的具體執行者,與圖進行實際的交互。ThankYOU!目錄1TensorFlow數學概念01任務矩陣的數學運算02任務TensorFlow數學運算03任務1TensorFlow數學概念1TensorFlow數學概念數學是任何機器學習算法的核心,使用TensorFlow創建應用程序之前,了解一些TensorFlow中基本的數學概念是很必要的,理解數學核心概念,有助于定義機器學習算法的解決方案。TensorFlow中經常出現的數學概念有:標量(scalar)

一個單獨的數向量(vector)

一列數,即一維數組矩陣(matrix)

二維數組張量(tensor)

多維數組1TensorFlow數學概念(1)標量標量(scalar)

,也稱純量,是只有大小,沒有方向的量,標量也稱為0維張量。比如:一個常數,只有數值大小,沒有方向。在物理學中,標量是在坐標變換的情況下,保持不變的物理量。1TensorFlow數學概念(2)向量向量(vector),也稱矢量,是既有大小,又有方向的量。向量是一列數,即一維數組,向量也稱為一維張量。例如,在物理學中,速度就是一個向量,1TensorFlow數學概念(3)矩陣矩陣(matrix)是一個二維數組,數組元素以行和列的格式排列。矩陣的大小由行長度和列長度定義。矩陣也稱為二維張量。由m×n個數aij排成的m行n列的數表稱為m行n列的矩陣,簡稱m×n矩陣。記作:1TensorFlow數學概念(4)張量張量(tensor)

是多維數組,標量、矢量、矩陣都可以用張量表示,只是維度不同。2矩陣的數學運算2矩陣的數學運算矩陣的數學運算包括:矩陣加法、矩陣減法、矩陣乘法、矩陣轉置等運算。(1)矩陣加法兩個矩陣具有相同形狀的矩陣可以相加,相加表示將對應位置的元素相加,生成的矩陣與原矩陣形狀相同。例如:2矩陣的數學運算(2)矩陣減法矩陣減法與矩陣加法操作類似例如:2矩陣的數學運算(3)矩陣乘法假設矩陣A(形狀mxn)與B(形狀pxq)相乘,必須n=q,即A的列數必須與B的行數相同,得到的結果是C(形狀mxq),其中元素的算法如下:2矩陣的數學運算(4)矩陣轉置矩陣轉置是指把一個矩陣的列轉置為行得到一個新矩陣,矩陣A的轉置可以表示為:3TensorFlow實現數學運算3TensorFlow實現數學運算TensorFlow中的數學運算包括加、減、乘、除、冪次方、對數、矩陣相乘等運算。(1)加減乘除法加、減、乘、除是最基本的數學運算,分別通過tf.add()、tf.subtract()、tf.multiply()、tf.divide()函數實現,TensorFlow支持+、-、*、/運算符,一般推薦直接使用運算符來完成加、減、乘、除運算。整除、除法取余也是常見的運算之一,分別通過//和%運算符實現。示例:3TensorFlow實現數學運算(2)冪次方函數tf.pow(x,a)可以完成x的a次方運算,也可以使用x**a完成,示例:3TensorFlow實現數學運算(2)冪次方設置指數為1/a的形式,既可以實現x開a次方根的運算示例:3TensorFlow實現數學運算(2)冪次方對于一些常見的平方和平方根運算,可以使用tf.square()和tf.sqrt()實現示例:3TensorFlow實現數學運算(2)冪次方對于tf.sqrt(),為實現開二次根運算。這里開二次根的運算,相當于指數為0.5,是一個小數,所以底數也應該轉換為小數。示例:3TensorFlow實現數學運算(3)矩陣乘法運算通過tf.matmul(a,b)函數實現矩陣相乘。矩陣A和B能夠矩陣相乘的條件是,A的倒數第一個維度長度和B的倒數第二個維度長度必須相等。示例:ThankYOU!目錄1數值型01任務字符串型02任務布爾型03任務1數值型1數值型數值型數據是TensorFlow中最常見的數據類型,標量、向量、矩陣、張量等都屬于數值型。(1)標量標量的創建可以使用python語言創建,也可以使用TensorFlow框架創建,TensorFlow使用tf.constant()函數創建標量。示例:1數值型(2)向量向量是n個實數的有序集合,如[1,2.,3.3]是維度數為1,shape

=(3,)的向量,TensorFlow使用tf.constant()函數創建向量,示例:1數值型(3)矩陣矩陣是n行m列實數的有序集合。維度為2,shape為(n,m),TensorFlow使用tf.constant()函數創建矩陣,示例:1數值型(4)張量所有維度大于2的數組統稱為張量。張量的每個維度也做軸(Axis),一般維度代表了具體的含義,例如shape為(2,32,32,3)的張量一共有4維,如果表示圖片的數據,2代表2張圖片,32代表了高、寬都是32,3代表了RGB共3個通道。TensorFlow使用tf.constant()函數創建張量,示例:2字符串型2字符串型除了豐富的數值類型外,TensorFlow還支持字符串(String)類型的數據,TensorFlow通過tf.constant()函數傳入字符串對象即可創建字符串類型的張量,在tf.string模塊中,提供了許多處理字符串數據的函數,如:大寫化upper(),小寫化lower(),拼接join(),長度length(),切分split():3布爾型2布爾型為了方便表達比較運算操作的結果,TensorFlow還支持布爾類型(bool)的張量。布爾類型的張量只需要傳入Python語言的布爾類型數據,轉換成TensorFlow內部布爾型即可:

ThankYOU!目錄1標量的應用01任務向量的應用02任務矩陣的應用03任務多維張量的應用04任務1標量的應用1標量的應用在TensorFlow中,每種維度下的張量都有典型的應用,不同維度的張量都具有不同的物理意義和用途。標量最容易理解,它就是一個簡單的數字,維度數為0,shape

=()。標量的典型用途之一是誤差值的表示、各種測量指標的表示,比如準確度(Accuracy)、精度(Precision)和召回率(Recall)等。2向量的應用2向量的應用向量是一種常見的數據載體,如在全連接層和卷積神經網絡層中,偏置張量??就使用向量來表示。如圖所示,每個全連接層的輸出節點都添加了一個偏置值,把所有輸出節點的偏置表示成向量形式:??=[??1,??2]??。3矩陣的應用3矩陣的應用矩陣也是非常常見的張量類型,比如全連接層的批量輸入??=[??,??????],其中??表示輸入樣本的個數,即batchsize,??????表示輸入特征的長度。比如特征長度為4,一共包含2個樣本的輸入可以表示為矩陣:x=tf.random.normal([2,4])4多維張量的應用4多維張量的應用多維張量應用最多的是四維張量,對于含有RGB3個通道的彩色圖片,每張圖片包含了h行w列像素點,每個點需要3個數值表示RGB通道的顏色強度,因此一張圖片的張量的shape可以表示為(h,w,3),故b張圖片的張量的shape可表示為[b,h,w,3]。ThankYOU!目錄1案例目標01任務環境配置02任務案例實施04任務案例分析02任務03任務1案例目標案例目標掌握tensorflow包的調用方法;掌握使用定義占位符和變量的方法;掌握計算圖的定義方法;掌握會話的創建方法;了解損失函數和優化過程。12案例分析2案例分析案例分析:x、y是二維矩陣,x=[[1.0,3.0],[3.2,4]],y=[[6.0,3.0],[5.2,43.]],運算公式x*W+b=y,求W和b的最優值。3環境配置3環境配置Windows10jupyternotebooktensorflow2.04案例實施4案例實施1、導入庫開發環境安裝的是TensorFlow2.0版本,為了與TensorFlow1.0兼容,需要輸入如下代碼導入tensorflow包:4案例實施2、定義占位符和變量先給輸入數據定義占位符,在訓練優化函數的過程中輸入數據4案例實施3、定義計算圖和損失函數,使用梯度下降法優化4案例實施4、啟動會話,并初始化全局變量,并為x,y設置固定的值4案例實施5、通過while循環進行迭代訓練,并輸出最終求出的W和b的值ThankYOU!目錄1案例目標01任務環境配置02任務案例實施04任務案例分析02任務03任

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論