精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

使用PyTorch提取CNNs圖像特征

汽車玩家 ? 來源:人工智能遇見磐創(chuàng) ? 作者:人工智能遇見磐創(chuàng) ? 2020-05-05 08:52 ? 次閱讀

目錄

簡要介紹PyTorch、張量和NumPy

為什么選擇卷積神經(jīng)網(wǎng)絡(luò)(CNNs)?

識(shí)別服裝問題

使用PyTorch實(shí)現(xiàn)CNNs

1.簡要介紹PyTorch、張量和NumPy

讓我們快速回顧一下第一篇文章中涉及的內(nèi)容。我們討論了PyTorch和張量的基礎(chǔ)知識(shí),還討論了PyTorch與NumPy的相似之處。

PyTorch是一個(gè)基于python的庫,提供了以下功能:

用于創(chuàng)建可序列化和可優(yōu)化模型的TorchScript

以分布式訓(xùn)練進(jìn)行并行化計(jì)算

動(dòng)態(tài)計(jì)算圖,等等

PyTorch中的張量類似于NumPy的n維數(shù)組,也可以與gpu一起使用。在這些張量上執(zhí)行操作幾乎與在NumPy數(shù)組上執(zhí)行操作類似。這使得PyTorch非常易于使用和學(xué)習(xí)。

在本系列的第1部分中,我們構(gòu)建了一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)來解決一個(gè)案例研究。使用我們的簡單模型,我們?cè)跍y試集中獲得了大約65%的基準(zhǔn)準(zhǔn)確度。現(xiàn)在,我們將嘗試使用卷積神經(jīng)網(wǎng)絡(luò)來提高這個(gè)準(zhǔn)確度。

2.為什么選擇卷積神經(jīng)網(wǎng)絡(luò)(CNNs)?

在我們進(jìn)入實(shí)現(xiàn)部分之前,讓我們快速地看看為什么我們首先需要CNNs,以及它們是如何工作的。

我們可以將卷積神經(jīng)網(wǎng)絡(luò)(CNNs)看作是幫助從圖像中提取特征的特征提取器。

在一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)中,我們把一個(gè)三維圖像轉(zhuǎn)換成一維圖像,對(duì)吧?讓我們看一個(gè)例子來理解這一點(diǎn):

使用PyTorch提取CNNs圖像特征

你能認(rèn)出上面的圖像嗎?這似乎說不通。現(xiàn)在,讓我們看看下面的圖片:

我們現(xiàn)在可以很容易地說,這是一只狗。如果我告訴你這兩個(gè)圖像是一樣的呢?相信我,他們是一樣的!唯一的區(qū)別是第一個(gè)圖像是一維的,而第二個(gè)圖像是相同圖像的二維表示

空間定位

人工神經(jīng)網(wǎng)絡(luò)也會(huì)丟失圖像的空間方向。讓我們?cè)倥e個(gè)例子來理解一下:

使用PyTorch提取CNNs圖像特征

你能分辨出這兩幅圖像的區(qū)別嗎?至少我不能。由于這是一個(gè)一維的表示,因此很難確定它們之間的區(qū)別。現(xiàn)在,讓我們看看這些圖像的二維表示:

在這里,圖像某些定位已經(jīng)改變,但我們無法通過查看一維表示來識(shí)別它。

這就是人工神經(jīng)網(wǎng)絡(luò)的問題——它們失去了空間定位。

大量參數(shù)

神經(jīng)網(wǎng)絡(luò)的另一個(gè)問題是參數(shù)太多。假設(shè)我們的圖像大小是28283 -所以這里的參數(shù)是2352。如果我們有一個(gè)大小為2242243的圖像呢?這里的參數(shù)數(shù)量為150,528。

這些參數(shù)只會(huì)隨著隱藏層的增加而增加。因此,使用人工神經(jīng)網(wǎng)絡(luò)的兩個(gè)主要缺點(diǎn)是:

