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

pytorch中 nn.Conv2d的簡單用法

這篇具有很好參考價值的文章主要介紹了pytorch中 nn.Conv2d的簡單用法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

pytorch中 nn.Conv2d的簡單用法,ML,pytorch,人工智能,python

torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True,padding_mode='zeros')

參數(shù)介紹

  • in_channels:卷積層輸入通道數(shù)

  • out_channels:卷積層輸出通道數(shù)

  • kernel_size:卷積層的卷積核大小

  • padding:填充長度

  • stride:卷積核移動的步長

  • dilation:是否采用空洞卷積

  • groups:是否采用分組卷積

  • bias:是否添加偏置參數(shù)

  • padding_modepadding的模式

如果輸入大小為:數(shù)量N即批處理大?。╞atch size),輸入通道數(shù)C_in,輸入高度H_in,輸入寬度C_in。輸出大小為:數(shù)量N,輸出通道數(shù)C_out,輸出高度H_out,輸出寬度C_out。
i n p u t : ( N , C i n , H i n , W i n ) o u t p u t : ( N , C o u t , H o u t , W o u t ) input: \quad (N, C_{in},H_{in},W_{in}) \\ output: \quad (N,C_{out}, H_{out}, W_{out}) input:(N,Cin?,Hin?,Win?)output:(N,Cout?,Hout?,Wout?)
之間的轉(zhuǎn)換為:
( N i , C o u t ) = b i a s ( C o u t ) + ∑ k = 0 C i n ? 1 w e i g h t ( C o u t , k ) ? ( N i , k ) (N_i,C_{out}) = bias(C_{out}) + \sum_{k=0}^{C_{in}-1}weight(C_{out},k) * (N{i},k) (Ni?,Cout?)=bias(Cout?)+k=0Cin??1?weight(Cout?,k)?(Ni,k)

H o u t = [ H i n + 2 ? p a d d i n g [ 0 ] ? d i l a t i o n [ 0 ] ? ( k e r n a l s i z e [ 0 ] ? 1 ) ? 1 s t r i d e [ 0 ] + 1 ] H_{out} = [ \frac {H_{in} + 2 * padding[0] - dilation[0] *(kernal_size[0] - 1) - 1}{stride[0]} + 1] Hout?=[stride[0]Hin?+2?padding[0]?dilation[0]?(kernals?ize[0]?1)?1?+1]

W o u t = [ W i n + 2 ? p a d d i n g [ 1 ] ? d i l a t i o n [ 1 ] ? ( k e r n e l s i z e [ 1 ] ? 1 ) ? 1 s t r i d e [ 1 ] + 1 ] W_{out} = [ \frac {W_{in} + 2 * padding[1] - dilation[1] * (kernel_size[1] - 1) - 1} {stride[1]} + 1] Wout?=[stride[1]Win?+2?padding[1]?dilation[1]?(kernels?ize[1]?1)?1?+1]

對于二維簡化的:
W i n , H i n 輸入的寬、高 W o u t , H o u t 輸出的寬,高 F 卷積核的大小 S 步長 P 邊界填充 W_{in},H_{in} \quad 輸入的寬、高 \\ W_{out},H_{out} \quad 輸出的寬,高 \\ F \quad 卷積核的大小 \\ S \quad 步長 \\ P \quad 邊界填充 Win?,Hin?輸入的寬、高Wout?,Hout?輸出的寬,高F卷積核的大小S步長P邊界填充
那么輸出的寬、高為:
W o u t = W i n ? F W + 2 P S + 1 H o u t = H i n ? F H + 2 P S + 1 W_{out} = \frac {W_{in} - F_{W} + 2P} S + 1 \\ H_{out} = \frac {H_{in} - F_{H} + 2P} S + 1 Wout?=SWin??FW?+2P?+1Hout?=SHin??FH?+2P?+1
在pytorch中的使用

  • 直接使用(不常見)
import torch 
import torch.nn as nn 
# https://www.bilibili.com/video/BV1644y1h7LN/?spm_id_from=333.337.search-card.all.click&vd_source=13dfbe5ed2deada83969fafa995ccff6

