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 隨機性策略...