1. 程式人生 > 其它 >影象經過卷積後的尺寸計算(待更新)

影象經過卷積後的尺寸計算(待更新)

技術標籤:卷積深度學習python

影象經過卷積後的尺寸

1.pytorch計算公式
torch.nn.Conv2d(),其中padding可以為0、1、2,預設dilation =1,則簡化式為:

out_size = (in_size - K + 2P)/ S +1

2.TensorFlow計算公式
TensorFlow的Conv2d函式的padding只有“same”和“valid”兩個選項。
padding = same: out_size = in_size / stride(與kernel_size無關)
padding = valid :out_size = (in_size - K + 2P)/ S +1

引數解釋
in_channels,
#輸入資料的通道數(如彩色圖片,一般為3)
out_channels,
#輸出資料的通道數(就是我想讓輸出多少通道,就設定為多少)
kernel_size,
#卷積核的尺寸(如(3,2),3與(3,3)等同)
stride = 1,
#卷積步長,就是卷積操作時每次移動的格子數
padding = 0,
#原圖周圍需要填充的格子行(列)數,無填充的話卷積到邊緣會直接忽略該邊緣
dilation = 1,
#空洞卷積的空洞指數,一般預設為1即可
groups = 1,
#分組卷積的組數,一般預設設定為1,不用管
bias = True,
#卷積偏置,一般設定為False,True的話可以增加模型的泛化能力
padding_mode = 'zeros’
#設定邊緣填充值為0,或別的數,一般都預設設定為0
torch.nn.Conv2d(    
in_channels,  #輸入資料的通道數(如彩色圖片,一般為3)
out_channels, #輸出資料的通道數(就是我想讓輸出多少通道,就設定為多少)
kernel_size,  #卷積核的尺寸(如(32),3與(3,3)等同)
stride = 1,   #卷積步長,就是卷積操作時每次移動的格子數
padding = 0,  #原圖周圍需要填充的格子行(列)數,無填充的話卷積到邊緣會直接忽略該邊緣
dilation = 1, #空洞卷積的空洞指數,一般預設為1即可
groups = 1,   #分組卷積的組數,一般預設設定為1,不用管
bias =
True, #卷積偏置,一般設定為False,True的話可以增加模型的泛化能力 padding_mode = 'zeros' #設定邊緣填充值為0,或別的數,一般都預設設定為0 )

影象經過池化後的尺寸

1.pytorch計算公式

MaxPool
torch.nn.MaxPool1d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
torch.nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
torch.nn.MaxPool3d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)
kernel_size- 視窗大小
stride- 步長。預設值是kernel_size
padding - 補0數
dilation– 控制視窗中元素步幅的引數
return_indices - 如果等於True,會返回輸出最大值的序號,對於上取樣操作會有幫助
ceil_mode - 如果等於True,計算輸出訊號大小的時候,會使用向上取整,代替預設的向下取的操作

輸出尺寸公式:
在這裡插入圖片描述