百度 深度學習7日入門 CV疫情特輯

2021-10-04 19:43:14 字數 4007 閱讀 1069

1.day01 新冠疫情視覺化

2.day02 手勢識別

class mydnn(fluid.dygraph.layer):

def __init__(self):

super(mydnn, self).__init__()

self.hidden1 = linear(100, 100, act="relu")

self.hidden2 = linear(100, 100, act="relu")

self.hidden3 = linear(100, 100, act="relu")

self.hidden4 = linear(100, 100, act="relu")

self.out = linear(3*100*100, 10, act='softmax')

def forward(self, input):

x = self.hidden1(input)

# print("hidden1", x.shape)

x = self.hidden2(x)

# print("hidden2", x.shape)

x = self.hidden3(x)

# print("hidden3", x.shape)

x = self.hidden4(x)

x = fluid.layers.dropout(x, dropout_prob=0.4)

x = fluid.layers.reshape(x, shape=[-1, 3*100*100])

y = self.out(x)

return y

3.day03 車牌識別

#定義網路

class mylenet(fluid.dygraph.layer):

def __init__(self):

super(mylenet,self).__init__()

self.hidden1_1 = conv2d(1, 28 , 5 , 1)

self.hidden1_2 = pool2d(pool_size=2, pool_type='max', pool_stride=1)

self.hidden2_1 = conv2d(28, 32, 3, 1)

self.hidden2_2 = pool2d(pool_size=2, pool_type='max', pool_stride=1)

self.hidden3 = conv2d(32, 32, 3, 1)

self.hidden4 = linear(32*10*10, 65, act='softmax')

def forward(self,input):

x = self.hidden1_1(input)

x = self.hidden1_2(x)

x = self.hidden2_1(x)

x = self.hidden2_2(x)

x = self.hidden3(x)

x = fluid.layers.dropout(x, dropout_prob=0.1)

x = fluid.layers.reshape(x, shape=[-1, 32*10*10])

y = self.hidden4(x)

return y

4.day04 口罩分類

'''vgg網路

'''def __init__(self):

super(vggnet, self).__init__()

# 224 + 2 - 3 / 1 + 1

# 224 + 2 - 2 / 2 + 1

self.convpool01 = convpool(3, 64, 3, 2, 2, 2, act="relu")

self.convpool02 = convpool(64, 128, 3, 2, 2, 2, act="relu")

self.convpool03 = convpool(128, 256, 3, 2, 2, 3, act="relu")

self.convpool04 = convpool(256, 512, 3, 2, 2, 3, act="relu")

self.convpool05 = convpool(512, 512, 3, 2, 2, 3, act="relu")

self.pool_5_shape = 512 * 7 * 7

self.fc01 = fluid.dygraph.linear(self.pool_5_shape, 4096, act="relu")

self.fc02 = fluid.dygraph.linear(4096, 4096, act="relu")

self.fc03 = fluid.dygraph.linear(4096, 2, act="softmax")

def forward(self, inputs, label=none):

"""前向計算"""

out = self.convpool01(inputs)

# print(out.shape)

out = self.convpool02(out)

out = self.convpool03(out)

out = self.convpool04(out)

out = self.convpool05(out)

out = fluid.layers.reshape(out, shape=[-1, 512 * 7 * 7])

out = self.fc01(out)

out = self.fc02(out)

out = self.fc03(out)

if label is not none:

acc = fluid.layers.accuracy(input=out, label=label)

return out, acc

else:

return out

唯一乙個做到100%(因為測試集比較小+運氣好)

5.day05 **密度檢測

6.day06 paddleslim模型壓縮

從過程來看,深度學習基本包括幾個過程,資料的收集和預處理。

1.資料的收集和預處理

這次我們的資料集都是已經提供好的了,但是在實際工作中, 我們資料集都還是要慢慢去收集、積累、標註的。

在跑模型之前需要把資料進行預處理,一般講要分出訓練集和測試集。

2.搭建模型

從手勢識別的dnn,到車帕識別cnn

3.訓練模型

設定epochs和batch_size,學習率、優化函式等來進行模型的訓練(經常出現過擬合,然後設定dropout的時候,有時候發現還沒有自己跑出來的好。這點感覺有點坑。(或許是用的不好))

這個過程有點漫長,最好使用gpu來跑, 所以在本地建議還是把gpu的環境搭建起來,因為aistudio上的gpu很難搶到的,但是有時候會發現自己本地的gpu記憶體會不夠,我在跑day5 **密度檢測的時候,記憶體就不夠了, (顯示卡rtx2060),但是gpu真的比cpu快很多。aistudio也會有一些免費的算力卡可以使用。說起aistudio(老是一直轉圈圈,gpu難搶,data裡面的資料集有時候總是沒了,吐個槽)

4.測試訓練集

會輸出乙個acc,acc越高,心裡越興奮。

5.模型呼叫

暫時還沒有 demo,可以讓我通過輸入一張,獲取結果的。如果可以像自己寫的utils一樣可以直接呼叫多好。

需要**的可以檢視  github: 

百度深度學習7日入門 CV疫情特輯心得

下面回顧一下幾天的課程 第二天是使用前饋神經網路實現手勢的識別,這次實踐,本掉包俠就露怯了,自己就沒啥手寫網路的能力嘛,想換個卷積網路都要看別人的,真是提醒我要多加練習了。第三,四天分別幫大家回顧了經典的卷積神經網路lenet,vggnet,實現了車牌識別和佩戴口罩識別。第五天發布了競賽,是乙個 密...

深度學習7日入門cv疫情特輯學習心得

直播內容包含兩個部分,理論和實踐,課後需要完成每次的作業和一次比賽。整個課程的內容還是比較豐富的,參加課程前還是需要掌握基本的python和深度學習基礎知識。其中幾次作業雖然標題不一樣,資料不一樣,本質上都是分類任務。day2對於不同的手勢進行分類,day3是對於切割後的車牌字元 省份簡稱和字母 數...

百度7日強化學習總結

基本概念包括 兩部分 agent智慧型體,environment 環境 三要素 state狀態,動作action,reward獎勵。agent學習兩種策略 基於價值的value based 隨機性策略,代表性的有sarsa,q learning,dqn 基於策略的policy based 隨機性策略...