在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)MNIST數(shù)據(jù)集分類

jf_78858299 ? 來(lái)源:算法與編程之美 ? 作者:編程之美 ? 2023-03-02 09:38 ? 次閱讀

問(wèn)題

對(duì)比單個(gè)全連接網(wǎng)絡(luò),在卷積神經(jīng)網(wǎng)絡(luò)層的加持下,初始時(shí),整個(gè)神經(jīng)網(wǎng)絡(luò)模型的性能是否會(huì)更好。

方法

模型設(shè)計(jì)

兩層卷積神經(jīng)網(wǎng)絡(luò)(包含池化層),一層全連接網(wǎng)絡(luò)。

  1. 選擇 5 x 5 的卷積核,輸入通道為 1,輸出通道為 10:

    此時(shí)圖像矩陣經(jīng)過(guò) 5 x 5 的卷積核后會(huì)小兩圈,也就是4個(gè)數(shù)位,變成 24 x 24,輸出通道為10;

  2. 選擇 2 x 2 的最大池化層:

    此時(shí)圖像大小縮短一半,變成 12 x 12,通道數(shù)不變;

  3. 再次經(jīng)過(guò)5 x 5的卷積核,輸入通道為 10,輸出通道為 20:

    此時(shí)圖像再小兩圈,變成 8*8,輸出通道為20;

  4. 再次經(jīng)過(guò)2 x 2的最大池化層:

    此時(shí)圖像大小縮短一半,變成 4 x 4,通道數(shù)不變;

  5. 最后將圖像整型變換成向量,輸入到全連接層中:

    輸入一共有 4 x 4 x 20 = 320個(gè)元素,輸出為 10.

代碼

準(zhǔn)備數(shù)據(jù)集

準(zhǔn)備數(shù)據(jù)集

batch_size = 64

transform = transforms.Compose([

transforms.ToTensor(),

transforms.Normalize((0.1307,), (0.3081,))

])

train_dataset = datasets.MNIST(root='data’,

train=True,

                          download=True,

                          transform=transform)

train_loader = DataLoader(train_dataset,

shuffle=True,

                     batch_size=batch_size)

test_dataset = datasets.MNIST(root='data',

train=False,

                         download=True,

                         transform=transform)

test_loader = DataLoader(test_dataset,

shuffle=False,

                    batch_size=batch_size)

建立模型

class Net(torch.nn.Module):

def init (self):

super(Net, self).__init__()

   self.conv1 = torch.nn.Conv2d(1, 10, kernel_size=5)

   self.conv2 = torch.nn.Conv2d(10, 20, kernel_size=5)

   self.pooling = torch.nn.MaxPool2d(2)

   self.fc = torch.nn.Linear(320, 10)

def forward(self, x):

batch_size = x.size(0)

   x = F.relu(self.pooling(self.conv1(x)))

   x = F.relu(self.pooling(self.conv2(x)))

   x = x.view(batch_size, -1)

   x = self.fc(x)

   return x

model = Net()

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

model.to(device)

構(gòu)造損失函數(shù)+優(yōu)化器

criterion = torch.nn.CrossEntropyLoss()

optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)

訓(xùn)練+測(cè)試

def train(epoch):

running_loss = 0.0

for batch_idx, data in enumerate(train_loader, 0):

inputs, target = data

   inputs,target=inputs.to(device),target.to(device)

   optimizer.zero_grad()

   outputs = model(inputs)

   loss = criterion(outputs, target)

   loss.backward()

   optimizer.step()

   running_loss += loss.item()

   if batch_idx % 300 == 299:

       print('[%d,%.5d] loss:%.3f' % (epoch + 1, batch_idx + 1, running_loss / 2000))

       running_loss = 0.0

def test():

correct=0

total=0

with torch.no_grad():

for data in test_loader:

       inputs,target=data

       inputs,target=inputs.to(device),target.to(device)

       outputs=model(inputs)

       _,predicted=torch.max(outputs.data,dim=1)

       total+=target.size(0)

       correct+=(predicted==target).sum().item()