# 輸入通道數(shù)
in_channels = 1
# 輸出通道數(shù) 
out_channels = 1
# 批處理大小 
batch_size = 1
# 卷積核大小 (3,3)
kernel_size = 3
# 輸入規(guī)格
input_size = [batch_size, in_channels, 4, 4]

# nn.Conv2d使用,其他默認(rèn)值
conv_layer = torch.nn.Conv2d(in_channels, out_channels, kernel_size)
# 隨機(jī)輸入特征圖
input_feature_map = torch.randn(input_size)
# 打印輸入特征圖形狀
print(input_feature_map.shape)
# 求出輸出特征圖
output_feature_map = conv_layer(input_feature_map)
# 打印出卷積核的規(guī)格
print(conv_layer.weight.shape)
# weight == out_channel * in_channel * height * weight
# 打印輸出特征圖大小
print(output_feature_map.shape)

輸出:

torch.Size([1, 1, 4, 4])
torch.Size([1, 1, 3, 3])
torch.Size([1, 1, 2, 2])
  • 封裝為類的形式
import torch 
from torch import nn

# 定義一個同樣操作的卷積類
class Foo(nn.Module):
    def __init__(self, in_channel, out_channel):
        super(Foo,self).__init__()
        self.layer = nn.Sequential(
            nn.Conv2d(in_channels=in_channel, out_channels=out_channel, kernel_size=3)
        )
    def forward(self, x):
        return self.layer(x)

# 實(shí)例化一個
conv2 = Foo(1,1)
# 輸出特征圖, input_feature_map_2 和 input_feature_map是相同的值
output_feature_map_2 = conv2(input_feature_map_2)
print(output_feature_map_2)

輸出:

tensor([[[[ 0.5144,  0.0672],
          [ 0.2169, -0.0591]]]], grad_fn=<ConvolutionBackward0>)

可以觀察到,這兩個操作相同但是結(jié)果值卻不相同。這是因?yàn)?strong>雖然兩者實(shí)現(xiàn)了相同的卷積操作,但由于它們的初始化和權(quán)重值的不同,因此輸出結(jié)果可能不完全一致。 另外,對于卷積操作的結(jié)果,輸出的張量形狀可能會有所不同,但數(shù)值內(nèi)容應(yīng)該是相似的。如果希望確保兩種方式得到的輸出結(jié)果完全一致,可以嘗試使用相同的初始化參數(shù),并確保權(quán)重值相同。文章來源地址http://www.zghlxwxcb.cn/news/detail-678093.html

