国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

用C語言構(gòu)建一個(gè)數(shù)字識(shí)別深度神經(jīng)網(wǎng)絡(luò)

這篇具有很好參考價(jià)值的文章主要介紹了用C語言構(gòu)建一個(gè)數(shù)字識(shí)別深度神經(jīng)網(wǎng)絡(luò)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

接上一篇: 用C語言構(gòu)建一個(gè)數(shù)字識(shí)別卷積神經(jīng)網(wǎng)絡(luò)

1. 深度神經(jīng)網(wǎng)絡(luò)

  按照深度學(xué)習(xí)的理論,隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,網(wǎng)絡(luò)擬合復(fù)雜問題的能力也會(huì)增強(qiáng),對(duì)事物特征的挖掘也會(huì)更加深入.這里嘗試構(gòu)建一個(gè)5層深度的神經(jīng)網(wǎng)絡(luò),包括兩個(gè)卷積層和兩個(gè)池化層, 其中輸出層為全連接層,如下圖示:
用C語言構(gòu)建一個(gè)數(shù)字識(shí)別深度神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí),機(jī)器學(xué)習(xí),c語言

(如果第一層卷積用16個(gè)核,效果會(huì)更好)

程序中對(duì)應(yīng)配置說明:
conv_layer層: 為3x3的卷積層, 8個(gè)卷積核, 采用valid_padding(不填充),移動(dòng)掃描步長(zhǎng)為1.
maxpool_layer層: 采用2x2最大池化,步長(zhǎng)為2.
convA_layer層: 為3x3的卷積層, 32個(gè)卷積核, 采用valid_padding(不填充),移動(dòng)掃描步長(zhǎng)為1.
maxpoolA_layer層: 采用2x2最大池化,步長(zhǎng)為2.

輸出層output_layer: 一共10個(gè)神經(jīng)元,分別對(duì)應(yīng)0~9數(shù)字的可能性,與展平后的maxpoolA_layer層輸出進(jìn)行全連接.
卷積層的激活函數(shù)都采用func_ReLU,這樣可以很大程度上抑制神經(jīng)網(wǎng)絡(luò)的梯度爆炸和消失問題.

2. 實(shí)驗(yàn)

?  取2萬條訓(xùn)練樣本進(jìn)行訓(xùn)練,訓(xùn)練后再進(jìn)行測(cè)試,其準(zhǔn)確率可超過96%.

用C語言構(gòu)建一個(gè)數(shù)字識(shí)別深度神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí),機(jī)器學(xué)習(xí),c語言

?3.問題和心得:

3.1 梯度爆炸和梯度消失
  在運(yùn)行本文這個(gè)訓(xùn)練程序的時(shí)候,你可能會(huì)不幸踩到梯度的爆雷,提示"Gradients Explosion!? err is nan or inf!". 不過不要緊, 再來運(yùn)行一遍嘛。也可以將學(xué)習(xí)率調(diào)小一點(diǎn)。
  梯度爆炸(或消失)的根本原因是反向傳播的鏈?zhǔn)絺鲗?dǎo)法則,它導(dǎo)致了梯度在反向?qū)訉觽鞑r(shí)會(huì)對(duì)后級(jí)梯度進(jìn)行放大或縮?。绻硞€(gè)節(jié)點(diǎn)上的權(quán)重梯度不幸處在一個(gè)連續(xù)放大(或連續(xù)縮小)的傳導(dǎo)路徑上,那么這個(gè)權(quán)重更新時(shí)就會(huì)被放大(或縮小)到極大(或極小)的數(shù)值從而導(dǎo)致溢出(或變成0).在這里表現(xiàn)為輸出損失值err變成NaN, 或err長(zhǎng)時(shí)間保持基本無變化.

