99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

簡(jiǎn)易CNN與ResNet搭建:Python源碼入門與實(shí)踐

簡(jiǎn)易CNN與ResNet搭建:Python源碼入門與實(shí)踐 簡(jiǎn)介從零搭建CNN與ResNet的入門實(shí)戰(zhàn)代碼包面向深度學(xué)習(xí)初學(xué)者和想厘清“ResNet與CNN關(guān)系”的開發(fā)者可直接用于計(jì)算機(jī)視覺自學(xué)或課程設(shè)計(jì)參考。資源共24個(gè)文件包含5個(gè)Python訓(xùn)練與工具腳本、6個(gè)h5格式數(shù)據(jù)集文件交通標(biāo)志、手勢(shì)、笑臉等另有PyCharm工程配置xml/iml與運(yùn)行生成的pyc緩存壓縮包整體約25.27MB代碼按“第一周CNN、第二周ResNet”兩階段組織目錄清晰便于逐周學(xué)習(xí)。目前已有1099人學(xué)習(xí)下載。源碼完整展現(xiàn)了CNN的卷積層、池化層、全連接層以及ResNet殘差塊、跳躍連接和批量歸一化的實(shí)際寫法可直接運(yùn)行查看訓(xùn)練過程配套h5數(shù)據(jù)集支持從數(shù)據(jù)加載、模型搭建到損失計(jì)算與驗(yàn)證的完整閉環(huán)幫助讀者快速掌握PyTorch/TensorFlow建模思路并深入理解殘差連接如何緩解深層網(wǎng)絡(luò)梯度消失問題。1. 先解決最大困惑ResNet到底是不是CNN第一次看到“簡(jiǎn)易CNN和ResNet搭建Python源碼”這份資源時(shí)我腦子里最大的問號(hào)不是“怎么搭建”而是一個(gè)更基礎(chǔ)的問題ResNet是CNN嗎如果你也有同款困惑那這篇入門文章就是寫給你的。CNN和ResNet的關(guān)系可以類比成同一道菜的基礎(chǔ)版和改良版CNN是深度學(xué)習(xí)里最常用的圖像識(shí)別模型ResNet是在CNN骨架上加裝了“殘差塊”的升級(jí)型號(hào)所以它本質(zhì)上還是CNN只不過更聰明、更適合往深了堆。這份資源里的代碼用Python帶你按兩周的節(jié)奏搭出這兩個(gè)模型。今天我們不急著刷原理我?guī)惆阉x成能上手的東西先搞懂兩個(gè)概念再看看資料里到底有什么最后落在你電腦上能跑通的第一個(gè)例子。2. 先搞懂地基CNN是怎么“看”一張圖的不管第一周還是第二周你寫的每一段代碼都是在做同一件事讓電腦從圖片里認(rèn)出東西來。CNN解決的就是這個(gè)問題它仿照人眼的工作方式一層一層地從圖里找特征——先找邊緣再找紋理最后拼出“這是一只貓”的結(jié)論。要理解ResNet你得先知道CNN的四個(gè)積木塊下面我們一塊一塊來。2.1 圖像在電腦眼里是一堆數(shù)字你在屏幕上看到的照片對(duì)電腦來說只是一個(gè)巨大的數(shù)字矩陣。一張灰度圖就是一個(gè)二維數(shù)組每個(gè)數(shù)字代表一個(gè)像素點(diǎn)的亮度范圍通常是0到2550是純黑255是純白。彩色圖則稍微復(fù)雜一點(diǎn)它由三個(gè)矩陣疊在一起組成分別對(duì)應(yīng)紅、綠、藍(lán)三個(gè)顏色通道。你可以用幾行代碼親手驗(yàn)證這件事。打開任意一個(gè)Python文件敲進(jìn)下面這段import numpy as np # 用隨機(jī)數(shù)模擬一張 4x4 的灰度圖 fake_image np.random.randint(0, 256, size(4, 4)) print(fake_image)跑一下你就會(huì)發(fā)現(xiàn)圖像在程序眼里根本不是“畫面”而是一張寫滿數(shù)字的網(wǎng)格。這里有兩個(gè)值得記住的點(diǎn)第一這張數(shù)字網(wǎng)格就是CNN的“輸入層”接收的數(shù)據(jù)第二數(shù)字的取值范圍很關(guān)鍵后面你訓(xùn)練網(wǎng)絡(luò)時(shí)經(jīng)常要把這些數(shù)字除以255讓它們落在0到1之間這個(gè)操作叫歸一化很多新手漏了這一步導(dǎo)致模型怎么訓(xùn)都不收斂。2.2 卷積層用一個(gè)小窗口“掃描”整張圖既然圖是數(shù)字網(wǎng)格那怎么從中找出特征最笨的辦法是把所有數(shù)字拉平成一條長(zhǎng)向量交給全連接層處理。但這樣做有個(gè)致命問題一張100×100的圖拉平后有一萬個(gè)數(shù)字全連接層要為每個(gè)數(shù)字配一大堆權(quán)重參數(shù)數(shù)量爆炸訓(xùn)練極慢還容易過擬合。卷積層換了個(gè)思路它不用看整張圖只用一個(gè)小窗口比如3×3的小方塊在圖上滑動(dòng)每滑到一個(gè)位置就做一次“逐點(diǎn)相乘再求和”得出來的結(jié)果構(gòu)成一張新的小圖叫特征圖。這個(gè)小窗口就是濾波器也叫卷積核。一個(gè)濾波器只能找一種特征——有的負(fù)責(zé)找豎線有的負(fù)責(zé)找橫線有的負(fù)責(zé)找拐角。想讓網(wǎng)絡(luò)認(rèn)識(shí)更復(fù)雜的東西就多放幾個(gè)濾波器所以卷積層的輸出通常有好多張?zhí)卣鲌D每一張是“某個(gè)特征在圖上哪里出現(xiàn)了”的地圖。這里有兩個(gè)概念會(huì)在代碼里反復(fù)出現(xiàn)步長(zhǎng)和填充。步長(zhǎng)就是窗口每次往右或往下挪幾格步長(zhǎng)越大輸出圖越小填充是在原圖四周補(bǔ)一圈0用來控制輸出尺寸。比如輸入是32×32的圖卷積核是3×3填充設(shè)為1輸出還是32×32如果不填充輸出就變成30×30。動(dòng)手改代碼時(shí)常會(huì)因?yàn)檫@兩個(gè)參數(shù)沒算清楚導(dǎo)致后面全連接層維度不匹配這個(gè)是后話你現(xiàn)在先有個(gè)印象。2.3 激活函數(shù)和池化層給特征“表態(tài)”再“瘦身”卷積層是線性操作就算堆一百層本質(zhì)上還是線性變換的組合學(xué)不到復(fù)雜規(guī)律。這時(shí)候就需要激活函數(shù)出場(chǎng)。CNN里最常用的是ReLU公式極其簡(jiǎn)單負(fù)數(shù)全部變0正數(shù)原樣保留。import torch # 模擬ReLU把負(fù)數(shù)清零 x torch.tensor([-2.0, -1.0, 0.0, 1.0, 3.0]) y torch.relu(x) print(y) # 輸出: tensor([0., 0., 0., 1., 3.])為什么要把負(fù)數(shù)清零因?yàn)榍辶悴僮饕肓朔蔷€性讓網(wǎng)絡(luò)有能力擬合各種彎彎曲曲的邊界。你可以把ReLU理解成“表態(tài)”這個(gè)位置沒找到特征就直接閉嘴輸出0找到了就大聲報(bào)數(shù)。池化層接在卷積和激活后面最常見的是最大池化在一個(gè)2×2的小窗口里取最大值然后窗口滑過整張圖。這樣做的效果是圖像尺寸縮小一半但最強(qiáng)的特征被保留下來計(jì)算量也大幅下降。而且池化讓網(wǎng)絡(luò)對(duì)輕微的位移不那么敏感——小貓?jiān)谡掌锷晕⑵税雮€(gè)像素提取到的特征幾乎不變。要注意的是池化層沒有可學(xué)習(xí)的參數(shù)它是個(gè)純“瘦身”操作新手常誤以為它和卷積一樣需要訓(xùn)練。2.4 全連接層收尾把特征“拉平投票”經(jīng)過幾輪“卷積→激活→池化”之后原始圖片已經(jīng)變成一堆小而深的特征圖。接下來要做的是把這些特征圖拉平成一維向量送進(jìn)全連接層做最終判斷。全連接層就像一個(gè)投票委員會(huì)每個(gè)輸入特征有權(quán)重經(jīng)過加權(quán)求和后輸出每個(gè)類別的得分。分類任務(wù)通常在最后一層接softmax把這些得分換算成概率比如“是貓的概率0.8是狗的概率0.2”。完整的CNN流程你可以記成一句話輸入→卷積→激活→池化→重復(fù)若干次→拉平→全連接→輸出概率。下面用一個(gè)極簡(jiǎn)的CNN把這句話落到代碼上import torch import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super().__init__() # 卷積塊1輸入3通道彩色圖輸出8個(gè)特征圖 self.conv1 nn.Conv2d(in_channels3, out_channels8, kernel_size3, padding1) self.pool1 nn.MaxPool2d(kernel_size2, stride2) # 卷積塊2輸入8個(gè)特征圖輸出16個(gè)特征圖 self.conv2 nn.Conv2d(in_channels8, out_channels16, kernel_size3, padding1) self.pool2 nn.MaxPool2d(kernel_size2, stride2) # 全連接層把拉平后的特征映射到10個(gè)類別 self.fc nn.Linear(16 * 8 * 8, 10) def forward(self, x): x torch.relu(self.conv1(x)) # 先卷積再ReLU激活 x self.pool1(x) # 池化縮小尺寸 x torch.relu(self.conv2(x)) x self.pool2(x) x x.view(x.size(0), -1) # 拉平成一維向量 x self.fc(x) # 全連接輸出10個(gè)類別的分?jǐn)?shù) return x上面這段代碼里的模型假設(shè)輸入是32×32的彩色圖。數(shù)據(jù)流向是這樣的32×32輸入經(jīng)過conv1padding1還是32×32經(jīng)過pool1變成16×16再走一輪變成8×8這時(shí)有16個(gè)特征圖拉平后就是16×8×81024個(gè)數(shù)全連接層把這1024個(gè)數(shù)映射到10個(gè)類別。如果你想換個(gè)數(shù)據(jù)集只需要改兩處全連接層的輸入維度以及最后的輸出類別數(shù)。第一次跑模型時(shí)建議在forward里加一行print(x.shape)看看每一步數(shù)據(jù)尺寸變成什么樣這是理解CNN最快的方式。3. ResNet為什么是CNN的升級(jí)版殘差塊到底在做什么現(xiàn)在你已經(jīng)知道CNN的四個(gè)積木塊了。但你可能有個(gè)疑問既然卷積、池化、全連接一套流程能把貓和狗分開那為什么還要搞一個(gè)ResNet出來答案很簡(jiǎn)單因?yàn)槿藗儼l(fā)現(xiàn)CNN越深反而越難訓(xùn)練而ResNet專治這個(gè)毛病。這一章我們解決兩個(gè)問題普通CNN到底遇到了什么困難以及殘差塊是用什么思路化解困難的。3.1 普通CNN加深后為什么會(huì)“翻車”直覺告訴我們層數(shù)越多網(wǎng)絡(luò)應(yīng)該越強(qiáng)——畢竟能提取更細(xì)的特征。但研究者實(shí)驗(yàn)后發(fā)現(xiàn)普通CNN在層數(shù)超過一定值之后訓(xùn)練集上的錯(cuò)誤率反而升高了不是過擬合是根本學(xué)不動(dòng)。我第一學(xué)到這里時(shí)也不懂后來才明白主要有兩個(gè)原因在搗亂。第一個(gè)原因是梯度消失。深度學(xué)習(xí)靠“反向傳播”更新參數(shù)誤差要從最后一層傳回第一層每經(jīng)過一層就要乘一次梯度。如果梯度值小于1乘上幾十次之后傳到前面的梯度已經(jīng)小到接近0前面的卷積層幾乎學(xué)不到東西陷入“癱瘓”。第二個(gè)原因是退化問題理論上更深的網(wǎng)絡(luò)至少應(yīng)該能模仿淺層網(wǎng)絡(luò)的性能只要后面幾層學(xué)“什么都不做”就行但實(shí)踐證明讓普通網(wǎng)絡(luò)學(xué)會(huì)“什么都不做”這件事本身就非常困難??偨Y(jié)成一句話層數(shù)加深后網(wǎng)絡(luò)不是不想學(xué)是傳不下去、學(xué)不動(dòng)。這時(shí)候需要的不是更復(fù)雜的結(jié)構(gòu)而是一條能讓信息“抄近路”的通道。3.2 殘差塊的設(shè)計(jì)思路y F(x) xResNet解決這個(gè)問題的辦法看起來簡(jiǎn)單到讓人懷疑在模塊外面加一條短路把輸入直接加到輸出上。一個(gè)殘差塊的輸出不是“經(jīng)過卷積之后的結(jié)果”而是“卷積結(jié)果加上原始輸入”。用公式寫就是y F(x) x其中F(x)是幾層卷積和激活的組合。這條加法操作網(wǎng)上各種文章叫“跳躍連接”“恒等映射”“shortcut”聽起來很高深其實(shí)你只需要理解它給了網(wǎng)絡(luò)一條短路通道信息可以不經(jīng)過中間的卷積層直接往后傳。這樣一來即使某一層卷積學(xué)得很差原始輸入x也能原樣保留。更妙的是如果這一層確實(shí)沒什么可學(xué)的網(wǎng)絡(luò)只需要讓F(x)趨近于0輸出就約等于輸入x相當(dāng)于這一層自動(dòng)變成了“透明層”。相比之下普通CNN沒有這條通道每一層都必須“硬學(xué)”一個(gè)結(jié)果學(xué)不好反而添亂。打個(gè)比方普通CNN像一條必須每道工序都做好的流水線ResNet則在每段工序旁邊修了一條應(yīng)急通道師傅狀態(tài)不好時(shí)東西可以直接滑到下一站不影響整體進(jìn)度。這就是為什么ResNet能堆到50層、101層甚至更深而普通CNN堆到20多層就學(xué)不動(dòng)了。3.3 用一張表回答“ResNet是CNN嗎”很多人糾結(jié)這個(gè)問題其實(shí)答案很明確是的ResNet就是CNN的一種是CNN的改進(jìn)版本。那種“ResNet和CNN是兩套東西”的感覺來自對(duì)比時(shí)把“普通CNN”默認(rèn)成了“CNN”本身。下面這張對(duì)比表幫你把關(guān)系看清楚。對(duì)比維度普通CNNResNet基本積木塊卷積、激活、池化、全連接同樣是卷積、激活、池化、全連接特殊結(jié)構(gòu)沒有跳躍連接在卷積塊之間加了殘差連接shortcut能加深嗎十幾層后容易梯度消失可以輕松堆到幾十上百層典型代表簡(jiǎn)易CNN、VGG系列ResNet-18、ResNet-50訓(xùn)練難度淺層好訓(xùn)加深后變難深度較大時(shí)依然穩(wěn)定所以如果你在新手期聽人說“ResNet不是CNN它和CNN是兩種網(wǎng)絡(luò)”那這話是錯(cuò)的。更準(zhǔn)確的說法是ResNet屬于CNN家族它是為了解決CNN加深時(shí)“學(xué)不動(dòng)”的問題在結(jié)構(gòu)上做的一個(gè)巧妙升級(jí)。搞懂這一點(diǎn)你就不會(huì)再被這兩個(gè)詞繞暈了。3.4 動(dòng)手寫一個(gè)殘差塊BasicBlock說了這么多不如直接看代碼。下面是PyTorch里一個(gè)最基礎(chǔ)的殘差塊對(duì)應(yīng)的是ResNet-18這類淺層ResNet里使用的結(jié)構(gòu)通常叫BasicBlockimport torch import torch.nn as nn class BasicBlock(nn.Module): def __init__(self, in_channels, out_channels, stride1): super().__init__() # 兩個(gè)3x3卷積每個(gè)后面跟一個(gè)批量歸一化 self.conv1 nn.Conv2d(in_channels, out_channels, kernel_size3, stridestride, padding1, biasFalse) self.bn1 nn.BatchNorm2d(out_channels) self.conv2 nn.Conv2d(out_channels, out_channels, kernel_size3, stride1, padding1, biasFalse) self.bn2 nn.BatchNorm2d(out_channels) # 當(dāng)輸入輸出形狀不一致時(shí)用1x1卷積調(diào)整x的形狀 self.shortcut nn.Sequential() if stride ! 1 or in_channels ! out_channels: self.shortcut nn.Sequential( nn.Conv2d(in_channels, out_channels, kernel_size1, stridestride, biasFalse), nn.BatchNorm2d(out_channels) ) def forward(self, x): identity x # 先保存原始輸入這就是“跳躍連接”的起點(diǎn) out torch.relu(self.bn1(self.conv1(x))) out self.bn2(self.conv2(out)) out identity # 關(guān)鍵一步卷積結(jié)果和原始輸入相加 out torch.relu(out) return out和上一章的SimpleCNN相比這個(gè)殘差塊多了三樣?xùn)|西批量歸一化、identity變量、相加操作。批量歸一化的作用是在每層卷積之后把數(shù)據(jù)分布拉回正規(guī)范圍讓訓(xùn)練更穩(wěn)定這也是ResNet敢訓(xùn)練得很深的原因之一。identity保存的是剛進(jìn)入模塊時(shí)的原始數(shù)據(jù)它沒有經(jīng)過任何卷積操作相當(dāng)于抄了近路。最后out identity這一行就是跳躍連接本身它會(huì)先在通道數(shù)上對(duì)齊兩個(gè)矩陣如果通道不一致shortcut里的1×1卷積會(huì)負(fù)責(zé)把identity調(diào)整成和out一樣的大小再逐元素相加。把幾個(gè)這樣的BasicBlock串起來最后接一個(gè)全連接層就組成一個(gè)微型ResNet。你在第4章會(huì)看到項(xiàng)目第二周做的事情本質(zhì)上就是重復(fù)練習(xí)組裝這種殘差塊。4. 拿到這份Python資源之后先認(rèn)識(shí)文件再準(zhǔn)備環(huán)境概念有了代碼也見過了接下來該真正動(dòng)手了。但打開資源包的那一刻很多新手會(huì)被嚇一跳又是“1第一周”又是“2第二周”里面還有一堆以.idea、.iml結(jié)尾的陌生文件。別慌這一章我?guī)阒饌€(gè)認(rèn)門把文件夾里每一類文件是干什么的弄清楚然后裝好環(huán)境讓代碼跑起來。4.1 資源里到底有什么按文件夾認(rèn)門這份代碼是按兩周的學(xué)習(xí)節(jié)奏組織的兩個(gè)文件夾的名字已經(jīng)說明了內(nèi)容第一周搭簡(jiǎn)易CNN第二周搭ResNet。下面這張表把核心文件列出來你對(duì)照著看就不迷路。文件/文件夾作用備注1第一周/test.py第一周的訓(xùn)練/測(cè)試主流程從這里開始看1第一周/cnn_utils.pyCNN相關(guān)的輔助函數(shù)包含數(shù)據(jù)加載、參數(shù)初始化等1第一周/datasets/train_signs.h5第一周訓(xùn)練數(shù)據(jù)集手勢(shì)數(shù)字圖片1第一周/datasets/test_signs.h5第一周測(cè)試數(shù)據(jù)集用來驗(yàn)證訓(xùn)練效果2第二周/resnets_utils.pyResNet相關(guān)的輔助函數(shù)第二周的核心工具文件2第二周/kt_utils.py笑臉數(shù)據(jù)加載工具配合train_happy使用2第二周/datasets/train_happy.h5第二周附加數(shù)據(jù)集笑臉識(shí)別任務(wù).idea、*.iml、workspace.xmlIDE配置文件可以完全忽略pycachePython運(yùn)行緩存可以完全忽略你可能會(huì)注意到第二周的datasets里也有train_signs.h5。這說明同一個(gè)手勢(shì)數(shù)據(jù)集被兩套模型各跑了一遍正好可以用來對(duì)比普通CNN和ResNet誰的準(zhǔn)確率更高、訓(xùn)練過程更穩(wěn)這是一個(gè)非常直觀的體驗(yàn)設(shè)計(jì)。至于kt_utils.py和train_happy.h5它們是另一個(gè)小任務(wù)——區(qū)分圖片里是笑臉還是非笑臉適合你在學(xué)會(huì)ResNet之后拿來做二次練習(xí)。第一次看代碼時(shí)我建議你先打開test.py別看細(xì)節(jié)只追主線加載數(shù)據(jù)→建立模型→訓(xùn)練→測(cè)試。你會(huì)發(fā)現(xiàn)流程和上一章的SimpleCNN幾乎一樣區(qū)別只是模型換成了ResNet。輔助函數(shù)先不細(xì)讀等主線通了再回頭看效率會(huì)高很多。另外資源里的緩存文件名帶了cpython-37字樣說明作者在Python 3.7版本下運(yùn)行過你現(xiàn)在用更新的Python版本大概率也能跑但要注意依賴庫(kù)的版本兼容。4.2 跑起來之前先裝好三樣?xùn)|西動(dòng)手前需要準(zhǔn)備的東西不多就三樣Python環(huán)境、PyTorch庫(kù)和h5py庫(kù)。如果你的電腦里還沒有打開終端執(zhí)行下面這條命令可以一次裝齊pip install torch h5py numpy matplotlib裝完之后建議你先用下面兩行代碼驗(yàn)證環(huán)境是否正常import torch import h5py print(torch.__version__)能打印出torch的版本號(hào)說明環(huán)境沒問題了。這里有個(gè)重要的心態(tài)調(diào)整新手階段完全可以用CPU訓(xùn)練不需要急著買顯卡。第一周的CNN模型很小用CPU跑幾分鐘也能完成訓(xùn)練足夠你看清楚整個(gè)流程。為什么要提這一點(diǎn)因?yàn)榻?jīng)常有新手第一反應(yīng)是“我沒有GPU是不是學(xué)不了”然后在配環(huán)境中卡了三天。事實(shí)是你只需要先把邏輯跑通GPU是后面提速的事不是入門的門檻。如果你電腦上同時(shí)裝了多個(gè)Python環(huán)境建議用虛擬環(huán)境工具比如conda或venv給這個(gè)項(xiàng)目單獨(dú)開一個(gè)環(huán)境。虛擬環(huán)境相當(dāng)于給項(xiàng)目一個(gè)獨(dú)立的“小房間”里面裝的庫(kù)互不干擾以后出問題了直接扔掉重建比在全局環(huán)境里折騰省心得多。這也是我踩過坑之后才養(yǎng)成的習(xí)慣——曾經(jīng)因?yàn)槿汁h(huán)境里某個(gè)庫(kù)版本沖突連續(xù)兩次安裝失敗后來一律開新環(huán)境再?zèng)]遇到過這個(gè)問題。4.3 讀懂h5數(shù)據(jù)項(xiàng)目里的第一道關(guān)卡安裝好環(huán)境之后你碰到的第一個(gè)實(shí)際障礙大概率是數(shù)據(jù)集文件。這套資源的所有數(shù)據(jù)都打包在.h5文件里新手看到這種格式往往不知道從哪下手。簡(jiǎn)單說.h5就是一種可以同時(shí)存儲(chǔ)多個(gè)數(shù)組的文件格式里面數(shù)據(jù)按“鍵值對(duì)”組織類似一個(gè)字典。要查看文件里有哪些鍵用h5py寫幾行代碼就行import h5py # 先打開文件看看里面存了什么 with h5py.File(1第一周/datasets/train_signs.h5, r) as f: print(list(f.keys()))運(yùn)行后你會(huì)看到類似[train_x, train_y]這樣的鍵名列表。這時(shí)你再讀取就順理成章了import h5py import numpy as np with h5py.File(1第一周/datasets/train_signs.h5, r) as f: X np.array(f[train_x]) # 圖像數(shù)據(jù) y np.array(f[train_y]) # 標(biāo)簽 print(X.shape, y.shape)打印出來的形狀信息非常重要一般你會(huì)看到(樣本數(shù), 高, 寬, 通道數(shù))這種結(jié)構(gòu)。這里埋伏著新手最容易踩的一個(gè)坑h5文件里存的圖像維度順序是“高、寬、通道”而PyTorch的卷積層要求輸入是“通道、高、寬”。如果你不管三七二十一直接把數(shù)據(jù)喂給模型會(huì)立刻報(bào)維度錯(cuò)誤。解決辦法是交換軸的順序代碼寫成X np.transpose(X, (0, 3, 1, 2))同時(shí)再除以255做歸一化。項(xiàng)目里的utils文件通常已經(jīng)把這些工作封裝好了所以新手第一周直接用現(xiàn)成的加載函數(shù)最穩(wěn)等你理解了這個(gè)步驟再自己去寫也不遲。5. 避坑指南搭CNN和ResNet最容易翻車的五個(gè)坑代碼看得再多不如自己報(bào)錯(cuò)一次學(xué)得快。我下面列出的五個(gè)坑幾乎每個(gè)新手都會(huì)踩中至少兩三個(gè)每一個(gè)我都會(huì)按“現(xiàn)象→原因→解決”的順序講清楚你碰到時(shí)可以一條條對(duì)著排查。5.1 環(huán)境與路徑還沒開始訓(xùn)練就卡住的兩個(gè)坑坑1找不到數(shù)據(jù)集文件。現(xiàn)象是運(yùn)行test.py時(shí)拋出FileNotFoundError提示找不到datasets/train_signs.h5。原因是代碼里寫的是相對(duì)路徑而你是從別的目錄啟動(dòng)腳本的Python按照當(dāng)前工作目錄去找文件自然找不到。解決方法是先確認(rèn)你當(dāng)前的運(yùn)行目錄在代碼里加一行import os; print(os.getcwd())看輸出是不是項(xiàng)目所在目錄如果不是用os.chdir(項(xiàng)目絕對(duì)路徑)切換過去或者把數(shù)據(jù)路徑改成絕對(duì)路徑。另外提醒一句文件夾名帶了“1第一周”這種中文極少數(shù)情況下在某些開發(fā)環(huán)境會(huì)出編碼問題穩(wěn)妥的做法是進(jìn)到文件夾內(nèi)部運(yùn)行不要從外部拼接層次過深的路徑???提示缺少模塊?,F(xiàn)象是報(bào)ModuleNotFoundError: No module named h5py或類似錯(cuò)誤。原因很簡(jiǎn)單新環(huán)境里沒有安裝全依賴庫(kù)。解決方法是執(zhí)行pip install h5py補(bǔ)齊缺失的庫(kù)。但我更推薦的做法是不要挨個(gè)手動(dòng)裝先把環(huán)境中已裝的庫(kù)導(dǎo)出成清單文件以后換電腦直接一鍵還原。如果你發(fā)現(xiàn)torch裝好后導(dǎo)入報(bào)錯(cuò)先檢查是不是裝成了CPU版本但想用GPU或者反過來入門階段統(tǒng)一裝CPU版本即可省去一堆CUDA配置問題。5.2 維度與數(shù)據(jù)格式一跑就報(bào)錯(cuò)的經(jīng)典原因坑3矩陣乘法維度不匹配。現(xiàn)象是訓(xùn)練腳本跑到forward時(shí)報(bào)RuntimeError: size mismatch。原因大多是你改了網(wǎng)絡(luò)結(jié)構(gòu)或輸入圖片尺寸但全連接層的輸入維度沒有跟著算清楚。我在第2章說過全連接層的輸入等于“最后一個(gè)池化層輸出的特征圖數(shù)量×寬×高”這個(gè)值只要卷積、步長(zhǎng)、池化任何一處改動(dòng)數(shù)字就會(huì)變。解決方法是給網(wǎng)絡(luò)寫一個(gè)“維度探測(cè)”流程在forward里臨時(shí)插入print(x.shape)跑一次就能看到每一層輸出的實(shí)際尺寸確定后再把數(shù)字填進(jìn)全連接層。剛學(xué)的時(shí)候覺得加print很笨但它比閉眼硬算快得多。坑4圖像數(shù)據(jù)的維度順序不對(duì)?,F(xiàn)象是數(shù)據(jù)能加載但送給模型時(shí)shape是(64, 64, 3)而模型期望(3, 64, 64)報(bào)錯(cuò)信息看起來像“Expected 4D input, got 3D input”。原因是h5文件里存的是“高、寬、通道”順序而PyTorch卷積層要的是“通道、高、寬”。解決方法是做一次軸交換np.transpose(X, (0, 3, 1, 2))把通道維從最后挪到第二位。這也是項(xiàng)目里utils文件的核心功能之一所以你用現(xiàn)成函數(shù)時(shí)會(huì)覺得很順自己重寫時(shí)就容易翻車。5.3 訓(xùn)練不收斂跑起來了但loss不降坑5loss一直不下降。現(xiàn)象是訓(xùn)練了好幾個(gè)epoch損失函數(shù)值幾乎沒變準(zhǔn)確率還在瞎猜的水平。原因通常是下面幾個(gè)中的一個(gè)輸入數(shù)據(jù)沒歸一化像素還停留在0~255、學(xué)習(xí)率設(shè)得太離譜太大震蕩、太小蝸牛、或者輸出層接法有問題。解決方法是按順序排查檢查輸入數(shù)據(jù)有沒有除以255把學(xué)習(xí)率調(diào)到0.001這個(gè)常用起點(diǎn)如果用了CrossEntropyLoss交叉熵?fù)p失網(wǎng)絡(luò)最后一層不要再額外加softmax因?yàn)檫@個(gè)損失函數(shù)內(nèi)部已經(jīng)包含了softmax操作重復(fù)加會(huì)導(dǎo)致梯度異常。如果你想讓實(shí)驗(yàn)結(jié)果可復(fù)現(xiàn)還可以在代碼開頭加上torch.manual_seed(42)固定隨機(jī)種子這樣每次跑出來的結(jié)果基本一致不會(huì)出現(xiàn)“明明沒改代碼效果卻忽好忽壞”的玄學(xué)情況。6. 下一步怎么學(xué)從跑通代碼到真正吃透ResNet到這里你已經(jīng)知道CNN和ResNet是什么關(guān)系也能看懂資源里的文件結(jié)構(gòu)了。接下來的學(xué)習(xí)路徑我建議你按下面這張表的順序走步驟任務(wù)目標(biāo)第一步運(yùn)行第一周的test.py完整走通“加載數(shù)據(jù)→訓(xùn)練→測(cè)試”流程第二步精讀cnn_utils.py讀懂?dāng)?shù)據(jù)加載和參數(shù)初始化細(xì)節(jié)第三步自己寫一個(gè)SimpleCNN不看源碼也能搭出CNN第四步運(yùn)行第二周的ResNet代碼感受殘差塊的訓(xùn)練效果第五步改寫一個(gè)BasicBlock能解釋每一行在干嘛每一步的驗(yàn)收標(biāo)準(zhǔn)都很明確能跑通且能向別人講清楚代碼在做什么。特別是走到第四步時(shí)建議你在同一份手勢(shì)數(shù)據(jù)集上分別用第一周的CNN和第二周的ResNet訓(xùn)練對(duì)比兩者的最終準(zhǔn)確率和loss曲線。你大概率會(huì)發(fā)現(xiàn)ResNet收斂得更穩(wěn)、準(zhǔn)確率更高——這種“親手看到差距”的體驗(yàn)比背十遍理論都管用。走完基礎(chǔ)流程后可以試著把數(shù)據(jù)集換成train_happy.h5做一次笑臉識(shí)別。這仍然屬于分類任務(wù)但數(shù)據(jù)分布變了你會(huì)被迫去檢查維度、類別數(shù)、歸一化方式這些細(xì)節(jié)。接著可以挑戰(zhàn)一下傳說中的ResNet-18它其實(shí)就是把你學(xué)過的BasicBlock串聯(lián)4組每組分別重復(fù)2次再接全連接層。你在第3章見過的每個(gè)零件到這里全部派上用場(chǎng)。如果想更進(jìn)一步試著把學(xué)習(xí)率從0.001改成0.0001或者把batch size從32改成64觀察訓(xùn)練曲線變化建立對(duì)超參數(shù)的“手感”。最后說點(diǎn)我自己的教訓(xùn)。剛上手時(shí)我總喜歡跳過看數(shù)據(jù)這一步拿起來就訓(xùn)練結(jié)果經(jīng)常被維度報(bào)錯(cuò)和loss不降折騰一晚上。后來我強(qiáng)制自己每次拿到新項(xiàng)目先打印數(shù)據(jù)shape、再打印標(biāo)簽類別數(shù)、最后才寫模型。這個(gè)習(xí)慣讓我少走了很多彎路。從那以后每次拿到新項(xiàng)目我都會(huì)先走一遍這個(gè)流程再開始跑代碼。希望幫到你——現(xiàn)在放心地去跑你的第一個(gè)test.py吧跑通的那一刻你會(huì)覺得這一切并不難。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月天开心网| 丁香花婷婷五月天| 大香蕉伊人99| 五六月丁香激情视频| 免费观看2018www黄色操逼网站| 久久丁香五月| 婷婷99视频精品| 99这里精品| 日韩在线成人电影| 偷拍九九热| 成人在线网址| 99在线视频精品| 第四色婷婷五月| 99人碰碰碰| 万月丁香狠狠爱| 国产性爱亚洲是图| 黄色成人网站在线播放| 99久在线精品99re8| 亚洲色综合| 亚洲区在线| 深爱激情六月天| 五月天激情www| 六月丁香婷婷拍拍| 色噜噜狠狠色综合日日| 婷婷色影院| www.玖玖婷婷在线| 久久一级免费黄色片| 日产精品久久久久久久蜜臀| 99无码精品| 婷婷欧美激情综合| 人人摸人人干| 91九色中文| 五月丁香婷婷三级| 99热首页| 综合网啪| 日韩淑女人妻luan伦激情精品一区二| 综合网啪| 亚洲成人免费在线| 五月婷婷中文字幕| 激情五月综合亚洲另类| 五月婷视频| 大香蕉精品视频| 99免费在线视频| 我要看激情五月天| WWW五月| 狠狠操天天日| 亚洲综合色棒| 99人妻碰碰碰久久久久视| 久久久久久久久人妻| 天天情色五月天| 激情五月深爱五月| 日韩一区二区三区无码| 只有久久精品免费| 五月天狠狠网| 国产综合色婷婷精品久久| 久久天天| 日本人妻A片成人免费看片| 久re热视频| 丁香五月激情婷婷婷婷在线观看| 99热新网址| 亚洲AV网址| 中文字幕综合网| 九九热10| 99国产精品白浆在线观看免费 | 色综合激情| 日韩久热| 亚洲中文字幕在线观看| 日韩三级视频一区二区| 婷婷综合色图| 五月天激情小说电影| 99er6| 五月丁香啪啪激情| 五月丁香六月婷婷国产视频| 五月丁香琪琪| 成人国产欧美大片一区| 久久全色| www.婷婷五月天,com| 国内婷婷丁香社区在线播放| 丁香狠狠色婷婷久久无码视频| 成人色五婷婷| 亚洲天天| 色五月婷婷91在线| 日韩色色色色色| 噜综合| 色青青五月| 色噜噜在线| 可似看的AV| 美国十月色婷婷在线观看| 狼人婷婷久久| 乱精品一区字幕二区| 大香蕉婷婷婷| 婷婷香蕉| 国产亚洲色婷婷久久99精品91| 人妻久久婷婷| 丁香五月天91| 夜夜骑操AV| 久久99久久99精品免视看婷婷| 五月婷婷激情综合视频| 婷婷综合| 日韩精品一区二区刘| 久久婷狠狠色| 五月天成人在线| 久久久久久久人妻| 久99999热视频在线观看免费| 99视频综合网| 99色色网站| 日本九九热| 人妻久久人妻久久第一区| 色色色色色色色色综合网| 丰满少妇乱A片无码| 91xxxx九色| 欧美日综合| 99re这里有精品手机在线| 99热官网| 北条麻妃伊人 | 色色色五月天激情资源| 久久97| 人妻VideOssS人妻| 欧美日韩91| 成人精品免费在线观看| 婷婷九月激情| 综合大香蕉| 天天色天天操天天射| 五月激情基地| 丁香五月激情啪啪| 国产第99页| 天天人人综合| 97中文在线| 色天使久久综合| 久久草大香蕉| 五月丁香色婷婷色| 婷婷五月超碰| 99这里是精品| 国产性爱在线| 99热免费精品热久久66| 丁香九月婷婷| 婷婷五月天奸女| 婷婷五月综合在线视频| 丁香激情五月| 亚洲五月天色| 久久精品婷婷| 99资源在线视频| 日韩成人精品一区久久久久| 亚洲激情综合| 99热大全在线观看| 婷婷婷婷色| www.99操| 偷拍九九热| 91精品久久久久久| 色一情一乱一乱一区91| 啪啪 综合网| 五月天色婷婷成人| 97碰碰草| 中文字幕婷婷五月天在线观看| 丁香婷婷大香蕉| AA久久| 日韩1区2区| 激情综合丁香六| Av性爱网站| 综合AV在线| 啪啪夜久久| 六月丁香六月婷婷欧美| 色婷婷五月成人网| 久久久久亚洲AV无码网影音先锋| 偷偷操99| 超碰超碰在线| 91久热| 伊人久久大香线蕉av一区| 国产高清视频91九九九久久久| 激情五月丁香色婷婷| 亭亭五月丁香五月天激情| 99九九99九九九视频精彩| 日日操日日撸| 丁香婷婷性爱| 99热这里是精品| www色色com| 91人人爽狠狠狠| 六月婷婷久久| 婷婷激情图片| 五月五丁香婷婷| 亚洲欧洲中文日韩久久AV乱码| 欧美性做爰大片免费看办公室| 丁香五月天堂网| 色综合99| 精品无码人妻一区| 色亭亭九月| 丁香五月激情综合啪啪| 99视频在线观看网址| 五月婷婷激情五月| 丁香五月婷婷啪啪啪| 亚洲综合99| 亚洲精品国产成人AV在线| 99久久综合网| 操逼在线视频| 五月深情久久| 久9久9久9久9久9久9| 黄色三级日本| 97色婷婷| 五月天激情网站| 欧美日韩国产一区| 五月丁香成人网| 亚洲五月婷婷在线| 五月色情婷婷| 超碰在线国产| 色 五月俺去也| 久cao香蕉影院| 欧美成人性爱网| 久久激情五月网| 日本99热| 这里只有精彩亚洲视频推荐| 婷婷五月综合久久中文字幕| 激情综合色| 五月丁香伊人网| www.激情com| 97精品欧美91久久久久久久| 激情婷婷另类| 999激情视频| 丁香五月影院| 久久99热这里只有精品| AV激情五月| 国产精品美女久久久久AV超清| 成人综合伍月天| 亚洲视频无| 91狠狠综合久久久| 天堂AV在线看| 婷婷香蕉| 久久99看免费| 婷婷最新地址| 婷婷狠狠操| 五月丁香久久激情网| 大香蕉人在线65| 日韩啪啪视频| 日韩精品一区二区亚洲AV观看| 色久婷婷五月| 精品网站:999WWW| 色婷婷成人| 久久机热/这里只有精品| 996热| 日本黄 色 片| 综合色播| 99色网站| 久久开心五月天激情| 激情婷婷丁香五月天| 五月天网址在线刘玥| 亚洲va综合va国产va中文| 梁铮版蜘蛛女在线观看| 97人人操| 国产色视频网站2| 丁香成人五月天| 五月天成人综合| 婷婷五月丁香五月丁香| 综合色99| 99热 在线播放| 另类图片五月天| 伊人激情影院| 五月天激情美女久久| 色五月婷婷中文字幕| 色五月首页| 五月婷婷色色色| 九色亚洲| www久视频com| 欧美三9久九观看| 深爱五月婷婷| 丁香婷婷大香蕉| 男人的天堂五月丁香| 日本女va| 婷婷色女| 99激情网| 九九热这里只有精品5| 九九久久污| 五月丁香综合啪啪啪啪啪| 五月丁香婷婷成人网| 五月丁香综合精品| 六月色色综合| 深爱激情九九五月天 | 久久五月天激情视频| 國語久久婷| 国产永久一黄| 最熟少妇乱码| 色婷插| 中文字幕成人| 99操碰| 91精品久久久久久综合五月天| 五月亭亭开心网| 婷婷五月深深爱| 九九九成人在线视频| 国语对白性爱视频播放| 色色影院aaaav| 丁香五月精品视频| A一级操| 五月天丁香网| 五月丁香婷婷色| 操操国产| 99热九九这里只有精品| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 日本人妻伦在线中文字幕| 激情五月天丁香| 亚洲成人一区| 丁香六月婷婷综合| 婷婷综合视频| 91 影音先锋| 中字幕视频在线永久在线观看免费| 丁香六月欧美| 精品少妇人妻AV无码专区偷人| 国产欧美日韩综合精品一区二区| 97人碰人操| 超碰在线观看三级片| 久久精品一区二区三区四区| 精品热青草| 大香蕉视频婷婷| 中文超碰视在线| 97亚洲精品| 色色影院黄大片| 黑人无码一区| 久久免费精品小视频| 99色色热热| 五月天婷婷三级黄| 亭亭五月天成人| 激情五月天激情综合网| 99在线视频播放| 五月丁香在线观看| 天堂在线伊久| 婷婷久久五月天丁香| 五月丁香婷中文| 99热这里在线精品| 中文字幕色色色| 天天爽,夜夜爽| 在线天堂9| 色色婷| 久久久人妻| 婷婷丁香无码专区| 九九婷婷综合| 美女激情婷婷| 婷婷五月综激情| 日本一级黄色电影| 亚洲av成人电影在线观看| 操逼视频一区| 五月丁香拍拍激情综合| www.狠狠操| 久久激情综合| 欧美人人草草| ay2区| 人人操人av| 五月婷婷,狠狠操| 天天狠狠夜夜狠狠2023| 偷拍99在线视频观看| 99在线视频资源| 五月激情丁香六月狠狠干| 久久久久久五月天| 四色99久久| 大香焦啪啪啪| 99re热视频这里只有综合亚洲| 丁香伊人综合| 国产激情视频在线观看| 东北熟女高潮99综合99| 综合丁香婷婷五月天| 九九热经典视频在线观看| 精品成人在线观看| 欧美A A A A A| 国产精品久久久久久白浆色欲| 美女100%露全身无挡网站| 热99在线| 丁香花社区av| 99色最新在线视频| 久久婷婷色| OYIWbGcPu8H| 99热这里在线精品| 五月丁香无码| 欧美啪啪网| 五月丁香网站在线播放| 五月天激情国产综合婷婷| 亚洲电影中文字幕| ss99热| 99久久99九九99九九九| 99久久五月丁香野外| 色婷婷丁香五月高清在线| 看全色黄大色大片| 综合精品啪啪| 激情婷婷五月天在线观看| www色色com| 日韩有码一区| 热99精品视频| 精品香蕉99久久久久网站| 五月色丁香| 丁香五月综合在线观看| 婷婷丁香红五月91C| 天天插天天狠| 少妇激情五月天| 国产婷婷综合| 婷婷激情六月视频| 久久久久久久久久久44| 五月丁香六月综合激情| 9 9热这里有精品| 黄页大全十八禁| 丁香五月婷婷基地| 久热只有这里有精品| 天天综合五月| www久久久久久久97| 色偷偷五月天| 99热丁香| 六月丁香婷婷综合狠狠爱夜夜爱| 4438国产免费看| av中文网站| 日韩黄在免| 欧美性丁香色色五月天综合爱爱| 九九精品热| 99热综合在线| 丁香六月啪啪| 精品无码色欲AV| 五月色网| 五月色导航| 欧美性生交XXXXX无码小说| 九玖视频这里只有精品| 另类小说五月天| 婷婷丁香五月天婷婷| 久久久18| 激情q青青草在线婷婷| 91丨九色丨国产打屁股| 婷婷久热| 日日夜夜干| 开心婷婷五月天电影院| 少妇水多A片太爽了| 色六月丁香婷婷狠狠干| www久视频com| 99九九精品| 丁香花五月天婷婷成人社区| 色永久| 成人AV播放| 五月综合缴情网| 国产亚洲AV人片在线| 五月丁香六月婷综合成人综合| 91精品91久久久久77777| www,婷婷五月天,com| 色99综合色88| 久久久免费精彩视频| www激情网站| 五月天婷婷久久| 性生活视频98791| 欧美丁香婷婷五月| 小视频一区| 色婷婷精品视频在线播放| 欧美色婷婷| aa久久| 色婷视频| 俺去也五月| 婷婷九月综合| 亚州美女| 人人干av| 日韩a热| 大香蕉在线99热| 九九在线精点品| 日韩性视频| 大学生高潮无套内谢视频| 婷婷五月天激情五月天| 操日视频| 青柠影视免费高清电视剧| 婷婷综合五月色播| 久久精品五月天| 国产精品美女| 久久成人人妻| 66精品国产成人| 无遮挡国产高潮视频免费观看| 涩五月色婷婷| 性色人人爽| 婷婷六月激情综合| 久久九九爽| 国产一级婬片毛片| 久久色五月| 96精品成人无码A片观看金桔| 亚亚州久久高潮| 国产亚洲在线观看| 91精品视频男人的天堂| 婷婷午夜| 亚洲啪啪网| 夜夜天天久久婷婷| 97九色| 百度一下国产精品A| 日韩99视频| 五月丁香天天| 免费亚洲婷婷中文字幕| 色噜婷婷| 激情综合网激情五月天| 九九人人精品| 色五月丁香五月婷婷五月成人网| 五月丁香手机在线| 丁香五月123| 欧美大肥婆大肥BBBBB| 免费视频99| 五月丁香婷婷六月天| 91九色小视频| 91人人妻人人操人人爽| 97精品人人A片免费看| 色婷婷超碰| 久8色色| 玖玖资源站国产| 婷婷成人在线| 激情婷婷激情在线不卡| 性色做爰片在线观看WW| 97人人射| 久久色五月天| 婷婷五月天免费视频| 99精品色色| 五月天丁香成人社| 激情五月婷婷她| 婷婷五月欧美综合| 色欲久久综合| 亚洲热视频| 偷拍91九色| 九九爱激情| 蜜桃婷婷丁香五月天狠狠久久综合| 超级碰碰碰97免费| 海外网站专业操老外| 丁香五月狠狠在线观看| 日本欧美成人片AAAA| 九九热在线精品| 99久久久久久| 久草视频一,二三四| 五月激情婷婷丁香| 日本五月婷| 天天天天天天天操| 五月婷在线色视频| 色五月视频无码播放| AAAA亚洲| 热这里只有精| 久久久久综合激动五月天| 婷婷久久欧美| 六月欧美综合色情| 欧美久久五月婷婷| 天天日夜夜草进麻麻的子宫| 激情五月亚洲综合网| 亚洲色激婷| 激情五月天综合网站网站网站| 9l视频自拍9l九色成人| 色婷婷黄色网络| 快乐激情五月色婷婷| 99日韩| 日本三级大片| 99这里有精品免费| 深爱五月天 开心网| 99亚洲大片精品永久在线观看| 成人五月天在线视频在线观看| 99久99热| 91大屁股| 99爱在线免费视频| 激情丁香九九五月综合网| 天天日天天插| 大香蕉伊人久久| 天天干天天色综合| 激情六月婷婷| 五月丁香本色在线观看| 丁香五月婷婷激情中文| 五月天婷综合| www.激情五月天。com| 色色无码日韩| www激情网| 婷婷干五月综合在线播放| 亚洲天天综合| 丁香婷婷六月天| 99热这里只有精品16| 色五月婷婷五月天| 丁香五月天堂婷婷| 久久久久98| 久99视频在线观看| 爱爱色五月天| 思思精品热在线| 噜噜狠狠色综合久| 另类视频五月天| 青青久在线视频免费观看| 91人人爱| 六月婷久久| 婷五月天天| 久久九九99字幕| 婷婷六月丁香欧美视频在线| 久久五月综合| 91人妻九色大屁股| av国产精品偷| 五月天激情婷婷五月天久久| 日韩AAAAA| 久/久精品99看9| 丰满少妇乱A片无码| 停停六月 综合| 91九九| 婷婷五月AV| 激情五月婷黄版| 婷婷色综合| 丁香五月婷婷欧美成人色图| 欧日美女Va| 五月天综合在线观看| 日韩亚洲视频| 丁香五月婷婷老师网站| 九九热a| 激情网第四色| 久久久亚洲成人无码A片| 欧美超级视频97| 99rewww| 五月天激情www| 免费视频无码| 超碰在线中文字幕| 五月天婷爱综合| 久久狼人天堂| 人妻在线观看视频| 中文字幕丰满乱孑伦无码专区| 狠狠色噜噜狠狠| 激情六月婷婷| 91凹凸在线| 五月丁香亚洲综合网| 东京热伊人| 99热在线极品极品| 激情六月下句是什么| 久热这里| 真实的国产乱XXXX在线91| 婷婷五月天色色| 激情五月天伊人影院| 色播五月丁香| 97干视频| 超碰99资源站| 伊人大香久久| 久久66精品| 婷婷色婷婷| 超碰a女人的天堂| www夜夜操wwwcon| 亚洲婷婷五月天| 久久婷婷国产| 日韩aaaaa| 亚洲色99综合天堂| 色五月天网| 久久丁香五月天| 91丨九色丨熟女丰满| 天天综合网亚洲网站| 少妇高潮呻吟A片免费看软件 | wwwss在线观看| 丁香伊人五月色婷婷五十路| 少妇人妻凹凸视频| 青青久在线视频免费观看| 4399成人黄A片| 日韩在线一级| www.久久99热地址发布| 狠狠色综合无线观看| 激情久久五月网| 九九色色| 蜜桃婷婷丁香五月天狠狠久久综合| 久久婷婷热| 亚洲性视频| 可以免费观看的av| 婷婷久久伊人| 开心婷婷丁香五月| 激情伊人网| 中文av网| 9999热在线观看| 99亚洲精品视频| 97婷婷久久丁香| 开心五月天激情网站| 色级停停| 开心五月深爱五月丁香五月激情五月| 天堂久久久久天堂网| 另类图片 五月激情| 成人无码髙潮喷水A片| 成人精品一区二区三区四区五区| 激情深爱五月天| 五月丁香美女| 免费视频WWW在线观看网站| 九九热视频首页/这里只有精品| 综合久久99| 狠狠色丁香久久久婷| 操一操干一干| 日本ww亚洲| 99在线精品免费视频| 婷婷色丁香五月| 99精品视频播放| 六月婷婷久久| 五月天婷婷社区久久综合| 超碰人人操| 国产精品久久..4399| 亚洲无码色色| 色婷婷婷综合五月天| 国产伦亲子伦亲子视频观看| 5月丁香六月婷婷| 五月婷婷97| 五月丁香欧美综合| 色五月婷婷天天干| 日本久久九| 色色a| 超碰人人干| 人人操av| 婷婷基地爱| 婷婷五月天Av| 五月婷婷六月丁香| 欧美人妻一区二区| 在线看片av| AA丁香综合激情| 婷婷五月色網站| 久久九九@| site:picc-up.com| Av在线不卡一区| 综激情网| 五月丁香啪啪拍| se婷97| 亚洲无码播放| 婷婷丁香一月| 超碰在线观看成人视| 91chinese在线| 九九热在线视频,| 亚洲色基地| 九九九九这里只有精品| 五月网网站| 99在线精品视频| 日韩精品AV一区二区三区| 伊人久久五月天综合| 成人av中文字幕| 超喷97免费在线视频| 亭亭五月丁香五月天激情| 五月色婷婷亚洲 | 亚洲天堂色色| 天天狠狠干| 第四色激情网| 天天久久九九| 丁香五月偷拍| 激情小说婷婷| 激情五月婷婷伊人| 激情爱爱网站| 天天久综合网永久入口18| 极品另类| 国色天香伊人狠狠色| 五月丁香六月成人| 色婷婷综合久久| 亚洲五月婷婷| 五月丁香六月婷婷在线| 婷婷色无码| 激情五月婷| 午夜丁香久久久久久| 天天干,天天日| AV性爱网| 亚洲色综合性| 99热99热在线观看| 熟女网站久久| 五月丁香婷婷色播无码| 五月婷婷激情综合| www.色99| 色五月综合| 欧美色小说婷婷| www.色婷婷| 九九色院| 激情五月婷婷色色| 日韩一级一片内射视频4K| 九九视频在线观看| 91干视频| 丁香激情网| 天天舔日日肏夜夜爽| 丁香激情五月综合网| 久久婷婷网站| 4399在线观看免费毛片| 97人人操人人拍| 日本不卡高字幕在线2019| 国产精品色色| www99热| 香焦网五月天| 色色色热热热| 激情丁香五月天图片| 校园激情 亚洲| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 91九色在线| 99ri视频| 九九色图| 玖玖爱综合网| 久久女人天堂| 美女网黄| 久久久久激情| 久久伊人婷婷| 亚洲成人av在线| 九九色播五月丁香| 亚洲丁香五月天视频| 五月婷婷AV| 婷婷五月丁香综合人妻| 国色天香伊人狠狠色| 人妻久久久久久久久妻久久久久| 色色色视频免费无码 | 婷婷五月丁香激情色情| 99re久热只有精品6在线直播| 婷婷激情五月吧| 九玖视频这里只有精品| 天天爽夜夜爽夜夜爽精品| 一起草av| 欧洲婷婷五月天| 久久er九九| 深爱婷婷色| 国产热精品| 5月丁香六月婷婷| 亚洲亚洲永久无码777777| 99性爱视频网站| 99亚洲精品视频| 丁香五月偷拍| 色99日韩| 99综合视频| 九九在线视频| 色五天综合| 日韩av高清| 色婷婷四色| 久久丝袜婷婷| 91操碰| xx综合网| 夜夜操天天爽| 狠狠爱五月婷婷| 中文字幕在线免费观看视频| 玖玖色综合| 成人无码髙潮喷水A片| 99久久国产综合精品五月天喷水\| 五月丁香激情综合网官网| 日本在线视频看se99| 丁香婷婷五月色成人网站| 国产亚洲在线观看| 成人婷婷深爱综合网| 狠狠久综合| 99视频精品在线| 亚洲综合网 665566| 99色色网| 在线五月婷| 久久新| 丁香婷婷五月天色综合| 99只有这里是精品| 激情五月婷婷| 日韩成人电影AV| 我淫我色婷婷五月天激情四射| 一起草aV| 丁香六月色香蕉视频| 99热这里精| 天天舔天天爽| 大香蕉五月天婷婷| 色色色色色日韩午夜激情| 丁香花五月天激情| 国产精品国产VA片国产| 激情丁香五月| 黑人糟蹋人妻HD中文字幕| 久久月天堂| 女同激情久久av久久| 婷婷丁香高潮了| 色色色色热| 五月丁香久久| 色色色色色综合| 五月丁香怕怕综合| AV性爱在线| 啪啪综合网| 婷婷亚洲久久| 婷婷综合网在线| 天天爱天天秀天天做| 五月天激情小说| 小色小蛇伊人婷婷色香五月| 成人色情五月天婷婷丁香| 婷婷成人五月天成人文学| 欧美色色色| 日本黄色在线观看| 丁香五月婷婷动漫| 日本久久婷婷| av在线免费播放观看| 啊v视频在线观看| 色欲色香伊人| 四LLL少妇BBBB槡BBBB| 欧洲S级在线观看| 思思99re这里只有| 91碰碰碰| 久久婷婷夜| 日本熟妇人妻在线| 啊v视频在线观看| 欧美激情-区二区三区| 五月天天天综合| 蜜桃人妻无码AV天堂三区| 日日噜噜夜夜狠狠久久丁香五月| 99re在线观看| 天天爱天天操| 久久日婷婷| 丁六月激情| 在线另类| 丁香婷婷色色| 丁香五月亚综合图片| 大地资源色婷婷视频在线| 婷婷激情综合| 天天操综合网| 大香蕉丁香婷婷| 开心婷婷五月花| 激情五月天电影| 97极品在线| 婷婷色五月天在线| 伊人香大香蕉视频| 四色 爱 婷婷 精品 亚洲 五月天| 亚韩在线视频| 久久91久久91色欲精品| 五月丁香龟婷婷| 97色干在线观看| 亚洲性爱干干| 婷婷午夜天| 色五月婷婷在线| 亚洲VA口| 九九超日本| 99久久玖玖| 亚洲AV无码成人电影| WwW天天干| 99性爱| 在线观看熟女少妇| 天天插天天插天天插天天插| 日本美女上人| 激情五月天啪啪| 91大屁股精品| 亚洲人成色A777777在线观看| 九九热青青草| 婷婷金品综合视频| 激情超碰网| 丁香婷婷色五月| 中文字幕av久久爽| 99热这里只有精品18| 日日夜夜九九| 婷婷五月花西瓜| av操B网站| 日韩操逼小电影| 婷婷中文综合网| 另类激情网| 九九精品re免费视频| 99精品免费欧美小视频| 曰本aaaaaa丈片| www.五月丁香| 97se视频在线| 色99热| 9l视频自拍九色9l视频自拍九色9l社区| 免费播放片大片| 国产9色在线/日韩| 婷婷精品视频| 久月丁香爱婷婷综合| 国产乱人偷精品人妻A片| 夜夜爽日日躁| 色五月色开心开心五月| 思思热精品在线视频| www.无码com| 无码激情| 色网站99| 丁香六月婷婷操逼网| 久久性爱视频久久性爱视频| 99综合成人视频在线观看| 丁香六月综合| 99啪啪视频| 欧美激情综合色综合啪啪五月| 国产激情综合五月| 婷婷综合中文| 欧美综合激情丁香五月六月婷| 色色五月婷婷久久| 九九热视频精品| 十月丁香婷婷| 色色色色色色色五月| 99性爱| 九九久久精品| 国产肥白大熟妇BBBB视频| 久久久久久五月天| 国产精品视频| 色99色| 日日狠夜夜狠| 美欧成人视频| 思思re99视频在线观看| 色欲香综合网| 欧美啪啪五月天| 人妻AV在线| 先锋av性爱成人电影| 婷色视频| 天天干夜晚夜操| 婷婷五月色丁香在线看| 高清国产AV| 丁香五月天婷婷激情| 天天cha成人综合网| 五月丁香婷婷婷激情爱爱| 激情五月天影院| 色播丁香婷婷五月激情| 超碰资源在线| 国产亚洲精品久久久久久牛牛| 开心色五月天久久久久久久| 午夜免费试看| 教师性爱毛片| 激情综合无码| 五月婷婷丁香av| 亚洲视频五区| 日韩久久系列| 人妻AV在线| 久8色色| 97人人射| 激情婷婷在线| www.天天干| 99爱在线精品视频免费观看| 婷婷八月激情| 在线综合91| 九九热超碰| 天天干天天爽| 人人综合五月人人婷婷| 玖玖综合色| 韩日AV片| www.婷婷六月天| 在线视频99| 五月天激情婷婷丁香| 大香蕉婷婷丁香天堂AV| 91免费试看| 亚洲综合五月天| 超碰资源在线| 伊人午夜综合色啪| 永久的网站AAAA | 天天色2017| 亚洲免费婷婷| 久久狠狠干| 99 这里只有精品| 大香蕉综合| 97精品综合久久内射| 欧美性生交XXXXX无码小说| 久久婷婷五月综合色奶水99啪| 亭亭五月激情亚洲在线| 99免费热在线精品| 色天堂在线| 67194中文在线| 亚洲黄色影视| 久久婷婷五月丁香网| 天堂草在线观看| sewuyue第四色| 久久视这里只有精品| 色九月欧美| www91色网站| 国产成人精品一区二三区熟女在线| 婷婷中文在线| 在线观看婷婷5月| 激情五月少妇| 99热这里只有精品2016| 天天拍夜夜撸| 亚洲久热| 日本啪啪网| 久婷婷色| 亚洲成Av人片乱码色第1集| 日韩欧美成人一区二区三区| 久久er99热精品一区二区| 99热.com| 午夜免费试看| 色女人久久| 婷婷丁香五月综合| 丁香五月天色婷婷| 逼里香不卡| www.丁香五月| 26uuu国产激情视频| 69婷婷丁香午夜| 天天做天天爱天天爽在| 天天爱天天日| 婷五月丁香俺| 高清无码.com| 天天插天天狠| 色婷婷五月开心六月综合| 99热老网站| 99热国产精品| 五月天色图| 综合亚洲六月婷婷在线| 五月丁香婷婷综合网| 色久女| 色综合区| 91中文在线| 97福利视频| 天天五月丁香五月| 激情av| 狠狠色婷婷| 丁香色六月| 五月天激情综合网站| 婷婷99狠狠| 色五月xxx| 婷婷五月深深的爱| 丁香五月婷婷亚洲综合精品在线| 五月激情开心婷婷| 思99热精品久久只有精品| 五月天婷婷色小说| 99热成人在线| 婷婷五月激情五月激情| 婷婷久久色| 亚洲av日韩无码| 亚洲激情AV| 97色色色| 丁香五月开心七月| 熟女激情五月天 | 五月丁香成人日| 欧美丁香六月激情视频| 亚洲九九在线| 丁香六月婷婷激情| 婷婷五月丁香超碰| 五月丁香婷婷色| 五月天久久久| 午夜天天精品视频| 丁香五月婷婷高清| 久青操| 婷婷色婷婷亚洲成人| 婷婷五月天日逼| 狠狠色综合久久| 99热99久久| 99操逼| 91久女| 亚洲乱码w在线观看| 91操人| 婷婷五月天手机版视频| 色婷婷狠狠18| 色欲久久综合| 久久精品国产精品| 激情骚五月| 色玖玖爱| 五月色导航| www.久热| 五月婷婷五月| 玖玖婷婷五月天毛片| 日本色图综合| 欧美婷婷五月激情| 噜噜噜噜综合在线| 天天天干夜夜夜操| 1024人妻无码中文字幕| 五月婷啪啪| 夜夜夜夜操| 婷婷丁香五月综合| 99热网站| 91九色无码内射| 久久综合丁香五月| 丁香五月综合网亚洲综合欧美狠狠| 九九亚洲综合| 丁香综合日产精品久久| 五月丁香啪啪综合网| 婷婷中文字幕版| 久大香蕉| 久久久久久久11111111111| 97超碰在线免费观看| 色播五月丁香婷婷| 99狠狠| 欧美A级成人婬片免费看理论| 久久新地此| 六月香五月婷| 精品久久久999| 婷婷在线网| 色婷丁香| 女人天堂 AV| 亚洲五月婷婷| 色色色色色五月| 欧洲激情五月天| 日本久久婷| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 蜜桃五月天| 99在线观看精品| 另类视频丁香五月| 人人操五月天| 九九色播五月丁香| 高清无码中文字幕aVDV| 午夜丁香| www:99热视频| 第六色在线| 婷婷精品在线| wwww.色婷婷| 激情婷婷综合| 六月婷婷激情| 六月激情网| 五月色欧美| 26uuu国产| 丁香六月婷婷综合欧美| 日本成人小说婷婷六月| 99热| 大香蕉婷婷色| 免费亚洲婷婷五月| 67194线路二在线观看| 色播五月婷婷综合| 国产婷婷色五月| 91视频五月丁香| 丁香五月婷婷操逼| 天天做天天要天天爽| 久久婷婷视频| 国产免费一区二区三区三州老师F1F1.CC| 婷婷五月天激情五月天网站| 日本天天操| 日日夜夜小色哥| 99国产精品久久久久久久久久久| 91丁香五月| 五月丁香成人视频| 五月Huangsewang| 99色色网站| 久久这里只有精品99| 九色视频91疯狂| 亚洲秘 无码一区二区三区妃光/1| 婷婷五月丁香青青草在线| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 五月丁香婷婷成人版| 久久这里只有欧美| 成人AV在线中文版| 婷婷五月AA五月在线| 久热九九| 99久久99视频只有精品| www.91操| 五月丁香激| 日韩欧美成人片| 婷婷爱五月| 五月天色丁香| 97香蕉人人在线观看| 久久久久丁香婷婷五月天| 日本熟女啪啪| 人妻自慰高清合集| 97久久久久久久久久久| 中文aV网| 婷婷五月天性色| 婷婷色日本| 婷婷综合丁香| 97好吊操| 91九色 熟| 欧美人人草| 午夜色丁香| 婷婷色婷婷| 五月婷婷偷拍| 91黄操| 激情另类综合| 婷婷五月天色| 激情五月天久久丁香| 能看的av| 日本狠狠爽| 中文字幕 中文字幕明步| 丁香五月天激情综合网| 精品九九九久| 婷婷精品性视频| 婷婷99丁香| 日韩AV片| 99色在线视频观看| 亚洲视频一区| 色五月婷婷婷婷| Y11111111111少妇电影院| 野战毛片三一3| 日本三久久| 夜夜夜夜夜操| 欧美日韩大黄| 丁香五月综合网| 激情欧美丁香五月| 亚洲乱码在线观看| 婷婷五月激情图片| 激情校园 亚洲| 色九月综合| 亚洲免费av在线| 色播丁香| 99在线精品免费视频| 综合一本道| 九九热10| 99这里有精品| 五月婷婷之美女图片| 99久久精品国产色欲| 99性视频| 天天操夜夜玩!| 色色色色色色色色色色色色色五月天| 操九色| 亚洲视频在线观看99| 五月伊人91| WWW.17C亚洲精品| 五月天婷婷激情网| 97久久久久久久久久久| 色播五月网| 天天操夜夜爽天天操| 五月激情丁香啪啪| 九月婷婷激情| 激情丁香婷婷五月天| 色色丁香婷婷五月天| 九九热中文| 久久综合伊人综合在线| 色色综合院| 开心五月激情网| 久热网站| 精品久色| 色婷婷精品视频在线播放| 91偷拍视频| 天天开心AV色综合婷婷五月天| 色噜久| 风流少妇A片一区二区蜜桃| 五月丁香六月激情在线| 天天插天天插天天日| 亚洲无码AV片| 97色婷婷|