91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【連載】深度學習筆記14:CNN經(jīng)典論文研讀之Le-Net5及其Tensorflow實現(xiàn)

人工智能實訓營 ? 2019-01-14 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在前幾次筆記中,筆者基本上將卷積神經(jīng)網(wǎng)絡(luò)的基本原理給講完了。從本次筆記開始,筆者在深度學習筆記中會不定期的對 CNN 發(fā)展過程中的經(jīng)典論文進行研讀并推送研讀筆記。今天筆者就和大家一起學習卷積神經(jīng)網(wǎng)絡(luò)和深度學習發(fā)展歷史上具有奠基性的經(jīng)典論文之一的關(guān)于 LeNet-5 網(wǎng)絡(luò)一文。LeNet-5 是由具有卷積神經(jīng)網(wǎng)絡(luò)之父之美譽的 Yann LeCun 在1998年發(fā)表在 IEEE 上面的一篇 Gradient-based learning applied to document recognition 上提出來的,所以直接由 LeCun 大佬名字命名了。
論文原文:
http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

LeNet-5 網(wǎng)絡(luò)結(jié)構(gòu)

該篇論文有 42 頁,但關(guān)于 LeNet-5 網(wǎng)絡(luò)的核心部分并沒有那么多,我們直接定位第二章的B 小節(jié)進行閱讀。LeNet-5 的網(wǎng)絡(luò)結(jié)構(gòu)如下:


LeNet-5 共有 7 層,輸入層不計入層數(shù),每層都有一定的訓練參數(shù),其中三個卷積層的訓練參數(shù)較多,每層都有多個濾波器,也叫特征圖,每個濾波器都對上一層的輸出提取不同的像素特征。所以 LeNet-5 的簡略結(jié)構(gòu)如下:

輸入-卷積-池化-卷積-池化-卷積(全連接)-全連接-全連接(輸出)

各層的結(jié)構(gòu)和參數(shù)如下:
C1層是個卷積層,其輸入輸出結(jié)構(gòu)如下:
輸入: 32 x 32 x 1 濾波器大?。?5 x 5 x 1 濾波器個數(shù):6
輸出: 28 x 28 x 6
參數(shù)個數(shù): 5 x 5 x 1 x 6 + 6 = 156

P2層是個池化層,其輸入輸出結(jié)構(gòu)如下:
輸入: 28 x 28 x 6 濾波器大?。?2 x 2 濾波器個數(shù):6
輸出: 14 x 14 x 6
參數(shù)個數(shù):2 x 6 = 12
在原文中,P1池化層采用的是平均池化,鑒于現(xiàn)在普遍都使用最大池化,所以在后面的代碼實現(xiàn)中我們統(tǒng)一采用最大池化。

C3層是個卷積層,其輸入輸出結(jié)構(gòu)如下:
輸入: 14 x 14 x 6 濾波器大?。?5 x 5 x 6 濾波器個數(shù):16
輸出: 10 x 10 x 16
參數(shù)個數(shù): 5 x 5 x 6 x 16 + 16 = 2416
640?wx_fmt=png
P2 池化之后的特征圖組合計算得到C3的濾波器個數(shù)。

P4層是個池化層,其輸入輸出結(jié)構(gòu)如下:
輸入: 10 x 10 x 16 濾波器大小: 2 x 2 濾波器個數(shù):16
輸出: 5 x 5 x 16
參數(shù)個數(shù): 2 x 16 = 32

C5層在論文中是個卷積層,但濾波器大小為 5 x 5,所以其本質(zhì)上也是個全連接層。如果將5 x 5 x 16 拉成一個向量,它就是一個全連接層。其輸入輸出結(jié)構(gòu)如下:
輸入: 5 x 5 x 16 濾波器大小: 5 x 5 x 16 濾波器個數(shù):120
輸出: 1 x 1 x 120
參數(shù)個數(shù): 5 x 5 x 16 x 120 + 120 = 48120

F6層是個全連接層,全連接的激活函數(shù)采用的是 tanh 函數(shù),其輸入輸出結(jié)構(gòu)如下:
輸入:120
輸出:84
參數(shù)個數(shù):120 x 84 + 84 = 10164

F7層即輸出層,也是個全連接層,其輸入輸出結(jié)構(gòu)如下:
輸入:84
輸出:10
參數(shù)個數(shù): 84 x 10 + 10 = 850

LeNet-5 的 Tensorflow 實現(xiàn)

我們前面關(guān)于如何使用 Tensorflow 搭建卷積神經(jīng)網(wǎng)絡(luò)的過程可以定下實現(xiàn) LeNet-5 的基本思路。如果在 python 中寫的時候我們需要定義創(chuàng)建輸入輸出的占位符變量模塊、初始化各層參數(shù)模塊、創(chuàng)建前向傳播模塊、定義模型優(yōu)化迭代模型,以及在最后設(shè)置輸入數(shù)據(jù)。

