成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Pytorch實(shí)現(xiàn)全連接層的操作

Pytorch實(shí)現(xiàn)全連接層的操作

熱門標(biāo)簽:陜西金融外呼系統(tǒng) 唐山智能外呼系統(tǒng)一般多少錢 白銀外呼系統(tǒng) 公司電話機(jī)器人 激戰(zhàn)2地圖標(biāo)注 海南400電話如何申請(qǐng) 騰訊外呼線路 哈爾濱ai外呼系統(tǒng)定制 廣告地圖標(biāo)注app

全連接神經(jīng)網(wǎng)絡(luò)(FC)

全連接神經(jīng)網(wǎng)絡(luò)是一種最基本的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),英文為Full Connection,所以一般簡(jiǎn)稱FC。

FC的準(zhǔn)則很簡(jiǎn)單:神經(jīng)網(wǎng)絡(luò)中除輸入層之外的每個(gè)節(jié)點(diǎn)都和上一層的所有節(jié)點(diǎn)有連接。

以上一次的MNIST為例

import torch
import torch.utils.data
from torch import optim
from torchvision import datasets
from torchvision.transforms import transforms
import torch.nn.functional as F
batch_size = 200
learning_rate = 0.001
epochs = 20
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('mnistdata', train=True, download=False,
                   transform=transforms.Compose([
                       transforms.ToTensor(),
                       transforms.Normalize((0.1307,), (0.3081,))
                   ])),
    batch_size=batch_size, shuffle=True)
test_loader = torch.utils.data.DataLoader(
    datasets.MNIST('mnistdata', train=False, download=False,
                   transform=transforms.Compose([
                       transforms.ToTensor(),
                       transforms.Normalize((0.1307,), (0.3081,))
                   ])),
    batch_size=batch_size, shuffle=True)
w1, b1 = torch.randn(200, 784, requires_grad=True), torch.zeros(200, requires_grad=True)
w2, b2 = torch.randn(200, 200, requires_grad=True), torch.zeros(200, requires_grad=True)
w3, b3 = torch.randn(10, 200, requires_grad=True), torch.zeros(10, requires_grad=True)
torch.nn.init.kaiming_normal_(w1)
torch.nn.init.kaiming_normal_(w2)
torch.nn.init.kaiming_normal_(w3)
def forward(x):
    x = x@w1.t() + b1
    x = F.relu(x)
    x = x@w2.t() + b2
    x = F.relu(x)
    x = x@w3.t() + b3
    x = F.relu(x)
    return x
optimizer = optim.Adam([w1, b1, w2, b2, w3, b3], lr=learning_rate)
criteon = torch.nn.CrossEntropyLoss()
for epoch in range(epochs):
    for batch_idx, (data, target) in enumerate(train_loader):
        data = data.view(-1, 28*28)
        logits = forward(data)
        loss = criteon(logits, target)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        if batch_idx % 100 == 0:
            print('Train Epoch : {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
                epoch, batch_idx*len(data), len(train_loader.dataset),
                100.*batch_idx/len(train_loader), loss.item()
            ))
    test_loss = 0
    correct = 0
    for data, target in test_loader:
        data = data.view(-1, 28*28)
        logits = forward(data)
        test_loss += criteon(logits, target).item()
        pred = logits.data.max(1)[1]
        correct += pred.eq(target.data).sum()
    test_loss /= len(test_loader.dataset)
    print('\nTest set : Averge loss: {:.4f}, Accurancy: {}/{}({:.3f}%)'.format(
        test_loss, correct, len(test_loader.dataset),
        100.*correct/len(test_loader.dataset)
        ))

我們將每個(gè)w和b都進(jìn)行了定義,并且自己寫了一個(gè)forward函數(shù)。如果我們采用了全連接層,那么整個(gè)代碼也會(huì)更加簡(jiǎn)介明了。

首先,我們定義自己的網(wǎng)絡(luò)結(jié)構(gòu)的類:

class MLP(nn.Module):
    def __init__(self):
        super(MLP, self).__init__()
        self.model = nn.Sequential(
            nn.Linear(784, 200),
            nn.LeakyReLU(inplace=True),
            nn.Linear(200, 200),
            nn.LeakyReLU(inplace=True),
            nn.Linear(200, 10),
            nn.LeakyReLU(inplace=True)
        )
    def forward(self, x):
        x = self.model(x)
        return x

它繼承于nn.Moudle,并且自己定義里整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。

其中inplace的作用是直接復(fù)用存儲(chǔ)空間,減少新開辟存儲(chǔ)空間。

