在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

使用PyTorch提取CNNs圖像特征

汽車玩家 ? 來源:人工智能遇見磐創 ? 作者:人工智能遇見磐創 ? 2020-05-05 08:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目錄

簡要介紹PyTorch、張量和NumPy

為什么選擇卷積神經網絡(CNNs)?

識別服裝問題

使用PyTorch實現CNNs

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

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

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

用于創建可序列化和可優化模型的TorchScript

以分布式訓練進行并行化計算

動態計算圖,等等

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

在本系列的第1部分中,我們構建了一個簡單的神經網絡來解決一個案例研究。使用我們的簡單模型,我們在測試集中獲得了大約65%的基準準確度。現在,我們將嘗試使用卷積神經網絡來提高這個準確度。

2.為什么選擇卷積神經網絡(CNNs)?

在我們進入實現部分之前,讓我們快速地看看為什么我們首先需要CNNs,以及它們是如何工作的。

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

在一個簡單的神經網絡中,我們把一個三維圖像轉換成一維圖像,對吧?讓我們看一個例子來理解這一點:

使用PyTorch提取CNNs圖像特征

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

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

空間定位

人工神經網絡也會丟失圖像的空間方向。讓我們再舉個例子來理解一下:

使用PyTorch提取CNNs圖像特征

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

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

這就是人工神經網絡的問題——它們失去了空間定位。

大量參數

神經網絡的另一個問題是參數太多。假設我們的圖像大小是28283 -所以這里的參數是2352。如果我們有一個大小為2242243的圖像呢?這里的參數數量為150,528。

這些參數只會隨著隱藏層的增加而增加。因此,使用人工神經網絡的兩個主要缺點是:

丟失圖像的空間方向

參數的數量急劇增加

那么我們如何處理這個問題呢?如何在保持空間方向的同時減少可學習參數?

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

我們使用濾波器從圖像中提取特征,并使用池技術來減少可學習參數的數量。

在本文中,我們不會深入討論這些主題的細節。如果你希望了解濾波器如何幫助提取特征和池的工作方式,我強烈建議你從頭開始學習卷積神經網絡的全面教程

3.問題:識別服裝

理論部分已經鋪墊完了,開始寫代碼吧。我們將討論與第一篇文章相同的問題陳述。這是因為我們可以直接將我們的CNN模型的性能與我們在那里建立的簡單神經網絡進行比較。

你可以從這里下載“識別”Apparels問題的數據集。

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

讓我快速總結一下問題陳述。我們的任務是通過觀察各種服裝形象來識別服裝的類型。我們總共有10個類可以對服裝的圖像進行分類:

使用PyTorch提取CNNs圖像特征

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

準備好開始了嗎?我們將首先導入所需的庫:

加載數據集

現在,讓我們加載數據集,包括訓練,測試樣本:

該訓練文件包含每個圖像的id及其對應的標簽

另一方面,測試文件只有id,我們必須預測它們對應的標簽

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

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

讓我們來加載圖像:

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

現在讓我們研究數據和可視化一些圖像:

使用PyTorch提取CNNs圖像特征

以下是來自數據集的一些示例。我鼓勵你去探索更多,想象其他的圖像。接下來,我們將把圖像分成訓練集和驗證集。

創建驗證集并對圖像進行預處理

我們在驗證集中保留了10%的數據,在訓練集中保留了10%的數據。接下來將圖片和目標轉換成torch格式:

同樣,我們將轉換驗證圖像:

我們的數據現在已經準備好了。最后,是時候創建我們的CNN模型了!

4.使用PyTorch實現CNNs

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

讓我們定義一下架構:

現在我們調用這個模型,定義優化器和模型的損失函數:

使用PyTorch提取CNNs圖像特征

這是模型的架構。我們有兩個卷積層和一個線性層。接下來,我們將定義一個函數來訓練模型:

最后,我們將對模型進行25個epoch的訓練,并存儲訓練和驗證損失:

使用PyTorch提取CNNs圖像特征

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

