影象經過卷積後的尺寸計算(待更新)
阿新 • • 發佈:2020-12-31
影象經過卷積後的尺寸
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, #卷積核的尺寸(如(3,2),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,計算輸出訊號大小的時候,會使用向上取整,代替預設的向下取的操作
輸出尺寸公式: