国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例

這篇具有很好參考價值的文章主要介紹了pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一.概念介紹

1.1神經(jīng)網(wǎng)絡(luò)核心組件

1.2神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖

1.3使用pytorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的主要工具

二、實現(xiàn)手寫數(shù)字識別

2.1環(huán)境

2.2主要步驟

2.3神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

2.4準備數(shù)據(jù)

2.4.1導(dǎo)入模塊

2.4.2定義一些超參數(shù)

2.4.3下載數(shù)據(jù)并對數(shù)據(jù)進行預(yù)處理

2.4.4可視化數(shù)據(jù)集中部分元素

?2.4.5構(gòu)建模型和實例化神經(jīng)網(wǎng)絡(luò)

2.4.6訓(xùn)練模型

2.4.7可視化損失函數(shù)

2.4.7.1?train? loss?

?2.4.7.2?test?loss

一.概念介紹

????????神經(jīng)網(wǎng)絡(luò)是一種計算模型,它模擬了人類神經(jīng)系統(tǒng)的工作方式,由大量的神經(jīng)元和它們之間的連接組成。每個神經(jīng)元接收一些輸入信息,并對這些信息進行處理,然后將結(jié)果傳遞給其他神經(jīng)元。這些神經(jīng)元之間的連接具有不同的權(quán)重,這些權(quán)重可以根據(jù)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)進行調(diào)整。通過調(diào)整權(quán)重,神經(jīng)網(wǎng)絡(luò)可以對輸入數(shù)據(jù)進行分類、回歸、聚類等任務(wù)。

????????通俗來講,神經(jīng)網(wǎng)絡(luò)就是設(shè)置一堆參數(shù),初始化這堆參數(shù),然后通過求導(dǎo),知道這些參數(shù)對結(jié)果的影響,然后調(diào)整這些參數(shù)的大小。直到參數(shù)大小可以接近完美地擬合實際結(jié)果。神經(jīng)網(wǎng)絡(luò)有兩個部分:正向傳播和反向傳播。正向傳播是求值,反向傳播是求出參數(shù)對結(jié)果的影響,從而調(diào)整參數(shù)。所以,神經(jīng)網(wǎng)絡(luò):正向傳播->反向傳播->正向傳播->反向傳播……? ? ?

????????比如我們要預(yù)測一個圖像是不是貓。如果是貓,它的結(jié)果就是1,如果不是貓,它的結(jié)果就是0.我們現(xiàn)在有一堆圖片,有的是貓,有的不是貓,所以它對應(yīng)的標簽(這個是y)是:0 1 1 0 1。而我們的預(yù)測結(jié)果可能是對的,也可能是錯的,假設(shè)我們的預(yù)測結(jié)果是:0 0 1 1 0.我們有3個預(yù)測對了,有2個預(yù)測錯了。那么我們的損失值是2/5。當然這么搞的話太“粗糙”了,實際上我們會有一個函數(shù)來定義損失值是什么。而且我們的預(yù)測結(jié)果也不是一個確鑿的數(shù)字,而是一個概率:比如我們預(yù)測第3張圖片是貓的概率是0.8,那么我們的預(yù)測結(jié)果是0.8.總之,定義了損失值(這個損失值記為J)以后,我們要讓這個損失值盡可能地小。

參考:什么是神經(jīng)網(wǎng)絡(luò)? - 緋紅之刃的回答 - 知乎?

1.1神經(jīng)網(wǎng)絡(luò)核心組件

? ? ? ? 神經(jīng)網(wǎng)絡(luò)看上去挺復(fù)雜,節(jié)點多,層多,參數(shù)多,但其結(jié)構(gòu)都是類似的,核心部分和組件都是相通的,確定完這些核心組件,這個神經(jīng)網(wǎng)絡(luò)也就基本確定了。

核心組件包括:

(1)層:神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)是層,層是一個數(shù)據(jù)處理模塊,它接受一個或多個張量作為輸入,并輸出一個或多個張量,由一組可調(diào)整參數(shù)描述。