下面筆者用以上思路編寫一個 LeNet-5 的簡單實現(xiàn)代碼。
導入相關(guān)庫和創(chuàng)建輸入輸出的占位符變量:

importtensorflowastf
importnumpyasnp
fromtensorflow.examples.tutorials.mnistimportinput_data
defcreate_placeholder():
X=tf.placeholder(tf.float32,shape=(None,28*28))
Y=tf.placeholder(tf.float32,shape=(None,10))
keep_prob=tf.placeholder(tf.float32)
returnX,Y,keep_prob


初始化各層參數(shù):

definitialize_parameters():
W1=tf.get_variable('W1',[5,5,1,6],initializer=tf.contrib.layers.xavier_initializer())
b1=tf.get_variable('b1',[6],initializer=tf.zeros_initializer())

W2=tf.get_variable('W2',[5,5,6,16],initializer=tf.contrib.layers.xavier_initializer())
b2=tf.get_variable('b2',[16],initializer=tf.zeros_initializer())

W3=tf.get_variable('W3',[5,5,16,120],initializer=tf.contrib.layers.xavier_initializer())
b3=tf.get_variable('b3',[120],initializer=tf.zeros_initializer())

W4=tf.get_variable('W4',[120,84],initializer=tf.contrib.layers.xavier_initializer())
b4=tf.get_variable('b4',[84],initializer=tf.zeros_initializer())

W5=tf.get_variable('W5',[84,10],initializer=tf.contrib.layers.xavier_initializer())
b5=tf.get_variable('b5',[10],initializer=tf.zeros_initializer())

para={'W1':W1,
'b1':b1,
'W2':W2,
'b2':b2,
'W3':W3,
'b3':b3,
'W4':W4,
'b4':b4,
'W5':W5,
'b5':b5}
returnpara


創(chuàng)建 LeNet-5 的前向計算:

defforward_propagation(X,para,dropout):

X=tf.reshape(X,[-1,28,28,1])
X=tf.pad(X,[[0,0],[2,2],[2,2],[0,0]])

