TensorFlow2-神经网络基础
生活随笔
收集整理的這篇文章主要介紹了
TensorFlow2-神经网络基础
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
TensorFlow2神經(jīng)網(wǎng)絡基礎
文章目錄
- TensorFlow2神經(jīng)網(wǎng)絡基礎
- 數(shù)據(jù)加載
- 全連接神經(jīng)網(wǎng)絡
- 誤差計算
- 補充說明
數(shù)據(jù)加載
- TensorFlow依托Keras,預先封裝了很多小型的數(shù)據(jù)集,可以通過接口下載并使用該數(shù)據(jù)集。包含boston_housing(波士頓房價回歸預測數(shù)據(jù)集)、cifar10(Cifar圖像分類數(shù)據(jù)集共10大類)、cifar100(Cifar圖像分類數(shù)據(jù)集共100小類)、mnist(手寫數(shù)字識別數(shù)據(jù)集)、fashion_mnist(常用品分類數(shù)據(jù)集)、imdb(電影情感評論文本分類數(shù)據(jù)集)。
- 調(diào)用load_data方法TensorFlow會自動從Google下載暫存的數(shù)據(jù)集到本地(第一次運行,后面不再下載,需要科學上網(wǎng)),然后以numpy格式返回訓練集和測試集的x和y。
- tf.data.Dataset
- 在TensorFlow中,data模塊中的Dataset是一個很重要的對象,作為數(shù)據(jù)加載的接口。
- Dataset對象的form_tensor_slices方法可以很方便地從numpy矩陣等加載數(shù)據(jù)并進行預處理(注意Dataset對象的使用必須先取得對應的迭代器)。
- Dataset對象的shuffle方法可以很方便地打散數(shù)據(jù)(特征和標簽同步打散),一般只需要一個buffer_size參數(shù),該數(shù)值越大,混亂程度越大。
- Dataset對象的map方法可以很方便地進行數(shù)據(jù)預處理或者數(shù)據(jù)增廣的操作,其功能類似于Python的map方法,傳入一個函數(shù)對象,對每個數(shù)據(jù)調(diào)用該函數(shù)進行處理。
- Dataset對象的batch方法可以直接設定每次取出數(shù)據(jù)的batch_size(默認為1),這是最核心的功能。
- Dataset對象的repeat方法可以指定迭代器迭代的次數(shù)(在Python中對可迭代對象一旦取完就會停止取數(shù)據(jù),但是訓練往往需要很多輪次),默認不指定repeat的參數(shù)則會一直迭代下去。
全連接神經(jīng)網(wǎng)絡
- 說明
- 經(jīng)典的神經(jīng)網(wǎng)絡結(jié)構(gòu)是由多個隱藏層的神經(jīng)元級聯(lián)形成的全連接神經(jīng)網(wǎng)絡,后來各類針對不同任務的神經(jīng)網(wǎng)絡結(jié)構(gòu)的設計都是基于全連接神經(jīng)網(wǎng)絡的思路,如計算機視覺的卷積神經(jīng)網(wǎng)絡、自然語言處理的循環(huán)神經(jīng)網(wǎng)絡等。對于全連接神經(jīng)元的神經(jīng)網(wǎng)絡,由于結(jié)構(gòu)固定,已經(jīng)做了一定程度的封裝。
- tf.keras.layers.Dense(units)
- 可以創(chuàng)建包含參數(shù)w和偏置b的一層全連接層網(wǎng)絡,units表示神經(jīng)元的數(shù)目。注意在創(chuàng)建Dense對象后,weights參數(shù)是默認沒有創(chuàng)建的,需要通過build方法創(chuàng)建,使用net實例進行運算時會自動檢查參數(shù),若沒有創(chuàng)建,則依據(jù)參與運算的數(shù)據(jù)自動創(chuàng)建weights。
- tf.keras.Sequential
- Sequential是用于線性堆疊多層網(wǎng)絡結(jié)構(gòu)的一個基礎容器,其會自動將輸入的張量流過多層得到輸出。
誤差計算
- MSE均方差
- 計算式為loss?=1N∑(y?out)2\operatorname{loss}=\frac{1}{N} \sum(y-o u t)^{2}loss=N1?∑(y?out)2,在TensorFlow中對這類簡單的誤差函數(shù)(損失函數(shù))進行了簡單封裝。MSE這類損失函數(shù)一般都要除以一個樣本量N,以保證求得的梯度值不會太大。
- CrossEntropy交叉熵
- 計算式為H(p,q)=?∑p(x)log?q(x)H(p, q)=-\sum p(x) \log q(x)H(p,q)=?∑p(x)logq(x),預測的q分布盡量逼近于真實的p分布,此時交叉熵函數(shù)值最小,故優(yōu)化該損失函數(shù)合理。在TensorFlow中,對交叉熵函數(shù)計算進行了封裝。
補充說明
- 本文主要針對TensorFlow2中數(shù)據(jù)加載和誤差計算的接口進行了簡略說明。
- 博客同步至我的個人博客網(wǎng)站,歡迎瀏覽其他文章。
- 如有錯誤,歡迎指正。
總結(jié)
以上是生活随笔為你收集整理的TensorFlow2-神经网络基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据科学竞赛-计算机视觉赛流程
- 下一篇: TensorFlow2-神经网络训练