Datawhale 零基礎入門CV賽事

2021-10-06 12:48:47 字數 1225 閱讀 8326

本章將會講解卷積神經網路(convolutional neural network, cnn)的常見層,並從頭搭建乙個字元識別模型。

學習cnn基礎和原理;

使用pytorch框架構建cnn模型,並完成訓練;

卷積神經網路(簡稱cnn)是一類特殊的人工神經網路,是深度學習中重要的乙個分支。cnn在很多領域都表現優異,精度和速度比傳統計算學習演算法高很多。特別是在計算機視覺領域,cnn是解決影象分類、影象檢索、物體檢測和語義分割的主流模型。

cnn每一層由眾多的卷積核組成,每個卷積核對輸入的畫素進行卷積操作,得到下一次的輸入。隨著網路層的增加卷積核會逐漸擴大感受野,並縮減影象的尺寸。

cnn是一種層次模型,輸入的是原始的畫素資料。cnn通過卷積(convolution)、池化(pooling)、非線性啟用函式(non-linear activation function)和全連線層(fully connected layer)構成。

如下圖所示為lenet網路結構,是非常經典的字元識別模型。兩個卷

積層,兩個池

化層,兩個全連線層組成。卷積核都是5×5,stride=1,池化層使用最大池化。

通過多次卷積和池化,cnn的最後一層將輸入的影象畫素對映為具體的輸出。如在分類任務中會轉換為不同類別的概率輸出,然後

計算真實標籤

與cnn

模型的**

結果的差異,

並通過反向傳播更新

每層的引數,

並在更新完成後再次

前向傳播,

如此反覆

直到訓練完成。 與

傳統機器學習模型

相比,cnn

具有一種端到端(e

ndtoend

)的思路。在cnn

訓練的過程中是直接從影象畫素到最終的輸出,

並不涉及到具體的特徵提取

和構建模型

的過程,

也不需要

人工的參與。

在上一章節我們講解了如何使用pytorch來讀取賽題資料集,本節我們使用本章學習到的知識構件乙個簡單的cnn模型,完成字元識別功能。在p

ytorch中構建

cnn模型

非常簡單,

只需要定義好

模型的引數和

正向傳播

即可,pytorch

會根據正向

傳播自動計算反向傳播。

在本章我們會構建乙個非常簡單的cnn,然後進行訓練。在此我們才用的是imagnet的預訓練模型resnet18。

Datawhale 零基礎入門CV

賽題名稱 零基礎入門cv之街道字元識別 1.匯入所需庫 import os,sys,glob,shutil,json os.environ cuda visible devices 0 import cv2 import matplotlib.pyplot as plt from pil impor...

Datawhale 零基礎入門CV賽事

在機器學習模型 特別是深度學習模型 的訓練過程中,模型是非常容易過擬合的。深度學習模型在不斷的訓練過程中訓練誤差會逐漸降低,但測試誤差的走勢則不一定。在模型的訓練過程中,模型只能利用訓練資料來進行訓練,模型並不能接觸到測試集上的樣本。因此模型如果將訓練集學的過好,模型就會記住訓練樣本的細節,導致模型...

Datawhale 零基礎入門金融風控(一)

一般而言,對於資料在比賽介面都有對應的資料概況介紹 匿名特徵除外 說明列的性質特徵。了解列的性質會有助於我們對於資料的理解和後續分析。train.csv id 為貸款清單分配的唯一信用證標識 loanamnt 貸款金額 term 貸款期限 year interestrate 貸款利率 install...