(2)模型:模型是由多個層組成的網(wǎng)絡(luò),用于對輸入數(shù)據(jù)進行分類、回歸、聚類等任務(wù)。

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-628627.html

(3)損失函數(shù):參數(shù)學(xué)習(xí)的目標函數(shù),通過最小化損失函數(shù)來學(xué)習(xí)各種參數(shù)。損失函數(shù)是衡量模型輸出結(jié)果與真實標簽之間的差異的函數(shù),目標是最小化損失函數(shù),提高模型性能。

(4)優(yōu)化器:使損失函數(shù)的值最小化。根據(jù)損失函數(shù)的梯度更新神經(jīng)網(wǎng)絡(luò)中的權(quán)重和偏置,以使損失函數(shù)的值最小化,提高模型性能和穩(wěn)定性。

1.2神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

?描述:多個層鏈接在一起構(gòu)成一個模型或網(wǎng)絡(luò),輸入數(shù)據(jù)通過這個模型轉(zhuǎn)換為預(yù)測值,然后損失函數(shù)把預(yù)測值與真實值進行比較,得到損失值(損失值可以是距離、概率值等),該損失值用于衡量預(yù)測值與目標結(jié)果的匹配或相似程度,優(yōu)化器利用損失值更新權(quán)重參數(shù),從而使損失值越來越小。這是一個循環(huán)過程,損失值達到一個閥值或循環(huán)次數(shù)到達指定次數(shù),循環(huán)結(jié)束。

1.3使用pytorch構(gòu)建神經(jīng)網(wǎng)絡(luò)的主要工具

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

?參考:第3章 Pytorch神經(jīng)網(wǎng)絡(luò)工具箱 | Python技術(shù)交流與分享

在PyTorch中,構(gòu)建神經(jīng)網(wǎng)絡(luò)主要使用以下工具:

  1. torch.nn模塊:提供了構(gòu)建神經(jīng)網(wǎng)絡(luò)所需的各種層和模塊,如全連接層、卷積層、池化層、循環(huán)神經(jīng)網(wǎng)絡(luò)等。

  2. torch.nn.functional模塊:提供了一些常用的激活函數(shù)和損失函數(shù),如ReLU、Sigmoid、CrossEntropyLoss等。

  3. torch.optim模塊:提供了各種優(yōu)化器,如SGD、Adam、RMSprop等,用于更新神經(jīng)網(wǎng)絡(luò)中的權(quán)重和偏置。

  4. torch.utils.data模塊:提供了處理數(shù)據(jù)集的工具,如Dataset、DataLoader等,可以方便地處理數(shù)據(jù)集、進行批量訓(xùn)練等操作。

這些工具之間的相互關(guān)系如下:

  1. 使用torch.nn模塊構(gòu)建神經(jīng)網(wǎng)絡(luò)的各個層和模塊。

  2. 使用torch.nn.functional模塊中的激活函數(shù)和損失函數(shù)對神經(jīng)網(wǎng)絡(luò)進行非線性變換和優(yōu)化。

  3. 使用torch.optim模塊中的優(yōu)化器對神經(jīng)網(wǎng)絡(luò)中的權(quán)重和偏置進行更新,以最小化損失函數(shù)。

  4. 使用torch.utils.data模塊中的數(shù)據(jù)處理工具對數(shù)據(jù)集進行處理,方便地進行批量訓(xùn)練和數(shù)據(jù)預(yù)處理。

二、實現(xiàn)手寫數(shù)字識別

2.1環(huán)境

????????實例環(huán)境使用Pytorch1.0+,GPU或CPU,源數(shù)據(jù)集為MNIST。

2.2主要步驟

(1)利用Pytorch內(nèi)置函數(shù)mnist下載數(shù)據(jù)
(2)利用torchvision對數(shù)據(jù)進行預(yù)處理,調(diào)用torch.utils建立一個數(shù)據(jù)迭代器
(3)可視化源數(shù)據(jù)
(4)利用nn工具箱構(gòu)建神經(jīng)網(wǎng)絡(luò)模型
(5)實例化模型,并定義損失函數(shù)及優(yōu)化器
(6)訓(xùn)練模型
(7)可視化結(jié)果

