torch.nn.Conv 2 d()関数とchannelの理解

5802 ワード

import torch
x=torch.randn(2,3,4,5)
conv1=nn.Conv2d(3,2,kernel_size=3)
out1=cov1(x)
print("output1 size: ",out1.shape)

conv2=nn.Conv2d(3,2,kernel_size=3,padding=1)
out2=cov2(x)
print("output2 size: ",out2.shape)

conv3=nn.Conv2d(3,2,kernel_size=3,padding=1,stride=2)
out3=cov3(x)
print("output3 size: ",out3.shape)

  :
output1 size:  torch.Size([2, 2, 2, 3])
output2 size:  torch.Size([2, 2, 4, 5])
output3 size:  torch.Size([2, 2, 2, 3])

入力:
X
【batch_size, in_channels, height_1, width_1】
batch_size:batch内のサンプルの数in_channels:RGB画像などのサンプルのチャネル数に応じてチャネル数が3 height_1:画像の高さwidth_1:画像の幅
Conv 2 dのパラメータ
【channels, number, height_2, width_2】
channels:チャネル数、入力されたチャネル数と一致するようにchannels=in_channels. number:ボリュームコアの数height_2:核の高width_2:ボリュームコアの幅
出力:
【batch_size, out_channels, height_3, width_3】
batch_size:1つのbatchのサンプルの数、入力と同じout_channels:チャネル数は、ボリュームコアの数に依存し、ボリュームコアの数numberに等しいheight_3:畳み込み結果の高いwidth_3:ボリューム結果の幅
全過程で3回channels:1、入力中in_が現れた.channelsは、RGB画像のような入力ピクチャのchannelsに応じて3である.2、コンボリューション操作中のchannelsは、入力中のin_とchannelsは一致してこそボリューム化できる.最初にボリュームを作ると、1のサンプル画像のchannelsになります.そうしないと、前回のボリュームのout_になります.channels . 3、出力結果のout_channelsは、ボリュームコアの数に応じて、ボリュームコアの数に等しいサイズ(out_channels=number).この場合のout_channelsも次のボリューム時のボリュームコアのin_としてchannels.
ボリューム後のピクチャサイズの計算:n+2 p−fs+1frac{n+2 p−f}{s}+1 sn+2 p−f+1,nは画像の長さまたは幅,pはpaddingの大きさ,fはボリュームコアの大きさ,sはステップ長を表す.