丟失圖像的空間方向

參數(shù)的數(shù)量急劇增加

那么我們?nèi)绾翁幚磉@個(gè)問題呢?如何在保持空間方向的同時(shí)減少可學(xué)習(xí)參數(shù)?

這就是卷積神經(jīng)網(wǎng)絡(luò)真正有用的地方。CNNs有助于從圖像中提取特征,這可能有助于對(duì)圖像中的目標(biāo)進(jìn)行分類。它首先從圖像中提取低維特征(如邊緣),然后提取一些高維特征(如形狀)。

我們使用濾波器從圖像中提取特征,并使用池技術(shù)來減少可學(xué)習(xí)參數(shù)的數(shù)量。

在本文中,我們不會(huì)深入討論這些主題的細(xì)節(jié)。如果你希望了解濾波器如何幫助提取特征和池的工作方式,我強(qiáng)烈建議你從頭開始學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的全面教程

3.問題:識(shí)別服裝

理論部分已經(jīng)鋪墊完了,開始寫代碼吧。我們將討論與第一篇文章相同的問題陳述。這是因?yàn)槲覀兛梢灾苯訉⑽覀兊腃NN模型的性能與我們?cè)谀抢锝⒌暮唵紊窠?jīng)網(wǎng)絡(luò)進(jìn)行比較。

你可以從這里下載“識(shí)別”Apparels問題的數(shù)據(jù)集。

https://datahack.analyticsvidhya.com/contest/practice-problem-identify-the-apparels/?utmsource=blog&utmmedium=building-image-classification-models-cnn-pytorch

讓我快速總結(jié)一下問題陳述。我們的任務(wù)是通過觀察各種服裝形象來識(shí)別服裝的類型。我們總共有10個(gè)類可以對(duì)服裝的圖像進(jìn)行分類:

使用PyTorch提取CNNs圖像特征

數(shù)據(jù)集共包含70,000張圖像。其中60000張屬于訓(xùn)練集,其余10000張屬于測試集。所有的圖像都是大小(28*28)的灰度圖像。數(shù)據(jù)集包含兩個(gè)文件夾,一個(gè)用于訓(xùn)練集,另一個(gè)用于測試集。每個(gè)文件夾中都有一個(gè).csv文件,該文件具有圖像的id和相應(yīng)的標(biāo)簽;

準(zhǔn)備好開始了嗎?我們將首先導(dǎo)入所需的庫:

加載數(shù)據(jù)集

現(xiàn)在,讓我們加載數(shù)據(jù)集,包括訓(xùn)練,測試樣本:

該訓(xùn)練文件包含每個(gè)圖像的id及其對(duì)應(yīng)的標(biāo)簽

另一方面,測試文件只有id,我們必須預(yù)測它們對(duì)應(yīng)的標(biāo)簽

樣例提交文件將告訴我們預(yù)測的格式

我們將一個(gè)接一個(gè)地讀取所有圖像,并將它們堆疊成一個(gè)數(shù)組。我們還將圖像的像素值除以255,使圖像的像素值在[0,1]范圍內(nèi)。這一步有助于優(yōu)化模型的性能。

讓我們來加載圖像:

如你所見,我們?cè)谟?xùn)練集中有60,000張大小(28,28)的圖像。由于圖像是灰度格式的,我們只有一個(gè)單一通道,因此形狀為(28,28)。

現(xiàn)在讓我們研究數(shù)據(jù)和可視化一些圖像:

使用PyTorch提取CNNs圖像特征

以下是來自數(shù)據(jù)集的一些示例。我鼓勵(lì)你去探索更多,想象其他的圖像。接下來,我們將把圖像分成訓(xùn)練集和驗(yàn)證集。

創(chuàng)建驗(yàn)證集并對(duì)圖像進(jìn)行預(yù)處理