2.3神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

實驗中使用兩個隱含層,每層激活函數(shù)為Relu,最后使用torch.max(out,1)找出張量out最大值對應(yīng)索引作為預(yù)測值。

2.4準備數(shù)據(jù)

2.4.1導(dǎo)入模塊

import numpy as np
import torch
# 導(dǎo)入 pytorch 內(nèi)置的 mnist 數(shù)據(jù)
from torchvision.datasets import mnist 
#導(dǎo)入預(yù)處理模塊
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
#導(dǎo)入nn及優(yōu)化器
import torch.nn.functional as F
import torch.optim as optim
from torch import nn

2.4.2定義一些超參數(shù)

# 定義訓(xùn)練和測試時的批處理大小
train_batch_size = 64
test_batch_size = 128

# 定義學(xué)習(xí)率和迭代次數(shù)
learning_rate = 0.01
num_epoches = 20

# 定義優(yōu)化器的超參數(shù)
lr = 0.01
momentum = 0.5
#動量優(yōu)化器通過引入動量參數(shù)(Momentum),在更新參數(shù)時考慮之前的梯度信息,可以使得參數(shù)更新方向更加穩(wěn)定,同時加速梯度下降的收斂速度。動量參數(shù)通常設(shè)置在0.5到0.9之間,可以根據(jù)具體情況進行調(diào)整。

2.4.3下載數(shù)據(jù)并對數(shù)據(jù)進行預(yù)處理

#定義預(yù)處理函數(shù),這些預(yù)處理依次放在Compose函數(shù)中。
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.5], [0.5])])
#下載數(shù)據(jù),并對數(shù)據(jù)進行預(yù)處理
train_dataset = mnist.MNIST('./data', train=True, transform=transform, download=True)
test_dataset = mnist.MNIST('./data', train=False, transform=transform)
#dataloader是一個可迭代對象,可以使用迭代器一樣使用。
train_loader = DataLoader(train_dataset, batch_size=train_batch_size, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=test_batch_size, shuffle=False)

注:

①transforms.Compose可以把一些轉(zhuǎn)換函數(shù)組合在一起;
②Normalize([0.5], [0.5])對張量進行歸一化,這里兩個0.5分別表示對張量進行歸一化的全局平均值和方差。因圖像是灰色的只有一個通道,如果有多個通道,需要有多個數(shù)字,如三個通道,應(yīng)該是Normalize([m1,m2,m3], [n1,n2,n3])
③download參數(shù)控制是否需要下載,如果./data目錄下已有MNIST,可選擇False。
④用DataLoader得到生成器,這可節(jié)省內(nèi)存。

2.4.4可視化數(shù)據(jù)集中部分元素

# 導(dǎo)入matplotlib.pyplot庫,并設(shè)置inline模式
import matplotlib.pyplot as plt
%matplotlib inline

# 枚舉數(shù)據(jù)加載器中的一批數(shù)據(jù)
examples = enumerate(test_loader)
batch_idx, (example_data, example_targets) = next(examples)

# 創(chuàng)建一個圖像對象
fig = plt.figure()

# 顯示前6個圖像和對應(yīng)的標簽
for i in range(6):
  plt.subplot(2,3,i+1)           # 將圖像分成2行3列,當前位置為第i+1個
  plt.tight_layout()             # 自動調(diào)整子圖之間的間距
  plt.imshow(example_data[i][0], cmap='gray', interpolation='none')  # 顯示圖像
  plt.title("Ground Truth: {}".format(example_targets[i]))          # 顯示標簽
  plt.xticks([])                 # 隱藏x軸刻度
  plt.yticks([])                 # 隱藏y軸刻度

