<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          深度學(xué)習(xí)入門教程:分類貓和狗

          共 5162字,需瀏覽 11分鐘

           ·

          2022-06-24 10:52

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          想建立和訓(xùn)練一個(gè)深度學(xué)習(xí)模型,以達(dá)到分類貓和狗嗎?你來(lái)對(duì)地方了!

          你不需要任何數(shù)學(xué)知識(shí)就可以跟著我。只要高中數(shù)學(xué)和一點(diǎn)python編程經(jīng)驗(yàn)就足夠了!我會(huì)帶你走過(guò)每一步,制作和訓(xùn)練你的第一個(gè)模型。

          1.安裝程序

          為了簡(jiǎn)單起見(jiàn),我們將在云GPU(什么是GPU)上運(yùn)行我們的模型。你可以看看下面的博客,了解GPU在深度學(xué)習(xí)中的重要性。

          https://towardsdatascience.com/what-is-a-gpu-and-do-you-need-one-in-deep-learning-718b9597aa0d

          有很多服務(wù)提供免費(fèi)和付費(fèi)的云GPU實(shí)例。我們將使用Gradient,它提供免費(fèi)的GPU和CPU實(shí)例層。我們也將使用fast.ai的vision庫(kù)來(lái)創(chuàng)建我們的模型。

          1. 首先,點(diǎn)擊這里創(chuàng)建一個(gè)Gradient帳戶:https://console.paperspace.com/signup?gradient=true

          2. 登錄你的帳戶并選擇“Gradient”

          3. 單擊“Notebook

          4. 為實(shí)例命名(可選)

          5. 選擇Paperspace + Fast.AI基本容器

          1. 選擇任意一個(gè)免費(fèi)的GPU實(shí)例
          1. 單擊“Create Notebook”

          你的Notebook 將從掛起→設(shè)置→運(yùn)行!

          1. 單擊“OPEN V1(CLASSIC)”按鈕

          對(duì)于這個(gè)模型,我們將從Bing和DuckDuckGo上獲取圖像,它們將作為我們的數(shù)據(jù)集。我們將安裝Joe Dockrill編寫的jmd_imagescraper庫(kù),這將為我們完成任務(wù)。

          1. 單擊 New →Terminal.

          鍵入并單擊enter:

          !pip install -q jmd_imagescraper

          有關(guān)庫(kù)的更多信息,請(qǐng)?jiān)L問(wèn)其官方頁(yè)面::https://joedockrill.github.io/blog/2020/09/18/jmd-imagescraper-library/

          這就把我們帶到了設(shè)置的最后。關(guān)閉終端,再次打開(kāi)Notebook。編碼時(shí)間到了!

          Jupyter Notebook

          Jupyter Notebook是一個(gè)web應(yīng)用程序,允許你創(chuàng)建包含實(shí)時(shí)代碼、公式和文本的文檔。你可以做任何事情,從編寫代碼到發(fā)布,以及使用Voilá構(gòu)建獨(dú)立的web應(yīng)用程序!我們將在Gradient提供的Jupyter Notebook上編寫和執(zhí)行我們的代碼。

          Jupyter Notebook由許多單元組成。你可以通過(guò)確定執(zhí)行單元格的順序來(lái)控制工作流。

          單擊New→Python3打開(kāi)一個(gè)新的Notebook。

          你可以編寫文本(在標(biāo)記單元格中)或編寫python代碼(在代碼單元格中)并按如下方式執(zhí)行:

          一直玩到你覺(jué)得舒服為止。使用Run和add cells選項(xiàng)分別執(zhí)行代碼和添加更多單元格。


          2.代碼
           

          讓我們開(kāi)始有趣的事情,好嗎?你可以把每個(gè)代碼塊復(fù)制到不同的單元上,然后和我一起運(yùn)行它們。

          讓我們先導(dǎo)入fast.ai的vision庫(kù)和jmd_imagescraper。

          !pip install -Uqq fastbook

          import fastbook  # 導(dǎo)入fast.ai庫(kù)
          from fastbook import *  # 別擔(dān)心,它被設(shè)計(jì)成與import *一起工作
          fastbook.setup_book()
          from fastai.vision.widgets import *

          # 導(dǎo)入圖片爬取器, website: https://joedockrill.github.io/blog/2020/09/18/jmd-imagescraper-library/
          from jmd_imagescraper.core import * 
          from pathlib import Path
          from jmd_imagescraper.imagecleaner import *

          因?yàn)槲覀兊哪繕?biāo)是對(duì)貓和狗的圖像進(jìn)行分類,所以我們可以制作一個(gè)名為“animals”的文件夾,我們可以下載并保存我們的圖像。

          最后一行將path變量設(shè)置為當(dāng)前工作目錄中的“animals”文件夾。

          animals=['cat','dog']
          path = Path().cwd()/"animals"# 指定當(dāng)前工作目錄的路徑

          從jmd_imagescraper庫(kù)調(diào)用duckduckgo_search()函數(shù),該函數(shù)接受以下內(nèi)容作為輸入:

          1. 下載目錄(上面指定的路徑變量)

          2. 文件夾名稱(cat)

          3. 搜索DuckDuckGo(“貓”)的關(guān)鍵字

          4. 要下載的圖像數(shù)(100)

          duckduckgo_search(path,"cat","cats",max_results=100# 下載100張“貓”圖片并保存到path/cat中

          等到它搜索圖像,下載并直接保存到“animals”中名為“cat”的文件夾中。結(jié)果應(yīng)該如下所示:

          現(xiàn)在讓我們對(duì)狗的圖像做同樣的處理。

          duckduckgo_search(path,"dog","dogs",max_results=100)# 下載100張“狗”圖片并保存到path/dog中

          通常會(huì)有一些不相關(guān)的圖像,這會(huì)妨礙我們的訓(xùn)練,所以我們刪除個(gè)別文件。Jupyter提供了一個(gè)與刪除無(wú)關(guān)圖像的交互式GUI。

          display_image_cleaner(path)

          在文件夾之間切換并刪除不相關(guān)的圖像。我發(fā)現(xiàn)了一些像這樣的圖片偷偷地進(jìn)入了貓和狗。

          fns=get_image_files(path)
          fns

          查找失敗的下載并從文件夾中取消鏈接

          failed=verify_images(fns)# 尋找非圖像文件
          failed
          failed.map(Path.unlink);# 從文件夾中取消失敗文件的鏈接

          現(xiàn)在讓我們創(chuàng)建一個(gè)Datablock對(duì)象,它將圖像發(fā)送到DataLoaders類。DataLoaders類將給定的數(shù)據(jù)轉(zhuǎn)換為學(xué)習(xí)者可以解釋的信息。

          直覺(jué)上,學(xué)習(xí)者是一個(gè)觀察所有給定圖像并找到模式的人。如果遇到復(fù)雜的關(guān)鍵字,不要擔(dān)心。一旦你運(yùn)行模型,一切都會(huì)變得有意義。

          animals=DataBlock(
              blocks=(ImageBlock,CategoryBlock),
              get_items=get_image_files,
              splitter=RandomSplitter(valid_pct=0.2,seed=42),# 將數(shù)據(jù)集拆分為訓(xùn)練集和驗(yàn)證集
              get_y=parent_label,
              item_tfms=RandomResizedCrop(224, min_scale=0.5),
              batch_tfms=aug_transforms())

          需要注意的是,在第4行中,我們保留了20%的數(shù)據(jù),以便在每個(gè)稱為epoch訓(xùn)練結(jié)束時(shí)檢查我們的模型。

          創(chuàng)建一個(gè)名為dls的DataLoaders對(duì)象。

          dls=animals.dataloaders(path)

          看看dls對(duì)象中單個(gè)批處理中的幾個(gè)圖像。

          dls.valid.show_batch(max_n=4,nrows=1)

          要求一個(gè)學(xué)習(xí)者在4個(gè)不同的訓(xùn)練迭代或時(shí)期中根據(jù)輸入圖像進(jìn)行學(xué)習(xí)。這需要一些時(shí)間,這取決于你的網(wǎng)絡(luò)速度。

          learn = cnn_learner(dls, resnet18, metrics=error_rate)# 訓(xùn)練我們的模型
          learn.fine_tune(4)

          你可能不會(huì)看到與圖像中相同的結(jié)果,但是錯(cuò)誤率應(yīng)該小于0.05。

          現(xiàn)在,讓我們?yōu)轵?yàn)證集繪制一個(gè)混淆矩陣?;煜仃嚫嬖V我們驗(yàn)證集中有多少圖像被正確或錯(cuò)誤地分類。

          interp = ClassificationInterpretation.from_learner(learn)
          interp.plot_confusion_matrix()# 繪制混淆矩陣

          混淆矩陣說(shuō)明我們的分類器有多好。深藍(lán)色對(duì)角線上顯示的數(shù)字告訴我們正確預(yù)測(cè)圖像的數(shù)量。因此我們的分類器做得很好!

          我們將在下一行代碼中看到兩幅錯(cuò)誤預(yù)測(cè)的圖片。

          interp.plot_top_losses(5, nrows=1)

          現(xiàn)在讓我們對(duì)我們的模型進(jìn)行真正的測(cè)試,好嗎?下載你選擇的貓或狗圖像并保存在本地。

          learn.export()
          path = Path()
          path.ls(file_exts='.pkl')

          learn_inf = load_learner(path/'export.pkl')

          btn_upload = widgets.FileUpload()# 顯示可用于從系統(tǒng)上傳圖像的小部件
          btn_upload

          這將在你的Jupyter Notebook中創(chuàng)建一個(gè)小部件,如下所示:

          點(diǎn)擊上傳并選擇你的圖片。

          現(xiàn)在,讓我們調(diào)整圖像大小,以便我們的模型可以預(yù)測(cè)。最后一行顯示調(diào)整大小的圖像。

          img = PILImage.create(btn_upload.data[-1])

          out_pl = widgets.Output()
          out_pl.clear_output()
          with out_pl: display(img.to_thumb(128,128))# 調(diào)整圖像的大小
          out_pl

          下面的代碼預(yù)測(cè)圖像中的動(dòng)物,并以我們可以理解的格式顯示它。

          pred,pred_idx,probs = learn_inf.predict(img)# 要求模型預(yù)測(cè)圖像中的動(dòng)物!
          lbl_pred = widgets.Label()
          lbl_pred.value = f'Prediction: {pred}; Probability: {probs[pred_idx]:.04f}'# 以可讀格式顯示輸出
          lbl_pred

          ……………….

          不錯(cuò)?。。?/p>

          我們只用了大約200張圖片,就可以創(chuàng)建一個(gè)可以對(duì)貓和狗進(jìn)行分類的模型?,F(xiàn)在你可以繼續(xù)進(jìn)行更改以創(chuàng)建分類器!你也可以使用三個(gè)或更多類別。

          好消息!

          小白學(xué)視覺(jué)知識(shí)星球

          開(kāi)始面向外開(kāi)放啦??????




          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 79
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人性爱网 | 大香蕉伊人免费在线观看 | 色94色 欧美 setu | 女毛片| 北条麻妃被躁57分钟视频在线 |