我們?cè)隍?yàn)證集中保留了10%的數(shù)據(jù),在訓(xùn)練集中保留了10%的數(shù)據(jù)。接下來將圖片和目標(biāo)轉(zhuǎn)換成torch格式:

同樣,我們將轉(zhuǎn)換驗(yàn)證圖像:

我們的數(shù)據(jù)現(xiàn)在已經(jīng)準(zhǔn)備好了。最后,是時(shí)候創(chuàng)建我們的CNN模型了!

4.使用PyTorch實(shí)現(xiàn)CNNs

我們將使用一個(gè)非常簡單的CNN架構(gòu),只有兩個(gè)卷積層來提取圖像的特征。然后,我們將使用一個(gè)完全連接的Dense層將這些特征分類到各自的類別中。

讓我們定義一下架構(gòu):

現(xiàn)在我們調(diào)用這個(gè)模型,定義優(yōu)化器和模型的損失函數(shù):

使用PyTorch提取CNNs圖像特征

這是模型的架構(gòu)。我們有兩個(gè)卷積層和一個(gè)線性層。接下來,我們將定義一個(gè)函數(shù)來訓(xùn)練模型:

最后,我們將對(duì)模型進(jìn)行25個(gè)epoch的訓(xùn)練,并存儲(chǔ)訓(xùn)練和驗(yàn)證損失:

使用PyTorch提取CNNs圖像特征

可以看出,隨著epoch的增加,驗(yàn)證損失逐漸減小。讓我們通過繪圖來可視化訓(xùn)練和驗(yàn)證的損失:

使用PyTorch提取CNNs圖像特征

啊,我喜歡想象的力量。我們可以清楚地看到,訓(xùn)練和驗(yàn)證損失是同步的。這是一個(gè)好跡象,因?yàn)槟P驮隍?yàn)證集上進(jìn)行了很好的泛化。

讓我們?cè)谟?xùn)練和驗(yàn)證集上檢查模型的準(zhǔn)確性:

訓(xùn)練集的準(zhǔn)確率約為72%,相當(dāng)不錯(cuò)。讓我們檢查驗(yàn)證集的準(zhǔn)確性:

正如我們看到的損失,準(zhǔn)確度也是同步的-我們?cè)隍?yàn)證集得到了72%的準(zhǔn)確度。

為測試集生成預(yù)測

最后是時(shí)候?yàn)闇y試集生成預(yù)測了。我們將加載測試集中的所有圖像,執(zhí)行與訓(xùn)練集相同的預(yù)處理步驟,最后生成預(yù)測。

所以,讓我們開始加載測試圖像:

現(xiàn)在,我們將對(duì)這些圖像進(jìn)行預(yù)處理步驟,類似于我們之前對(duì)訓(xùn)練圖像所做的:

最后,我們將生成對(duì)測試集的預(yù)測:

用預(yù)測替換樣本提交文件中的標(biāo)簽,最后保存文件并提交到排行榜:

你將在當(dāng)前目錄中看到一個(gè)名為submission.csv的文件。你只需要把它上傳到問題頁面的解決方案檢查器上,它就會(huì)生成分?jǐn)?shù)。鏈接:https://datahack.analyticsvidhya.com/contest/practice-problem-identify-the-apparels/?utmsource=blog&utmmedium=building-image-classification-models-cnn-pytorch

我們的CNN模型在測試集上給出了大約71%的準(zhǔn)確率,這與我們?cè)谏弦黄恼轮惺褂煤唵蔚纳窠?jīng)網(wǎng)絡(luò)得到的65%的準(zhǔn)確率相比是一個(gè)很大的進(jìn)步。

5.結(jié)尾

在這篇文章中,我們研究了CNNs是如何從圖像中提取特征的。他們幫助我們將之前的神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確率從65%提高到71%,這是一個(gè)重大的進(jìn)步。