注:

  1. 導(dǎo)入matplotlib.pyplot庫,并設(shè)置inline模式,以在Jupyter Notebook中顯示圖像。

  2. 枚舉數(shù)據(jù)加載器中的一批數(shù)據(jù),其中test_loader是一個測試數(shù)據(jù)集加載器。

  3. 創(chuàng)建一個圖像對象,用于顯示圖像和標簽。

  4. 顯示前6個圖像和對應(yīng)的標簽,其中plt.subplot()用于將圖像分成2行3列,plt.tight_layout()用于自動調(diào)整子圖之間的間距,plt.imshow()用于顯示圖像,plt.title()用于顯示標簽,plt.xticks()和plt.yticks()用于隱藏x軸和y軸的刻度。

?2.4.5構(gòu)建模型和實例化神經(jīng)網(wǎng)絡(luò)

class Net(nn.Module):
    """
    使用sequential構(gòu)建網(wǎng)絡(luò),Sequential()函數(shù)的功能是將網(wǎng)絡(luò)的層組合到一起
    """
    def __init__(self, in_dim, n_hidden_1, n_hidden_2, out_dim):
        super(Net, self).__init__()
        self.layer1 = nn.Sequential(nn.Linear(in_dim, n_hidden_1),nn.BatchNorm1d(n_hidden_1))
        self.layer2 = nn.Sequential(nn.Linear(n_hidden_1, n_hidden_2),nn.BatchNorm1d(n_hidden_2))
        self.layer3 = nn.Sequential(nn.Linear(n_hidden_2, out_dim))
        
 
    def forward(self, x):
        x = F.relu(self.layer1(x))
        x = F.relu(self.layer2(x))
        x = self.layer3(x)
        return x


#檢測是否有可用的GPU,有則使用,否則使用CPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
#實例化網(wǎng)絡(luò)
model = Net(28 * 28, 300, 100, 10)
model.to(device)
 
# 定義損失函數(shù)和優(yōu)化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=lr, momentum=momentum)

2.4.6訓(xùn)練模型

# 開始訓(xùn)練
losses = []
acces = []
eval_losses = []
eval_acces = []
 
 
for epoch in range(num_epoches):
    train_loss = 0
    train_acc = 0
    model.train()
    #動態(tài)修改參數(shù)學(xué)習(xí)率
    if epoch%5==0:
        optimizer.param_groups[0]['lr']*=0.1
    for img, label in train_loader:
        img=img.to(device)
        label = label.to(device)
        img = img.view(img.size(0), -1)
        # 前向傳播
        out = model(img)
        loss = criterion(out, label)
        # 反向傳播
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        # 記錄誤差
        train_loss += loss.item()
        # 計算分類的準確率
        _, pred = out.max(1)
        num_correct = (pred == label).sum().item()
        acc = num_correct / img.shape[0]
        train_acc += acc
        
    losses.append(train_loss / len(train_loader))
    acces.append(train_acc / len(train_loader))
    # 在測試集上檢驗效果
    eval_loss = 0
    eval_acc = 0
    # 將模型改為預(yù)測模式
    model.eval()
    for img, label in test_loader:
        img=img.to(device)
        label = label.to(device)
        img = img.view(img.size(0), -1)
        out = model(img)
        loss = criterion(out, label)
        # 記錄誤差
        eval_loss += loss.item()
        # 記錄準確率
        _, pred = out.max(1)
        num_correct = (pred == label).sum().item()
        acc = num_correct / img.shape[0]
        eval_acc += acc
        
    eval_losses.append(eval_loss / len(test_loader))
    eval_acces.append(eval_acc / len(test_loader))
    print('epoch: {}, Train Loss: {:.4f}, Train Acc: {:.4f}, Test Loss: {:.4f}, Test Acc: {:.4f}'
          .format(epoch, train_loss / len(train_loader), train_acc / len(train_loader), 
                     eval_loss / len(test_loader), eval_acc / len(test_loader)))

2.4.7可視化損失函數(shù)