除此之外,它可以直接進(jìn)行運(yùn)算,不需要手動(dòng)定義參數(shù)和寫出運(yùn)算語(yǔ)句,更加簡(jiǎn)便。

同時(shí)我們還可以發(fā)現(xiàn),它自動(dòng)完成了初試化,不需要像之前一樣再手動(dòng)寫一個(gè)初始化了。

區(qū)分nn.Relu和F.relu()

前者是一個(gè)類的接口,后者是一個(gè)函數(shù)式接口。

前者都是大寫的,并且調(diào)用的的時(shí)候需要先實(shí)例化才能使用,而后者是小寫的可以直接使用。

最重要的是后者的自由度更高,更適合做一些自己定義的操作。

完整代碼

import torch
import torch.utils.data
from torch import optim, nn
from torchvision import datasets
from torchvision.transforms import transforms
import torch.nn.functional as F
batch_size = 200
learning_rate = 0.001
epochs = 20
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('mnistdata', train=True, download=False,
                   transform=transforms.Compose([
                       transforms.ToTensor(),
                       transforms.Normalize((0.1307,), (0.3081,))
                   ])),
    batch_size=batch_size, shuffle=True)
test_loader = torch.utils.data.DataLoader(
    datasets.MNIST('mnistdata', train=False, download=False,
                   transform=transforms.Compose([
                       transforms.ToTensor(),
                       transforms.Normalize((0.1307,), (0.3081,))
                   ])),
    batch_size=batch_size, shuffle=True)
class MLP(nn.Module):
    def __init__(self):
        super(MLP, self).__init__()
        self.model = nn.Sequential(
            nn.Linear(784, 200),
            nn.LeakyReLU(inplace=True),
            nn.Linear(200, 200),
            nn.LeakyReLU(inplace=True),
            nn.Linear(200, 10),
            nn.LeakyReLU(inplace=True)
        )
    def forward(self, x):
        x = self.model(x)
        return x
device = torch.device('cuda:0')
net = MLP().to(device)
optimizer = optim.Adam(net.parameters(), lr=learning_rate)
criteon = nn.CrossEntropyLoss().to(device)
for epoch in range(epochs):
    for batch_idx, (data, target) in enumerate(train_loader):
        data = data.view(-1, 28*28)
        data, target = data.to(device), target.to(device)
        logits = net(data)
        loss = criteon(logits, target)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        if batch_idx % 100 == 0:
            print('Train Epoch : {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
                epoch, batch_idx*len(data), len(train_loader.dataset),
                100.*batch_idx/len(train_loader), loss.item()
            ))
    test_loss = 0
    correct = 0
    for data, target in test_loader:
        data = data.view(-1, 28*28)
        data, target = data.to(device), target.to(device)
        logits = net(data)
        test_loss += criteon(logits, target).item()
        pred = logits.data.max(1)[1]
        correct += pred.eq(target.data).sum()
    test_loss /= len(test_loader.dataset)
    print('\nTest set : Averge loss: {:.4f}, Accurancy: {}/{}({:.3f}%)'.format(
        test_loss, correct, len(test_loader.dataset),
        100.*correct/len(test_loader.dataset)
        ))

補(bǔ)充:pytorch 實(shí)現(xiàn)一個(gè)隱層的全連接神經(jīng)網(wǎng)絡(luò)

torch.nn 實(shí)現(xiàn) 模型的定義,網(wǎng)絡(luò)層的定義,損失函數(shù)的定義。

import torch
# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10
# Create random Tensors to hold inputs and outputs
x = torch.randn(N, D_in)
y = torch.randn(N, D_out)
# Use the nn package to define our model as a sequence of layers. nn.Sequential
# is a Module which contains other Modules, and applies them in sequence to
# produce its output. Each Linear Module computes output from input using a
# linear function, and holds internal Tensors for its weight and bias.
model = torch.nn.Sequential(
    torch.nn.Linear(D_in, H),
    torch.nn.ReLU(),
    torch.nn.Linear(H, D_out),
)
# The nn package also contains definitions of popular loss functions; in this
# case we will use Mean Squared Error (MSE) as our loss function.
loss_fn = torch.nn.MSELoss(reduction='sum')
learning_rate = 1e-4
for t in range(500):
    # Forward pass: compute predicted y by passing x to the model. Module objects
    # override the __call__ operator so you can call them like functions. When
    # doing so you pass a Tensor of input data to the Module and it produces
    # a Tensor of output data.
    y_pred = model(x)
    # Compute and print loss. We pass Tensors containing the predicted and true
    # values of y, and the loss function returns a Tensor containing the
    # loss.
    loss = loss_fn(y_pred, y)
    print(t, loss.item())
    # Zero the gradients before running the backward pass.
    model.zero_grad()
    # Backward pass: compute gradient of the loss with respect to all the learnable
    # parameters of the model. Internally, the parameters of each Module are stored
    # in Tensors with requires_grad=True, so this call will compute gradients for
    # all learnable parameters in the model.
    loss.backward()
    # Update the weights using gradient descent. Each parameter is a Tensor, so
    # we can access its gradients like we did before.
    with torch.no_grad():
        for param in model.parameters():
            param -= learning_rate * param.grad