到了這里,關(guān)于pytorch中 nn.Conv2d的簡單用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • pytorch復(fù)現(xiàn)_conv2d

    pytorch復(fù)現(xiàn)_conv2d

    2024年02月06日
    瀏覽(16)
  • Pytorch中的卷積與反卷積(conv2d和convTranspose2d)

    Pytorch中的卷積與反卷積(conv2d和convTranspose2d)

    卷積是特征提取的常用操作,卷積可以改變圖片的通道和大小,相比全連接操作,卷積可以減少計算量,并且充分融合圖像的局部特征。 ? ?

    2024年02月06日
    瀏覽(22)
  • pytorch框架:conv1d、conv2d的輸入數(shù)據(jù)維度是什么樣的

    Conv1d 的輸入數(shù)據(jù)維度通常是一個三維張量,形狀為 (batch_size, in_channels, sequence_length),其中: batch_size 表示當(dāng)前輸入數(shù)據(jù)的批次大??; in_channels 表示當(dāng)前輸入數(shù)據(jù)的通道數(shù),對于文本分類任務(wù)通常為 1,對于圖像分類任務(wù)通常為 3(RGB)、1(灰度)等; sequence_length 表示當(dāng)前輸

    2024年01月16日
    瀏覽(23)
  • 在樹莓派上實(shí)現(xiàn)numpy的conv2d卷積神經(jīng)網(wǎng)絡(luò)做圖像分類,加載pytorch的模型參數(shù),推理mnist手寫數(shù)字識別,并使用多進(jìn)程加速

    在樹莓派上實(shí)現(xiàn)numpy的conv2d卷積神經(jīng)網(wǎng)絡(luò)做圖像分類,加載pytorch的模型參數(shù),推理mnist手寫數(shù)字識別,并使用多進(jìn)程加速

    這幾天又在玩樹莓派,先是搞了個物聯(lián)網(wǎng),又在嘗試在樹莓派上搞一些簡單的神經(jīng)網(wǎng)絡(luò),這次搞得是卷積識別mnist手寫數(shù)字識別 訓(xùn)練代碼在電腦上,cpu就能訓(xùn)練,很快的: 然后需要自己在dataset里導(dǎo)出一些圖片:我保存在了mnist_pi文件夾下,“_”后面的是標(biāo)簽,主要是在pc端導(dǎo)

    2024年02月07日
    瀏覽(33)
  • 【Pytorch】三維卷積 nn.Conv3d 用法

    nn.Conv3d 是 PyTorch 中實(shí)現(xiàn)三維卷積操作的類。 其輸入和輸出的維度如下: 輸入維度: 輸入張量的維度應(yīng)為 (N, C_in, D, H, W) ,其中: N : 批量大小 (batch size),即一批輸入數(shù)據(jù)中包含的樣本數(shù)量。 C_in : 輸入通道數(shù) (number of input channels),即輸入數(shù)據(jù)的通道數(shù)量,例如彩色圖像通常

    2024年02月05日
    瀏覽(25)
  • pytorch之nn.Conv1d詳解

    pytorch之nn.Conv1d詳解

    1、Conv1d 定義 class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True) 自然語言處理中一個句子序列,一維的,所以使用Conv1d,此時卷積核(沒有batch_size,參數(shù)是共享的)除去chanel,也是一維的。? 2、參數(shù)? in_channels(int) – 輸入信號的通道。在

    2024年02月16日
    瀏覽(16)
  • pytorch中nn.Conv1d功能介紹

    pytorch中nn.Conv1d功能介紹

    ??????? 在使用Conv1d函數(shù)時,pytorch默認(rèn)你的數(shù)據(jù)是一維的,比如一句話“深度學(xué)習(xí)”可以用一個一維數(shù)組 [\\\'深\\\', \\\'度\\\', \\\'學(xué)\\\', \\\'習(xí)\\\'] 表示,這個數(shù)據(jù)就是一維的。圖片是二維數(shù)據(jù),它有長寬兩個維度。 ??????? 因此在使用 Conv1d 函數(shù)時,輸入是一個三位數(shù)組,三個維度分別表

    2024年02月10日
    瀏覽(21)
  • python-函數(shù)用法-F.conv_transpose2d

    F.conv_transpose2d 對由多個輸入平面組成的輸入圖像應(yīng)用二維轉(zhuǎn)置卷積算子, 有時也稱為反卷積. 其中,weight是:輸入通道,輸出通 input – 輸入tensor weight – 卷積核 bias – 可選的偏置 stride –卷積核的步幅, 可以是單個數(shù)字或一個元素元組 (sH, sW). 默認(rèn)值: 1 padding – 在輸入的兩邊

    2024年02月16日
    瀏覽(17)
  • Pytorch平均池化nn.AvgPool2d()使用記錄

    Pytorch平均池化nn.AvgPool2d()使用記錄

    【pytorch官方文檔】 :https://pytorch.org/docs/stable/generated/torch.nn.AvgPool2d.html?highlight=avgpool2d#torch.nn.AvgPool2d 在由多通道組成的輸入特征中進(jìn)行2D平均池化計算 假設(shè)輸入特征為S,輸出特征為D 情況一 ceil_mode=False, count_include_pad=True(計算時包含零填充) 計算過程: 輸出形狀= floor[(3 - 3

    2023年04月19日
    瀏覽(19)
  • pytorch nn.ModuleList和nn.Sequential的用法筆記

    有部分內(nèi)容轉(zhuǎn)自: pytorch小記:nn.ModuleList和nn.Sequential的用法以及區(qū)別_慕思侶的博客-CSDN博客 但是有部分內(nèi)容做了修改調(diào)整, 在構(gòu)建網(wǎng)絡(luò)的時候,pytorch有一些基礎(chǔ)概念很重要,比如nn.Module,nn.ModuleList,nn.Sequential,這些類我們稱為為容器(containers),可參考containers。本文中

    2024年02月13日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包