c1=tf.nn.conv2d(X,para['W1'],strides=[1,1,1,1],padding='VALID')+para['b1']
p2=tf.nn.max_pool(c1,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')
c3=tf.nn.conv2d(p2,para['W2'],strides=[1,1,1,1],padding='VALID')+para['b2']
p4=tf.nn.max_pool(c3,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')
c5=tf.nn.conv2d(p4,para['W3'],strides=[1,1,1,1],padding='VALID')+para['b3']
c5=tf.contrib.layers.flatten(c5)
f6=tf.nn.tanh(tf.add(tf.matmul(c5,para['W4']),para['b4']))
f7=tf.nn.tanh(tf.add(tf.matmul(f6,para['W5']),para['b5']))
f7=tf.nn.dropout(f7,dropout)
returnf7


創(chuàng)建模型優(yōu)化計算函數(shù):

640?wx_fmt=png


最后傳入 mnist 數(shù)據(jù)和相關(guān)超參數(shù):

640?wx_fmt=png

本文來自《自興人工智能》項目部:凱文


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1817

    文章

    50091

    瀏覽量

    265237
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8553

    瀏覽量

    136921
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5598

    瀏覽量

    124392
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    穿孔機頂頭檢測儀 機器視覺深度學習

    頂頭狀態(tài)。 檢測頂頭算法 引入人工智深度學習技術(shù),通過Keras實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN),用Numpy實現(xiàn)采集數(shù)據(jù)的訓練,得到符合現(xiàn)場需求
    發(fā)表于 12-22 14:33

    NXP SR040 + QN9090 UWB/Bluetooth LE Combo模塊深度解析

    NXP SR040 + QN9090 UWB/Bluetooth LE Combo模塊深度解析 在物聯(lián)網(wǎng)與無線通信技術(shù)飛速發(fā)展的今天,UWB(超寬帶)與Bluetooth LE(低功耗藍牙)技術(shù)
    的頭像 發(fā)表于 12-16 16:30 ?478次閱讀

    Amphenol Ve - NET?:汽車多千兆位差分連接器系統(tǒng)的卓越

    Amphenol Ve - NET?:汽車多千兆位差分連接器系統(tǒng)的卓越選 在汽車電子技術(shù)飛速發(fā)展的今天,高速、可靠的以太網(wǎng)連接對于汽車的智能化和高級駕駛輔助系統(tǒng)(ADAS)等功能的實現(xiàn)至關(guān)重要
    的頭像 發(fā)表于 12-12 09:15 ?342次閱讀

    藍牙模塊低功耗新突破:LE Audio技術(shù)詳解(LC3編解碼/多設(shè)備串流/廣播音頻)

    目錄: 什么是LE Audio LE Audio和經(jīng)典藍牙相比的優(yōu)勢 LE Audio的局限性 LE Audio 的應用場景
    的頭像 發(fā)表于 12-10 11:20 ?1576次閱讀
    藍牙模塊低功耗新突破:<b class='flag-5'>LE</b> Audio技術(shù)詳解(LC3編解碼/多設(shè)備串流/廣播音頻)

    構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議

    整個模型非常巨大。所以要想實現(xiàn)輕量級的CNN神經(jīng)網(wǎng)絡(luò)模型,首先應該避免嘗試單層神經(jīng)網(wǎng)絡(luò)。 2)減少卷積核的大?。?b class='flag-5'>CNN神經(jīng)網(wǎng)絡(luò)是通過權(quán)值共享的方式,利用卷積運算從圖像中提取線性紋理。在提取過程中感受域
    發(fā)表于 10-28 08:02

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學習實踐,并盡量實現(xiàn)皮膚病理圖片的識別,第四階段

    接第三階段,上次說道要將cnn這個模塊接入到高云自帶的視頻實例里面,于是就開始學習和了解這個實例里面的每個模塊的功能,后來發(fā)現(xiàn),除了要看一下高云自己的ip文檔外,還要看很多視頻處理相關(guān)的協(xié)議文檔
    發(fā)表于 07-12 07:58

    哪些芯片支持藍牙經(jīng)典 A2DP 配置文件和 LE 音頻?

    哪些芯片支持藍牙經(jīng)典 A2DP 配置文件和 LE 音頻?
    發(fā)表于 07-01 06:41

    LE-Audio是什么?

    音頻編解碼、音頻數(shù)據(jù)傳輸和音頻控制方面進行了優(yōu)化。與傳統(tǒng)藍牙音頻相比,LE-Audio通過采用更高效的編碼算法和改進的數(shù)據(jù)壓縮技術(shù),實現(xiàn)了更出色的音質(zhì)和更長的電池壽命。LE-Audio的特點和優(yōu)勢1
    發(fā)表于 06-28 21:32

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學習實踐,并盡量實現(xiàn)皮膚病理圖片的識別,第二階段

    豪兄重新學習了一下有關(guān)的AI論文精讀系列,里面有很多model都是比較成熟的,而且子豪兄也給出了相關(guān)的代碼: https://github.com/TommyZihao
    發(fā)表于 06-23 18:37

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學習實踐,并盡量實現(xiàn)皮膚病理圖片的識別

    可以多看看。*附件:fpga_cnn.rar 相關(guān)文件都在里面了 探索了一陣子cnn,并且也跟著網(wǎng)上的一些開源的方案學習一些 比如這里的:# 一起學習用Verilog在FPGA上
    發(fā)表于 06-11 22:35

    深度學習賦能:正面吊車載箱號識別系統(tǒng)的核心技術(shù)

    支撐。 深度學習驅(qū)動的智能識別 傳統(tǒng)OCR技術(shù)易受光線、污損或箱體圖案干擾,而新一代識別系統(tǒng)通過深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)和注意力機制,實現(xiàn)
    的頭像 發(fā)表于 05-07 10:10 ?569次閱讀

    嵌入式AI技術(shù)深度學習:數(shù)據(jù)樣本預處理過程中使用合適的特征變換對深度學習的意義

    ? 作者:蘇勇Andrew 使用神經(jīng)網(wǎng)絡(luò)實現(xiàn)機器學習,網(wǎng)絡(luò)的每個層都將對輸入的數(shù)據(jù)做一次抽象,多層神經(jīng)網(wǎng)絡(luò)構(gòu)成深度學習的框架,可以深度理解數(shù)
    的頭像 發(fā)表于 04-02 18:21 ?1511次閱讀

    用樹莓派搞深度學習?TensorFlow啟動!

    介紹本頁面將指導您在搭載64位Bullseye操作系統(tǒng)的RaspberryPi4上安裝TensorFlow。TensorFlow是一個專為深度學習開發(fā)的大型軟件庫,它消耗大量資源。您可
    的頭像 發(fā)表于 03-25 09:33 ?1197次閱讀
    用樹莓派搞<b class='flag-5'>深度</b><b class='flag-5'>學習</b>?<b class='flag-5'>TensorFlow</b>啟動!

    IPC2221簡略學習筆記

    關(guān)于IPC2221的學習筆記
    發(fā)表于 03-14 18:07 ?9次下載

    LE Audio Combo模組智能座艙的應用

    ,憑借其先進的LE Audio技術(shù)和經(jīng)典藍牙支持,為智能座艙提供了卓越的解決方案,滿足了用戶在音質(zhì)、連接穩(wěn)定性上的高標準需求。 LE AudioCombo模組:引領(lǐng)智能座艙音頻體驗的未來 藍牙技術(shù)的每次迭代都帶來了巨大的性能提升
    的頭像 發(fā)表于 03-07 14:02 ?1027次閱讀