上面,我們使用parem= -= learning_rate* param.grad 手動(dòng)更新參數(shù)。

使用torch.optim 自動(dòng)優(yōu)化參數(shù)。optim這個(gè)package提供了各種不同的模型優(yōu)化方法,包括SGD+momentum, RMSProp, Adam等等。

optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
for t in range(500):
    y_pred = model(x)
    loss = loss_fn(y_pred, y)
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pytorch_detach 切斷網(wǎng)絡(luò)反傳方式
  • pytorch 禁止/允許計(jì)算局部梯度的操作
  • 如何利用Pytorch計(jì)算三角函數(shù)
  • 聊聊PyTorch中eval和no_grad的關(guān)系
  • Pytorch實(shí)現(xiàn)圖像識(shí)別之?dāng)?shù)字識(shí)別(附詳細(xì)注釋)
  • pytorch 優(yōu)化器(optim)不同參數(shù)組,不同學(xué)習(xí)率設(shè)置的操作
  • PyTorch 如何將CIFAR100數(shù)據(jù)按類標(biāo)歸類保存
  • PyTorch的Debug指南
  • Python深度學(xué)習(xí)之使用Pytorch搭建ShuffleNetv2
  • win10系統(tǒng)配置GPU版本Pytorch的詳細(xì)教程
  • 淺談pytorch中的nn.Sequential(*net[3: 5])是啥意思
  • pytorch visdom安裝開啟及使用方法
  • PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程)
  • pytorch中的nn.ZeroPad2d()零填充函數(shù)實(shí)例詳解
  • 使用pytorch實(shí)現(xiàn)線性回歸
  • pytorch實(shí)現(xiàn)線性回歸以及多元回歸
  • PyTorch學(xué)習(xí)之軟件準(zhǔn)備與基本操作總結(jié)