改進(jìn): 在這個(gè)程序中梯度爆炸(或消失)的最終結(jié)果通常會(huì)體現(xiàn)在輸出層func_softmax()函數(shù)的計(jì)算中, 由于e的指數(shù)超級(jí)大(或小)而造成計(jì)算溢出.其實(shí)我們可以提前在softmax公式的分子分母上都先除以一個(gè)大數(shù)(比如e^DBL_MAX_e_EXP),以降低計(jì)算過程中間數(shù)值,而保證最后結(jié)果不變.

3.2 深度神經(jīng)網(wǎng)絡(luò)模型
  深度神經(jīng)網(wǎng)絡(luò)并不是簡(jiǎn)單的堆疊網(wǎng)絡(luò)層數(shù),而是要求對(duì)每層的輸入/輸出/結(jié)構(gòu)/參數(shù)量等做合理的配置.不僅要保證層與層之間數(shù)據(jù)流的順暢,還要保證所需特征信息的充分提取和傳導(dǎo).舉個(gè)列子,如果將上面第一層和第二層卷積層的核心數(shù)量都改成16, 那么其總體效果可能還不如一個(gè)三層網(wǎng)絡(luò).如此看來, 一些經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型(如LeNet-5等)都值得我們好好學(xué)習(xí).

3.3 學(xué)習(xí)率
  由于我們這里采用了SGD梯度下降學(xué)習(xí)法,因此學(xué)習(xí)曲線會(huì)比較曲折, 相對(duì)batch-GD方法應(yīng)該取更小的學(xué)習(xí)率,這里可以取0.0025(或0.005). 對(duì)于大的學(xué)習(xí)率,踩到梯度雷的概率也會(huì)更大.往往大的學(xué)習(xí)率會(huì)造成輸出損失值大幅度跳動(dòng),不過令人疑惑的是其最終結(jié)果可能會(huì)更好.另外,對(duì)于層數(shù)多的神經(jīng)網(wǎng)絡(luò)也要相應(yīng)選取相對(duì)小的學(xué)習(xí)率.

? ? ? ?另外,還可以實(shí)時(shí)調(diào)整學(xué)習(xí)率,如當(dāng)發(fā)現(xiàn)輸出損失值來回跳動(dòng)時(shí)就將學(xué)習(xí)率減小一半,試驗(yàn)發(fā)現(xiàn)這樣做可以加快收斂速度。在linux下這個(gè)可以簡(jiǎn)單地用kill發(fā)信號(hào)量來實(shí)現(xiàn)。

3.4?訓(xùn)練終止條件的設(shè)置
  一般對(duì)于一個(gè)新的模型一時(shí)無法知道它最終的收斂狀況。這時(shí)可以把條件設(shè)得嚴(yán)格一些,如把mean_err<=0.0005作為終止條件;或直接設(shè)定epoch的計(jì)數(shù)值,如300。在經(jīng)過一兩輪訓(xùn)練后我們就會(huì)知道模型的大概收斂值了。 另外,我們也可以用ctrl+c發(fā)個(gè)信號(hào)讓訓(xùn)練終止,但保留此時(shí)的參數(shù)值,直接進(jìn)行下一步驗(yàn)證。

4. 源代碼:

https://github.com/midaszhou/nnc 下載后編譯: make TEST_NAME=test_nnc4

(如果是用git pull更新,那么先make clean)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-637398.html

參考資料:

1. ?MNIST手寫數(shù)字集 http://yann.lecun.com/exdb/mnist/

2. LeNet5 介紹: https://www.cnblogs.com/sinpoo/p/15970402.html

?

?

?

?

?

?

?

