計算機視覺打卡task3字元識別模型

2021-10-06 12:48:46 字數 1534 閱讀 7580

今天來打卡task3.

這個task是從講解卷積神經網路cnn開始的。

在語言心理學中做語義分割時,經常會用到這個模型。但它的應用不僅在此。

我們先來看定義。

卷積神經網路是一類包含卷積計算且具有深度結構的前饋神經網路,是深度學習的代表演算法之一。卷積神經網路具有表徵學習能力,能夠按其階層結構對輸入資訊進行平移不變分類。

它的結構有:輸入層、隱含層、輸出層。

其中隱含層包含卷積層、池化層和全連線層3類構築,卷積層和池化層是cnn所特有的。

卷積層包括卷積核、卷積層引數、激勵函式。

池化層包括lp池化,隨機混合池化、譜池化。

我們接下來先在pytorch中構建乙個非常簡單的cnn。

放上訓練**:

# 損失函式

criterion = nn.crossentropyloss(

)# 優化器

optimizer = torch.optim.adam(model.parameters(),

0.005

)loss_plot, c0_plot =

,# 迭代10個epoch

for epoch in

range(10

):for data in train_loader:

c0, c1, c2, c3, c4, c5 = model(data[0]

) loss = criterion(c0, data[1]

[:,0

])+ \ criterion(c1, data[1]

[:,1

])+ \ criterion(c2, data[1]

[:,2

])+ \ criterion(c3, data[1]

[:,3

])+ \ criterion(c4, data[1]

[:,4

])+ \ criterion(c5, data[1]

[:,5

])loss /=

6 optimizer.zero_grad(

) loss.backward(

) optimizer.step())

)(c0.argmax(1)

==data[1]

:,0]

).sum(

).item()*

1.0/ c0.shape[0]

)print

(epoch)

可以看到模型的損失隨著迭代次數的提公升在逐步減小,這裡可以視覺化繪個圖。

還可以看到字元的準確率也在不斷提公升。

一些具體引數在實際應用中還是要自己進行更改,這樣可以得到更好的、更適合的結果。

python學習打卡 Task3

集合條件語句 迴圈語句 鍵必須不可變,所以可以用數字,字串或元組作為鍵,而列表不行 dic print dic name 執行結果 pythondic age 100 更改age的值 dic date 20190514 增加date print dic 執行結果 del dic name 刪除nam...

python打卡 Task 3異常處理

try except 語句 try 檢測範圍 except exception as reason 出現異常後的處理 try except finally 語句 try 檢測範圍 except exception as reason 出現異常後的處理 finally 無論如何都會被執行的 try e...

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...