使用PyTorch提取CNNs圖像特征

啊,我喜歡想象的力量。我們可以清楚地看到,訓練和驗證損失是同步的。這是一個好跡象,因為模型在驗證集上進行了很好的泛化。

讓我們在訓練和驗證集上檢查模型的準確性:

訓練集的準確率約為72%,相當不錯。讓我們檢查驗證集的準確性:

正如我們看到的損失,準確度也是同步的-我們在驗證集得到了72%的準確度。

為測試集生成預測

最后是時候為測試集生成預測了。我們將加載測試集中的所有圖像,執行與訓練集相同的預處理步驟,最后生成預測。

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

現在,我們將對這些圖像進行預處理步驟,類似于我們之前對訓練圖像所做的:

最后,我們將生成對測試集的預測:

用預測替換樣本提交文件中的標簽,最后保存文件并提交到排行榜:

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

我們的CNN模型在測試集上給出了大約71%的準確率,這與我們在上一篇文章中使用簡單的神經網絡得到的65%的準確率相比是一個很大的進步。

5.結尾

在這篇文章中,我們研究了CNNs是如何從圖像中提取特征的。他們幫助我們將之前的神經網絡模型的準確率從65%提高到71%,這是一個重大的進步。

你可以嘗試使用CNN模型的超參數,并嘗試進一步提高準確性。要調優的超參數可以是卷積層的數量、每個卷積層的濾波器數量、epoch的數量、全連接層的數量、每個全連接層的隱藏單元的數量等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86656
  • pytorch
    +關注

    關注

    2

    文章

    809

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【「具身智能機器人系統」閱讀體驗】+兩本互為支持的書

    最近在閱讀《具身智能機器人系統》這本書的同時,還讀了 《計算機視覺之PyTorch數字圖像處理》一書,這兩本書完全可以視為是互為依托的姊妹篇。《計算機視覺之PyTorch數字圖像處理》
    發表于 01-01 15:50

    使用機器學習改善庫特征提取的質量和運行時間

    基于靜態時序分析(STA)的現代設計流程非常依賴標準單元、IO、存儲器和定制模塊的特征化Liberty模型。高效、準確的庫特征提取是全芯片或模塊級設計流程的關鍵步驟之一,因為它能確保所有庫單元在所
    的頭像 發表于 12-26 11:15 ?463次閱讀
    使用機器學習改善庫<b class='flag-5'>特征提取</b>的質量和運行時間

    利用Arm Kleidi技術實現PyTorch優化

    PyTorch 是一個廣泛應用的開源機器學習 (ML) 庫。近年來,Arm 與合作伙伴通力協作,持續改進 PyTorch 的推理性能。本文將詳細介紹如何利用 Arm Kleidi 技術提升 Arm
    的頭像 發表于 12-23 09:19 ?1041次閱讀
    利用Arm Kleidi技術實現<b class='flag-5'>PyTorch</b>優化

    PyTorch 2.5.1: Bugs修復版發布

    ? 一,前言 在深度學習框架的不斷迭代中,PyTorch 社區始終致力于提供更穩定、更高效的工具。最近,PyTorch 2.5.1 版本正式發布,這個版本主要針對 2.5.0 中發現的問題進行了修復
    的頭像 發表于 12-03 16:11 ?1610次閱讀
    <b class='flag-5'>PyTorch</b> 2.5.1: Bugs修復版發布

    FacenetPytorch人臉識別方案--基于米爾全志T527開發板

    的人臉圖像。這些圖像是之前采集并存儲的,用于與新捕捉到的人臉照片進行對比。 3)構建神經網絡模型:為了實現對比功能,我們需要一個預先訓練好或自定義的神經網絡模型。這個模型能夠提取人臉圖像
    發表于 11-28 15:57

    《DNK210使用指南 -CanMV版 V1.0》第三十五章 image圖像特征檢測實驗

    第三十五章 image圖像特征檢測實驗 在上一章節中,介紹了image模塊中圖像濾波方法給的使用,本章將繼續介紹image模塊中圖像特征檢測
    發表于 11-06 09:30

    PyTorch 數據加載與處理方法

    PyTorch 是一個流行的開源機器學習庫,它提供了強大的工具來構建和訓練深度學習模型。在構建模型之前,一個重要的步驟是加載和處理數據。 1. PyTorch 數據加載基礎 在 PyTorch
    的頭像 發表于 11-05 17:37 ?922次閱讀

    Pytorch深度學習訓練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學習訓練。
    的頭像 發表于 10-28 14:05 ?646次閱讀
    <b class='flag-5'>Pytorch</b>深度學習訓練的方法

    特征工程實施步驟

    數據中提取數值表示以供無監督模型使用的方法(例如,試圖從之前非結構化的數據集中提取結構)。特征工程包括這兩種情況,以及更多內容。數據從業者通常依賴ML和深度學習算法
    的頭像 發表于 10-23 08:07 ?895次閱讀
    <b class='flag-5'>特征</b>工程實施步驟

    【《時間序列與機器學習》閱讀體驗】+ 時間序列的信息提取

    本人有些機器學習的基礎,理解起來一點也不輕松,加油。 作者首先說明了時間序列的信息提取是時間序列分析的一個重要環節,目標是從給定的時間序列數據中提取出有用的信息和特征,以支持后續的分析和預測任務,可以
    發表于 08-14 18:00

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

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

    pytorch怎么在pycharm中運行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個開源的機器學習庫,用于構建和訓練神經網絡。要在PyCharm中使用PyTorch,首先需
    的頭像 發表于 08-01 16:22 ?2495次閱讀

    pycharm如何調用pytorch

    引言 PyTorch是一個開源的機器學習庫,廣泛用于計算機視覺、自然語言處理等領域。PyCharm是一個流行的Python集成開發環境(IDE),提供了代碼編輯、調試、測試等功能。將PyTorch
    的頭像 發表于 08-01 15:41 ?1204次閱讀

    圖像識別算法的核心技術是什么

    圖像識別算法是計算機視覺領域的一個重要研究方向,其目標是使計算機能夠像人類一樣理解和識別圖像中的內容。圖像識別算法的核心技術包括以下幾個方面: 特征提取
    的頭像 發表于 07-16 11:02 ?1304次閱讀

    圖像識別技術的原理是什么

    值化、濾波、邊緣檢測等操作。這些操作可以提高圖像的質量,減少噪聲,突出圖像特征,為后續的特征提取和分類器設計提供基礎。 1.1 去噪 去噪是去除
    的頭像 發表于 07-16 10:46 ?2522次閱讀
    主站蜘蛛池模板: 日韩欧美亚洲一区 | 日本a级片免费 | 三级电影天堂网 | 午夜免费啪视频 | 成人免费视频一区二区三区 | 日本不卡免费高清一级视频 | 亚洲午夜久久久久久噜噜噜 | 四虎影视网址 | 天天操天天操天天操 | 天天干天天爽 | 国产成人永久在线播放 | 欧洲无线区一二区 | 在线精品国产成人综合第一页 | 夜夜操com | 激情久久久久久久久久 | 五月亭亭六月丁香 | 午夜免费伦费影视在线观看 | 日本色婷婷 | 亚洲一区二区三区免费 | 91视频看看 | 日本一区二区免费看 | 国产精品三级在线 | 插插插叉叉叉 | 色婷婷六月丁香七月婷婷 | 白嫩少妇激情无码 | 夭天干天天做天天免费看 | 成年人激情视频 | 国产美女视频爽爽爽 | 一级一级女人18毛片 | 天堂在线观看中文字幕 | 俺要操 | 深爱五月激情 | 中文一区在线 | 狼人射综合 | 曰韩高清一级毛片 | a资源在线 | 性夜影院午夜看片 | 最近国语视频免费观看在线播放 | 天天综合在线观看 | 色综合色综合色综合色综合网 | 色丁香影院 |