print('Accuracy on test set:%d %% [%d%d]' %(100*correct/total,correct,total))

if name ==' main ':

for epoch in range(10):

train(epoch)

   test()

運(yùn)行結(jié)果

(1)batch_size:64,訓(xùn)練次數(shù):10

圖片

圖片

(2)batch_size:128,訓(xùn)練次數(shù):10

圖片

(3)batch_size:128,訓(xùn)練次數(shù):10

圖片

結(jié)語(yǔ)

對(duì)比單個(gè)全連接網(wǎng)絡(luò),在卷積神經(jīng)網(wǎng)絡(luò)層的加持下,初始時(shí),整個(gè)神經(jīng)網(wǎng)絡(luò)模型的性能顯著提升,準(zhǔn)確率最低為96%。在batch_size:64,訓(xùn)練次數(shù):100情況下,準(zhǔn)確率達(dá)到99%。下一階在平均池化,3*3卷積核,以及不同通道數(shù)的情況下,探索對(duì)模型性能的影響。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于賽靈思FPGA的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)設(shè)計(jì)

    FPGA 上實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) (CNN)。CNN 是一類深度神經(jīng)網(wǎng)絡(luò),在處理大規(guī)模圖像識(shí)別任務(wù)以及與機(jī)器學(xué)習(xí)類似的其他問(wèn)題方面已大獲成功。在當(dāng)前案例中,針對(duì)在 FPGA 上
    發(fā)表于 06-19 07:24

    卷積神經(jīng)網(wǎng)絡(luò)如何使用

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)究竟是什么,鑒于神經(jīng)網(wǎng)絡(luò)在工程上經(jīng)歷了曲折的歷史,您為什么還會(huì)在意它呢? 對(duì)于這些非常中肯的問(wèn)題,我們似乎可以給出相對(duì)簡(jiǎn)明的答案。
    發(fā)表于 07-17 07:21

    卷積神經(jīng)網(wǎng)絡(luò)一維卷積的處理過(guò)程

    以前的神經(jīng)網(wǎng)絡(luò)幾乎都是部署在云端(服務(wù)器上),設(shè)備端采集到數(shù)據(jù)通過(guò)網(wǎng)絡(luò)發(fā)送給服務(wù)器做inference(推理),結(jié)果再通過(guò)網(wǎng)絡(luò)返回給設(shè)備端。
    發(fā)表于 12-23 06:16

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用

    的過(guò)程中存在梯度消失的問(wèn)題[23],神經(jīng)網(wǎng)絡(luò)再 次慢慢淡出人們的視線。1998 年 LeCun 發(fā)明了 LeNet-5,并在 Mnist 數(shù)據(jù) 達(dá)到 98%以上的識(shí)別準(zhǔn)確率,形成影響
    發(fā)表于 08-02 10:39

    卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介:什么是機(jī)器學(xué)習(xí)?

    的理想卷積神經(jīng)網(wǎng)絡(luò)與其他類型的網(wǎng)絡(luò)之間的主要區(qū)別在于它們處理數(shù)據(jù)的方式。通過(guò)過(guò)濾,將連續(xù)檢查
    發(fā)表于 02-23 20:11

    卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用 卷積神經(jīng)網(wǎng)絡(luò)通常用來(lái)處理什么

    神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)廣泛用于圖像識(shí)別、自然語(yǔ)言處理、視頻處理等方面。本文將對(duì)卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用進(jìn)行詳盡、詳實(shí)、細(xì)致的介紹,以及
    的頭像 發(fā)表于 08-21 16:41 ?5464次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本原理 卷積神經(jīng)網(wǎng)絡(luò)發(fā)展 卷積神經(jīng)網(wǎng)絡(luò)三大特點(diǎn)

    中最重要的神經(jīng)網(wǎng)絡(luò)之一。它是一種由多個(gè)卷積層和池化層(也可稱為下采樣層)組成的神經(jīng)網(wǎng)絡(luò)。CNN 的基本思想是以圖像為輸入,通過(guò)網(wǎng)絡(luò)
    的頭像 發(fā)表于 08-21 16:49 ?3028次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)層級(jí)結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò)卷積層講解

    分類、目標(biāo)檢測(cè)、人臉識(shí)別等。卷積神經(jīng)網(wǎng)絡(luò)的核心是卷積層和池化層,它們構(gòu)成了網(wǎng)絡(luò)的主干,實(shí)現(xiàn)了對(duì)
    的頭像 發(fā)表于 08-21 16:49 ?9694次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法

    卷積神經(jīng)網(wǎng)絡(luò)的介紹 什么是卷積神經(jīng)網(wǎng)絡(luò)算法 卷積神經(jīng)網(wǎng)絡(luò)涉及的關(guān)鍵技術(shù)
    的頭像 發(fā)表于 08-21 16:49 ?2265次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn) 卷積神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的區(qū)別

    深度神經(jīng)網(wǎng)絡(luò)是一種基于神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法,其主要特點(diǎn)是由多層神經(jīng)元構(gòu)成,可以根據(jù)數(shù)據(jù)自動(dòng)調(diào)整神經(jīng)元之間的權(quán)重,從而
    發(fā)表于 08-21 17:07 ?4602次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型

    cnn卷積神經(jīng)網(wǎng)絡(luò)算法 cnn卷積神經(jīng)網(wǎng)絡(luò)模型 卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種特殊的
    的頭像 發(fā)表于 08-21 17:15 ?2507次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的原理與實(shí)現(xiàn)

    核心思想是通過(guò)卷積操作提取輸入數(shù)據(jù)的特征。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)不同,卷積神經(jīng)網(wǎng)絡(luò)具有參數(shù)共享和局部連
    的頭像 發(fā)表于 07-02 16:47 ?1169次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    、訓(xùn)練過(guò)程以及應(yīng)用場(chǎng)景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-03 09:15 ?861次閱讀

    cnn卷積神經(jīng)網(wǎng)絡(luò)分類有哪些

    卷積神經(jīng)網(wǎng)絡(luò)概述 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是一種深度學(xué)習(xí)模型,由多層卷積層和池
    的頭像 發(fā)表于 07-03 09:28 ?1332次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)分類方法有哪些

    ,包括基本原理、常見(jiàn)架構(gòu)、優(yōu)化策略、應(yīng)用場(chǎng)景等。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本原理 卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),其核心思想是
    的頭像 發(fā)表于 07-03 09:40 ?894次閱讀
    主站蜘蛛池模板: 天天干天天操天天碰 | 精品噜噜噜噜久久久久久久久 | 性在线视频| bt磁力在线搜索 | 97精品伊人久久大香线蕉 | 久久综合九色综合精品 | 色噜噜狠狠色综合久 | 激情六月婷婷 | 亚洲欧洲色天使日韩精品 | 久久精品国产四虎 | 色老板女色狠xx网 | 亚洲欧美综合一区二区三区四区 | 欧美性猛交xxxx免费看久久 | 婷婷丁香四月 | 久久国产精品岛国搬运工 | 四虎永久免费在线观看 | 三级在线观看免播放网站 | 欧美人与zoxxxx | 午夜影院a | 亚洲香蕉久久一区二区三区四区 | 久久永久免费 | 久久99精品久久久久久野外 | 国产黄色片网站 | 日韩精品一卡二卡三卡四卡2021 | 91在线免费看 | 天天做天天做天天综合网 | 免费国产一区 | 美女流白浆网站 | 播色屋| 欧美性精品 | 性毛片 | 日本一区不卡视频 | 中文字幕第五页 | 欧美成年网站 | 日本人xxxxxxxxx69 | 1024亚洲视频 | 黄网站在线观看 | 国产成人一级片 | 黄色网视频| 男人的j桶女人的j视频 | 男女午夜特黄毛片免费 |