標(biāo)簽:常德 惠州 益陽(yáng) 鷹潭 黑龍江 黔西 四川 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pytorch實(shí)現(xiàn)全連接層的操作》,本文關(guān)鍵詞  Pytorch,實(shí)現(xiàn),全,連接,層,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pytorch實(shí)現(xiàn)全連接層的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Pytorch實(shí)現(xiàn)全連接層的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    天堂资源在线| 欧美极品在线| 欧美综合二区| 色综合综合色| 一区二区在线观看免费| 无码人妻一区二区三区精品视频| 精品中文字幕在线| 亚洲男人av在线| 美女视频久久久| 日韩福利视频导航| 五月天视频在线观看| 国产又大又粗又爽的毛片| 成人性视频免费看| 91成人精品视频| 亚洲a在线播放| 野花国产精品入口| av在线免费观看网| 69日小视频在线观看| 欧美成人免费在线观看视频| 亚洲欧美日韩精品久久奇米色影视| 日本高清视频网站| 欧美日韩在线综合| 国产亚洲欧美另类一区二区三区| 国产欧美日本一区视频| 麻豆最新免费在线视频| 久久久精品久久久久特色影视| 日韩一区欧美小说| 亚洲精品免费在线| 国产精品一区二区三区免费观看| 极品人妻一区二区三区| 日韩欧美在线观看免费| 男人添女人下部高潮视频在观看| 亚洲综合在线免费| 亚洲av色香蕉一区二区三区| 国产精品久久午夜夜伦鲁鲁| 色噜噜在线播放| 天天综合精品| 亚洲国产一区二区三区| 日韩一级片一区二区| 久久精品国产99国产精品| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲高清中文字幕| 2021av网| 日产精品一线二线三线芒果| 欧美日韩成人高清| 国产伦子伦对白视频| 色天下一区二区三区| 国产乱码精品一区二区三区av| 国产一区高清在线| 欧美日韩三级一区| 国产精品自在自线| 欧美激情一区二区三区久久久| 久久久91精品国产一区二区精品| 99久久夜色精品国产亚洲| 国产成人亚洲精品狼色在线| 手机看片一区二区三区| 又大又长粗又爽又黄少妇视频| 黄色小视频大全| 黄色大片网站在线观看| 先锋在线亚洲| 在线播放国产一区二区三区| 中文字幕久久熟女蜜桃| 国产乱淫a∨片免费视频| 亚洲综合偷拍欧美一区色| 欧美日韩中字| 亚洲欧洲黄色网| 色yeye免费人成网站在线观看| 日韩精品视频播放| 免费视频91蜜桃| free性欧美hd另类精品| 成人au免费视频影院| 日韩高清影视在线观看| 韩日a级毛片| 国产精品video| 中国动漫在线观看完整版免费| av资源种子在线观看| 亚洲一区免费在线| 久久色视频免费观看| 日本美女在线中文版| 一本一本久久a久久综合精品蜜桃| 国产一区二区三区视频免费观看| 欧美xxxxxxxx| 5278欧美一区二区三区| 麻豆电影在线观看| 免费一区二区三区在线视频| 久久精品中文字幕免费mv| 精品国产一区二区三区久久久蜜月| 老司机免费视频久久| 日本久久二区| 米奇精品一区二区三区| 亚洲美腿欧美激情另类| 日韩一级片播放| 狠狠色综合色综合网络| 成年人网站av| 亚洲精品中文字幕无码蜜桃| 精东影业在线观看| 真实的国产乱xxxx在线91| 国外av网站| 又黄又免费的网站| 欧美日韩无遮挡| 久久综合欧美| 久久久久久网址| 国产三级在线免费| 日本毛片在线免费观看| 欧美性猛交xxxxxxxx| 亚洲国产精品va在线看黑人| 欧美日韩在线观看视频小说| 粉嫩一区二区| 亚洲精品免费在线| 久久精品免费一区二区三区| 希岛爱理中文字幕| 免费观看视频www| 欧美人与禽zozzo禽性配| 久久97精品久久久久久久不卡| 日韩精品久久久久久免费| 国产99精品一区| 国产在线观看无码免费视频| 国产无遮挡又黄又爽免费网站| 精品日本一区二区三区| 一区不卡字幕| 密臀av在线| 偷拍精品精品一区二区三区| jizzjizz免费| 91在线视频| 日韩一区二区精品葵司在线| 污黄网站在线观看| 成人羞羞网站入口免费| 欧美肥婆姓交大片| 亚州欧美日韩中文视频| 一区二区中文字幕| 菠萝菠萝蜜在线视频免费观看| 四虎影视免费看电影| 香蕉视频免费在线播放| 狠狠色狠狠色综合婷婷tag| 自拍电影在线观看| 欧美一区二区中文字幕| 久久国产精品毛片| 成人在线一区二区| 欧美午夜精品一区二区蜜桃| 性欧美18—19sex性高清| 五月开心婷婷久久| 暖暖成人免费视频| 日韩av在线影院| 天堂精品高清1区2区3区| 99久久免费国| 成人影院一区二区三区| 欧美精品国产白浆久久久久| 欧美电影免费观看高清完整| 超碰国产在线观看| 亚洲最大成人网站| 欧美高清视频手机在在线| 亚洲r级在线视频| 欧洲亚洲女同hd| 欧美高清你懂得| 宅男噜噜噜66一区二区66| 国产一区二区高清| 性欧美videos粗暴| 久久精品免费看| 在线看小视频| 97人人模人人爽人人喊中文字| 性农村xxxxx小树林| 国产成人aa在线观看网站站| www日韩精品| 国产亚洲字幕| 男人天堂网av| av毛片在线| 翡翠波斯猫1977年美国| 欧美日韩夫妻久久| 精品精品国产高清一毛片一天堂| 国产在线一区二区三区欧美| 日韩国产第一页| 中文字幕av一区 二区| 欧美成人午夜| 亚洲精品婷婷| 91看片就是不一样| 第九区2中文字幕| 国产成人啪免费观看软件| 久久av无码精品人妻系列试探| 日韩成人中文电影| 大地资源网3页在线观看| 精品国产一区一区二区三亚瑟| 亚洲乱码中文字幕| 长河落日免费高清观看| 97av在线影院| 欧美一区二区视频97| 中文字幕第一区| 国产欧美亚洲视频| 中文字幕免费高| 尤物视频在线观看免费| 天天摸天天干| 特级片在线观看| 欧美 日韩 成人| 亚洲日本中文| 97在线视频免费观看| jizz国产精品| 一区二区三区欧美成人| 偷拍自拍在线| 日韩女优人人人人射在线视频| 精品99久久久久成人网站免费| 欧美黄色一级| 精品无码m3u8在线观看| 国产一区二区三区美女秒播| 日韩欧美美女一区二区三区| 亚洲精品观看| 国产日韩欧美一区二区三区视频| 999精品网| 欧美激情久久久久久久久久久| 天堂在线视频网站| 欧美亚洲国产另类| 黄色一级大片在线免费观看| 亚洲一区日韩| 欧美久久精品午夜青青大伊人| 视频一区二区在线观看| 亚洲 欧洲 日韩| 青青草娱乐在线| 亚洲综合一二三| 久久精品国产亚洲5555| 亚洲乱码免费伦视频| 婷婷色一区二区三区| 欧美a级免费视频| 丰满的少妇愉情hd高清果冻传媒| 亚洲天堂网中文字| 可以免费看不卡的av网站| 国产欧美亚洲精品| 91国内免费在线视频| av在线电影播放| 精品久久久视频| 你懂得视频网站| 秋霞在线观看一区二区三区| 国产欧美精品区一区二区三区| 久久久久电影| 加勒比日本影视| 国产另类图片| 一级黄色免费| 欧美人妖视频| 亚洲s码欧洲m码国产av| 成人精品视频一区二区三区| 加勒比色老久久爱综合网| 国产亚洲视频在线观看| 欧美黑人猛交| 日韩av电影一区| 中文字幕人妻色偷偷久久| 日本免费在线视频| 正在播放亚洲精品| 在线视频中文字幕第一页| 亚洲第一成人网站| 91色综合久久久久婷婷| 91视频一区二区| 一个色在线视频| 91免费观看在线| 久久国产柳州莫菁门| 8v天堂国产在线一区二区| 亚洲图片 自拍偷拍| 亚洲天堂第二页| 肉体视频在线| 国产精品久久麻豆| 狠狠干五月天| 一本久久综合亚洲鲁鲁五月天| 鲁丝一区鲁丝二区鲁丝三区| 亚洲精品aaaa精品| 国产精品第一页在线| 欧美亚洲另类在线一区二区三区| 国产免费福利视频| 中文字幕av一区二区三区| 成人免费在线观看入口| 女人18毛片九区毛片在线| 国产又黄又大又粗视频| 日韩视频在线视频| 日韩一区二区三区电影在线观看| 亚洲欧美日韩精品一区| 午夜激情av在线| 国产美女精品久久| 欧美午夜女人视频在线| 久久国产综合视频| 精品久久久久中文字幕小说| 免费在线观看一区二区| 2019国产精品自在线拍国产不卡| 一级日本在线| 8mav在线| 久久久亚洲欧洲日产国码αv| 成人av网址在线观看| 国产美女精品人人做人人爽| 香蕉视频在线观看免费| 九九九伊在线综合永久| 国内毛片毛片毛片毛片毛片| 97超视频免费观看| 免费网站在线观看视频| 国产成人精品久久二区二区91| 18videosex性欧美麻豆| 日韩在线视频一区二区三区| www.日韩在线观看| 欧美国产日韩在线播放| 成人看片网页| 在线免费av播放| 一级欧美视频| 国产亚洲欧美日韩在线观看一区二区| 欧美性生交大片免费| 国产精品初高中精品久久| 精品国产一区二区三区在线观看| 免费一级特黄3大片视频| 久久精品亚洲牛牛影视| 欧美熟女一区二区| 91精品福利在线一区二区三区| 羞羞漫画网18久久app| 午夜精品一区二区三区av| 99国内精品久久| 精品国产一区久久久| 日韩精品一区二区三区中文在线| 日韩少妇裸体做爰视频| 日韩在线观看免费全| 高清国产午夜精品久久久久久| 国产羞羞视频在线观看| 色91精品久久久久久久久| 亚洲插插视频| 欧美精品一区二区精品网| 成人性生交大片免费观看嘿嘿视频| 亚洲最大中文字幕| 日本精品在线观看| 亚洲三区在线观看无套内射| 精品亚洲免费视频| 国产精品精品国产色婷婷| 91大神在线观看线路一区| 丝袜美腿亚洲综合| 91吃瓜网在线观看| 精品国产麻豆| 91精品国产色综合久久久蜜香臀| 丰满岳乱妇一区二区三区| 国产东北露脸精品视频|