2.4.7.1?train? loss?
plt.title('train loss')
plt.plot(np.arange(len(losses)), losses)
plt.legend(['Train Loss'], loc='upper right')

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

?2.4.7.2?test?loss
# 繪制測試集損失函數(shù)
plt.plot(eval_losses, label='Test Loss')
plt.title('Test Loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.legend()
plt.show()

pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例,深度學(xué)習(xí),pytorch,pytorch,學(xué)習(xí),神經(jīng)網(wǎng)絡(luò),深度學(xué)習(xí)

?

到了這里,關(guān)于pytorch學(xué)習(xí)——如何構(gòu)建一個神經(jīng)網(wǎng)絡(luò)——以手寫數(shù)字識別為例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • PyTorch深度學(xué)習(xí)實戰(zhàn)(3)——使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)

    PyTorch深度學(xué)習(xí)實戰(zhàn)(3)——使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)

    我們已經(jīng)學(xué)習(xí)了如何從零開始構(gòu)建神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)通常包括輸入層、隱藏層、輸出層、激活函數(shù)、損失函數(shù)和學(xué)習(xí)率等基本組件。在本節(jié)中,我們將學(xué)習(xí)如何在簡單數(shù)據(jù)集上使用 PyTorch 構(gòu)建神經(jīng)網(wǎng)絡(luò),利用張量對象操作和梯度值計算更新網(wǎng)絡(luò)權(quán)重。 1.1 使用 PyTorch 構(gòu)建神

    2024年02月08日
    瀏覽(25)
  • 深度學(xué)習(xí)基礎(chǔ)——通過PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)實現(xiàn)1維/2維序列分類

    深度學(xué)習(xí)基礎(chǔ)——通過PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò)實現(xiàn)1維/2維序列分類

    通過PyTorch構(gòu)建前饋神經(jīng)網(wǎng)絡(luò),并對二維數(shù)據(jù)點進行分類。在該例子當中,所有的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)都是通過高斯混合模型GMM生成的: 更換使用循環(huán)神經(jīng)網(wǎng)絡(luò)RNN模型,進行1維序列分類任務(wù)。 為了簡化問題,我們假定: 序列的長度是固定的。我們將其長度設(shè)為T=4。 我們只有

    2024年02月11日
    瀏覽(32)
  • pytorch基礎(chǔ) 神經(jīng)網(wǎng)絡(luò)構(gòu)建

    www.ai-xlab.com AI MOOC Torch介紹 Torch是一個開源的機器學(xué)習(xí)的框架,早在2002年就發(fā) 布了Torch的初版,Torch的編程語言為C和Lua。如今 的Torch7依舊是熱門的深度學(xué)習(xí)框架之一。 www.ai-xlab.com AI MOOC PyTorch介紹 PyTorch是在2017年1月由Facebook推出的。它是經(jīng) 典機器學(xué)習(xí)庫Torch框架的一個端口,

    2024年01月21日
    瀏覽(34)
  • pytorch-構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)

    構(gòu)建卷積神經(jīng)網(wǎng)絡(luò) 卷積網(wǎng)絡(luò)中的輸入和層與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)有些區(qū)別,需重新設(shè)計,訓(xùn)練模塊基本一致 首先讀取數(shù)據(jù) 分別構(gòu)建訓(xùn)練集和測試集(驗證集) DataLoader來迭代取數(shù)據(jù) 卷積網(wǎng)絡(luò)模塊構(gòu)建 一般卷積層,relu層,池化層可以寫成一個套餐 注意卷積最后結(jié)果還是一個特征圖

    2024年02月09日
    瀏覽(21)
  • pytorch_神經(jīng)網(wǎng)絡(luò)構(gòu)建2(數(shù)學(xué)原理)

    pytorch_神經(jīng)網(wǎng)絡(luò)構(gòu)建2(數(shù)學(xué)原理)

    分類基礎(chǔ)理論: 交叉熵是信息論中用來衡量兩個分布相似性的一種量化方式 之前講述二分類的loss函數(shù)時我們使用公式-(y*log(y_)+(1-y)*log(1-y_)進行誤差計算 y表示真實值,y_表示預(yù)測值 交叉熵的一般公式為: 那么二分類時公式可以寫作: 其中sigmoid(x)=y_ 這就是二分類的loss函數(shù),那么如

    2024年02月07日
    瀏覽(22)
  • 使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),并計算參數(shù)Params

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),并計算參數(shù)Params

    在深度學(xué)習(xí)中,模型的參數(shù)數(shù)量是一個非常重要的指標,通常會影響模型的大小、訓(xùn)練速度和準確度等多個方面。在本教程中,我們將介紹如何計算深度學(xué)習(xí)模型的參數(shù)數(shù)量。 本教程將以PyTorch為例,展示如何計算一個包含卷積、池化、歸一化和全連接等多種層的卷積神經(jīng)網(wǎng)

    2024年02月03日
    瀏覽(32)
  • 使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),并使用thop計算參數(shù)和FLOPs

    使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),并使用thop計算參數(shù)和FLOPs

    FLOPs和FLOPS區(qū)別 FLOPs(floating point operations)是指浮點運算次數(shù),通常用來評估一個計算機算法或者模型的計算復(fù)雜度。在機器學(xué)習(xí)中,F(xiàn)LOPs通常用來衡量神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度,因為神經(jīng)網(wǎng)絡(luò)的計算主要由矩陣乘法和卷積操作組成,而這些操作都可以轉(zhuǎn)化為浮點運算次數(shù)的形式

    2024年02月03日
    瀏覽(26)
  • 在PyTorch中開發(fā)我們的第一個神經(jīng)網(wǎng)絡(luò)

    在PyTorch中開發(fā)我們的第一個神經(jīng)網(wǎng)絡(luò)

    本教程將介紹初學(xué)者在PyTorch中構(gòu)建神經(jīng)網(wǎng)絡(luò)的過程。我們將通過一個項目逐步進行操作。本教程將使用Kaggle上的Heart.csv數(shù)據(jù)集,請隨時下載數(shù)據(jù)集并跟隨教程進行:https://www.kaggle.com/rashikrahmanpritom/heart-attack-analysis-prediction-dataset 首先,導(dǎo)入必要的包: 數(shù)據(jù)集中有一些列的數(shù)據(jù)

    2024年01月17日
    瀏覽(25)
  • 用C語言構(gòu)建一個數(shù)字識別深度神經(jīng)網(wǎng)絡(luò)

    用C語言構(gòu)建一個數(shù)字識別深度神經(jīng)網(wǎng)絡(luò)

    接上一篇: 用C語言構(gòu)建一個數(shù)字識別卷積神經(jīng)網(wǎng)絡(luò) 1. 深度神經(jīng)網(wǎng)絡(luò) 按照深度學(xué)習(xí)的理論,隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,網(wǎng)絡(luò)擬合復(fù)雜問題的能力也會增強,對事物特征的挖掘也會更加深入.這里嘗試構(gòu)建一個5層深度的神經(jīng)網(wǎng)絡(luò),包括兩個卷積層和兩個池化層, 其中輸出層為全

    2024年02月13日
    瀏覽(20)
  • 用C語言構(gòu)建一個數(shù)字識別卷積神經(jīng)網(wǎng)絡(luò)

    用C語言構(gòu)建一個數(shù)字識別卷積神經(jīng)網(wǎng)絡(luò)

    ?卷積神經(jīng)網(wǎng)絡(luò)的具體原理和對應(yīng)的python例子參見末尾的參考資料2.3. 這里僅敘述卷積神經(jīng)網(wǎng)絡(luò)的配置, 其余部分不做贅述,構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的具體步驟請參見上一篇: 用C語言構(gòu)建一個手寫數(shù)字識別神經(jīng)網(wǎng)路 卷積網(wǎng)絡(luò)同樣采用簡單的三層結(jié)構(gòu),包括輸入層conv_layer,中間層

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包