到了這里,關(guān)于用C語言構(gòu)建一個(gè)數(shù)字識(shí)別深度神經(jīng)網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深度學(xué)習(xí):使用卷積神經(jīng)網(wǎng)絡(luò)CNN實(shí)現(xiàn)MNIST手寫數(shù)字識(shí)別

    深度學(xué)習(xí):使用卷積神經(jīng)網(wǎng)絡(luò)CNN實(shí)現(xiàn)MNIST手寫數(shù)字識(shí)別

    本項(xiàng)目基于pytorch構(gòu)建了一個(gè)深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)包含卷積層、池化層、全連接層,通過此網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)MINST數(shù)據(jù)集手寫數(shù)字的識(shí)別,通過本項(xiàng)目代碼,從原理上理解手寫數(shù)字識(shí)別的全過程,包括反向傳播,梯度下降等。 卷積神經(jīng)網(wǎng)絡(luò)是一種多層、前饋型神經(jīng)網(wǎng)絡(luò)。從功能上

    2024年02月13日
    瀏覽(20)
  • pytorch學(xué)習(xí)——如何構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識(shí)別為例

    pytorch學(xué)習(xí)——如何構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識(shí)別為例

    目錄 一.概念介紹 1.1神經(jīng)網(wǎng)絡(luò)核心組件 1.2神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖 1.3使用pytorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的主要工具 二、實(shí)現(xiàn)手寫數(shù)字識(shí)別 2.1環(huán)境 2.2主要步驟 2.3神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 2.4準(zhǔn)備數(shù)據(jù) 2.4.1導(dǎo)入模塊 2.4.2定義一些超參數(shù) 2.4.3下載數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行預(yù)處理 2.4.4可視化數(shù)據(jù)集中部分元素 ?2

    2024年02月14日
    瀏覽(47)
  • 入門深度學(xué)習(xí)——基于全連接神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別案例(python代碼實(shí)現(xiàn))

    入門深度學(xué)習(xí)——基于全連接神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別案例(python代碼實(shí)現(xiàn))

    1.1 問題導(dǎo)入 如圖所示,數(shù)字五的圖片作為輸入,layer01層為輸入層,layer02層為隱藏層,找出每列最大值對(duì)應(yīng)索引為輸出層。根據(jù)下圖給出的網(wǎng)絡(luò)結(jié)構(gòu)搭建本案例用到的全連接神經(jīng)網(wǎng)絡(luò) 1.2 手寫字?jǐn)?shù)據(jù)集MINST 如圖所示,MNIST數(shù)據(jù)集是機(jī)器學(xué)習(xí)領(lǐng)域中非常經(jīng)典的一個(gè)數(shù)據(jù)集,由6

    2024年02月03日
    瀏覽(25)
  • (九)人工智能應(yīng)用--深度學(xué)習(xí)原理與實(shí)戰(zhàn)--前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)MNST手寫數(shù)字識(shí)別

    (九)人工智能應(yīng)用--深度學(xué)習(xí)原理與實(shí)戰(zhàn)--前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)MNST手寫數(shù)字識(shí)別

    目標(biāo): 識(shí)別手寫體的數(shù)字,如圖所示: 學(xué)習(xí)內(nèi)容: 1、掌握MNIST數(shù)據(jù)集的加載和查看方法 2、熟練掌握Keras建立前饋神經(jīng)網(wǎng)絡(luò)的步驟【重點(diǎn)】 3、掌握模型的編譯及擬合方法的使用,理解參數(shù)含義【重點(diǎn)】 4、掌握模型的評(píng)估方法 5、掌握模型的預(yù)測(cè)方法 6、掌握自定義圖片的處理與

    2024年02月13日
    瀏覽(38)
  • 乳腺癌CT影像數(shù)據(jù)的深度學(xué)習(xí):R語言與ANN神經(jīng)網(wǎng)絡(luò)構(gòu)建高性能分類診斷模型

    乳腺癌是全球最常見的女性惡性腫瘤之一,也影響著男性的健康。據(jù)統(tǒng)計(jì),每年有數(shù)百萬人被診斷出患有乳腺癌[1]。乳腺癌的早期檢測(cè)和準(zhǔn)確診斷對(duì)于治療和預(yù)后至關(guān)重要。然而,乳腺癌的早期診斷面臨許多挑戰(zhàn),如圖像解讀的主觀性和復(fù)雜性,以及差異化的病理特征[2]。因

    2024年02月14日
    瀏覽(26)
  • 手寫數(shù)字識(shí)別--神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)

    手寫數(shù)字識(shí)別--神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)

    ?我自己搞的代碼,預(yù)測(cè)精度才94% 神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告源碼.zip - 藍(lán)奏云 ?老師給的實(shí)驗(yàn)源碼答案和資料,預(yù)測(cè)精度高達(dá)99% 深度學(xué)習(xí)實(shí)驗(yàn)報(bào)告.zip - 藍(lán)奏云 上深度學(xué)習(xí)的課程,老師布置了一個(gè)經(jīng)典的實(shí)驗(yàn)報(bào)告,我做了好久才搞懂,所以把實(shí)驗(yàn)報(bào)告放到CSDN保存,自己忘了方便查閱

    2024年02月06日
    瀏覽(22)
  • 手寫數(shù)字識(shí)別-基于卷積神經(jīng)網(wǎng)絡(luò)

    手寫數(shù)字識(shí)別-基于卷積神經(jīng)網(wǎng)絡(luò)

    ??歡迎來到機(jī)器學(xué)習(xí)的世界? ??博客主頁:卿云閣 ???歡迎關(guān)注??點(diǎn)贊??收藏??留言?? ??本文由卿云閣原創(chuàng)! ??本階段屬于練氣階段,希望各位仙友順利完成突破 ??首發(fā)時(shí)間:??2021年6月5日?? ??希望可以和大家一起完成進(jìn)階之路! ??作者水平很有限,如果發(fā)

    2024年02月10日
    瀏覽(18)
  • 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)-手寫數(shù)字識(shí)別

    神經(jīng)網(wǎng)絡(luò)基礎(chǔ)-手寫數(shù)字識(shí)別

    基本原理 圖像本質(zhì)上被認(rèn)為是一個(gè)矩陣,每個(gè)像素點(diǎn)都是一個(gè)對(duì)應(yīng)的像素值,相當(dāng)于在多維數(shù)據(jù)上進(jìn)行相關(guān)的歸類或者其他操作。 線性函數(shù) 線性函數(shù)的一個(gè)從輸入到輸出的映射,用于給目標(biāo)一個(gè)每個(gè)類別對(duì)應(yīng)的得分。 圖像 ( 32 ? 32 ? 3 ) → f ( x , W ) Y 圖像(32*32*3) stackrel{

    2024年02月02日
    瀏覽(24)
  • 【神經(jīng)網(wǎng)絡(luò)手寫數(shù)字識(shí)別-最全源碼(pytorch)】

    【神經(jīng)網(wǎng)絡(luò)手寫數(shù)字識(shí)別-最全源碼(pytorch)】

    Torch安裝的方法 學(xué)習(xí)方法 1.邊用邊學(xué),torch只是一個(gè)工具,真正用,查的過程才是學(xué)習(xí)的過程 2.直接就上案例就行,先來跑,遇到什么來解決什么 Mnist分類任務(wù): 網(wǎng)絡(luò)基本構(gòu)建與訓(xùn)練方法,常用函數(shù)解析 torch.nn.functional模塊 nn.Module模塊 讀取Mnist數(shù)據(jù)集 會(huì)自動(dòng)進(jìn)行下載 784是m

    2024年02月14日
    瀏覽(47)
  • 卷積神經(jīng)網(wǎng)絡(luò) —— 圖像識(shí)別與深度學(xué)習(xí)

    卷積神經(jīng)網(wǎng)絡(luò) —— 圖像識(shí)別與深度學(xué)習(xí)

    視頻教程學(xué)習(xí)鏈接: https://www.icourse163.org/learn/XUST-1206363802?tid=1467124640#/learn/content?type=detailid=1248319353cid=1275090253 原始數(shù)據(jù)的形式是多種多樣的,除了數(shù)字之外,還可能是文字、圖像、視頻、音頻等,下面,就以圖像識(shí)別為例,來了解深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域中的應(yīng)用。 圖像

    2024年02月05日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包