你可以嘗試使用CNN模型的超參數(shù),并嘗試進(jìn)一步提高準(zhǔn)確性。要調(diào)優(yōu)的超參數(shù)可以是卷積層的數(shù)量、每個(gè)卷積層的濾波器數(shù)量、epoch的數(shù)量、全連接層的數(shù)量、每個(gè)全連接層的隱藏單元的數(shù)量等。

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

    關(guān)注

    56

    文章

    4782

    瀏覽量

    84460
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    803

    瀏覽量

    13150
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    高光譜成像的黃瓜病蟲害識(shí)別和特征波長提取方法

    高光譜成像的黃瓜病蟲害識(shí)別和特征波長提取方法黃瓜霜霉病和斑潛蠅是制約黃瓜產(chǎn)業(yè)發(fā)展的嚴(yán)重病蟲害。
    的頭像 發(fā)表于 08-12 15:36 ?444次閱讀
    高光譜成像的黃瓜病蟲害識(shí)別和<b class='flag-5'>特征</b>波長<b class='flag-5'>提取</b>方法

    pytorch怎么在pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個(gè)開源的機(jī)器學(xué)習(xí)庫,用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使用PyTorch,首先需
    的頭像 發(fā)表于 08-01 16:22 ?1251次閱讀

    圖像識(shí)別算法的核心技術(shù)是什么

    圖像識(shí)別算法是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要研究方向,其目標(biāo)是使計(jì)算機(jī)能夠像人類一樣理解和識(shí)別圖像中的內(nèi)容。圖像識(shí)別算法的核心技術(shù)包括以下幾個(gè)方面: 特征提取
    的頭像 發(fā)表于 07-16 11:02 ?572次閱讀

    圖像識(shí)別技術(shù)的原理是什么

    值化、濾波、邊緣檢測等操作。這些操作可以提高圖像的質(zhì)量,減少噪聲,突出圖像特征,為后續(xù)的特征提取和分類器設(shè)計(jì)提供基礎(chǔ)。 1.1 去噪 去噪是去除
    的頭像 發(fā)表于 07-16 10:46 ?832次閱讀

    基于PyTorch的卷積核實(shí)例應(yīng)用

    在深度學(xué)習(xí)和計(jì)算機(jī)視覺領(lǐng)域,卷積操作是一種至關(guān)重要的技術(shù),尤其在圖像處理和特征提取方面發(fā)揮著核心作用。PyTorch作為當(dāng)前最流行的深度學(xué)習(xí)框架之一,提供了強(qiáng)大的張量操作功能和靈活的API,使得實(shí)現(xiàn)
    的頭像 發(fā)表于 07-11 15:19 ?405次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)通常用來處理什么

    感知、權(quán)重共享(或特征共享)以及空間或時(shí)間上的下采樣(池化),來有效地從原始像素?cái)?shù)據(jù)中自動(dòng)提取高層次的特征表示。 具體來說,卷積神經(jīng)網(wǎng)絡(luò)在以下領(lǐng)域有廣泛應(yīng)用: 圖像識(shí)別 :CNN 是
    的頭像 發(fā)表于 07-11 14:51 ?530次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用場景及優(yōu)缺點(diǎn)

    1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)模型,它通過模擬人類視覺系統(tǒng)的工作方式,對(duì)輸入數(shù)據(jù)進(jìn)行特征提取和分類。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,CNNs具有更好的特征學(xué)習(xí)能力和泛化能力。 1.2 卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程
    的頭像 發(fā)表于 07-11 14:45 ?575次閱讀

    pytorch中有神經(jīng)網(wǎng)絡(luò)模型嗎

    當(dāng)然,PyTorch是一個(gè)廣泛使用的深度學(xué)習(xí)框架,它提供了許多預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型。 PyTorch中的神經(jīng)網(wǎng)絡(luò)模型 1. 引言 深度學(xué)習(xí)是一種基于人工神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)技術(shù),它在圖像識(shí)別、自然語言
    的頭像 發(fā)表于 07-11 09:59 ?648次閱讀

    計(jì)算機(jī)視覺怎么給圖像分類

    圖像分類是計(jì)算機(jī)視覺領(lǐng)域中的一項(xiàng)核心任務(wù),其目標(biāo)是將輸入的圖像自動(dòng)分配到預(yù)定義的類別集合中。這一過程涉及圖像特征提取特征表示以及分類器的
    的頭像 發(fā)表于 07-08 17:06 ?523次閱讀

    tensorflow和pytorch哪個(gè)更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個(gè)易于使用、靈活且具有強(qiáng)大社區(qū)支持的框架,PyTorch可能是一個(gè)更好的選擇。如果您需要一個(gè)在
    的頭像 發(fā)表于 07-05 09:45 ?787次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用

    卷積操作 卷積神經(jīng)網(wǎng)絡(luò)的核心是卷積操作。卷積操作是一種數(shù)學(xué)運(yùn)算,用于提取圖像中的局部特征。在圖像識(shí)別中,卷積操作通過滑動(dòng)窗口(或稱為濾波器、卷積核)在輸入
    的頭像 發(fā)表于 07-02 14:28 ?934次閱讀

    PyTorch中激活函數(shù)的全面概覽

    為了更清晰地學(xué)習(xí)Pytorch中的激活函數(shù),并對(duì)比它們之間的不同,這里對(duì)最新版本的Pytorch中的激活函數(shù)進(jìn)行了匯總,主要介紹激活函數(shù)的公式、圖像以及使用方法,具體細(xì)節(jié)可查看官方文檔。
    的頭像 發(fā)表于 04-30 09:26 ?502次閱讀
    <b class='flag-5'>PyTorch</b>中激活函數(shù)的全面概覽

    如何提取、匹配圖像特征點(diǎn)

    我們習(xí)慣從圖像中選取比較有代表性的點(diǎn),然后,在此基礎(chǔ)上,討論相機(jī)位姿估計(jì)問題,以及這些點(diǎn)的定位問題。 在經(jīng)典 SLAM 模型中,把它們稱為路標(biāo),而在視覺 SLAM 中,路標(biāo)則是指圖像特征(Features)。
    的頭像 發(fā)表于 04-19 11:41 ?609次閱讀

    微美全息(NASDAQ:WIMI)探索全局-局部特征自適應(yīng)融合網(wǎng)絡(luò)框架在圖像場景分類中的創(chuàng)新運(yùn)用

    面臨著許多挑戰(zhàn),如復(fù)雜的場景等。然而,現(xiàn)有的圖像場景分類方法往往只關(guān)注全局或局部特征提取,而忽略了全局和局部特征之間的互補(bǔ)關(guān)聯(lián)。為了解決這些問題,微美全息(NASDAQ:WIMI)不
    的頭像 發(fā)表于 01-05 16:08 ?357次閱讀
    微美全息(NASDAQ:WIMI)探索全局-局部<b class='flag-5'>特征</b>自適應(yīng)融合網(wǎng)絡(luò)框架在<b class='flag-5'>圖像</b>場景分類中的創(chuàng)新運(yùn)用

    OpenCV4圖像分析之BLOB特征分析

    BLOB是圖像中灰度塊的一種專業(yè)稱呼,更加變通一點(diǎn)的可以說它跟我們前面二值圖像分析的聯(lián)通組件類似,通過特征提取實(shí)現(xiàn)常見的各種灰度BLOB對(duì)象組件檢測與分離。使用該檢測器的時(shí)候,可以根據(jù)需要輸入不同參數(shù),得到的結(jié)果跟輸入的參數(shù)息息
    的頭像 發(fā)表于 12-28 12:28 ?1234次閱讀
    OpenCV4<b class='flag-5'>圖像</b>分析之BLOB<b class='flag-5'>特征</b>分析