1、无填充
1.1 公式1
H
′
=
(
H
?
K
[
0
]
)
S
[
0
]
+
1
W
’
=
(
W
?
K
[
1
]
)
S
[
1
]
+
1
\begin{aligned}\\ H' &= \frac{(H-K[0])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1])}{S[1]} + 1 \end{aligned}
H′W’?=S[0](H?K[0])?+1=S[1](W?K[1])?+1? 其中:
-
K
K
K表示卷积核大小(kernel_size=(kernel_height,kernel_width))
-
S
S
S表示步幅大小(stride_size=(stride_height, stride_width))
-
H
H
H表示输入的张量的行长,
H
′
H'
H′表示输出张量的行长
-
W
W
W表示输入的张量的列长,
W
′
W'
W′表示输出张量的列长
ps:这里的除法为向上取整
1.2 示例
2、有填充
2.1.1 公式2
H
′
=
(
H
?
K
[
0
]
+
2
?
P
a
d
[
0
]
)
S
[
0
]
+
1
W
’
=
(
W
?
K
[
1
]
+
2
?
P
a
d
[
1
]
)
S
[
1
]
+
1
\begin{aligned}\\ H' &= \frac{(H-K[0] + 2*Pad[0])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1] + 2*Pad[1])}{S[1]} + 1 \end{aligned}
H′W’?=S[0](H?K[0]+2?Pad[0])?+1=S[1](W?K[1]+2?Pad[1])?+1?
其中:
-
K
K
K表示卷积核大小(kernel_size=(kernel_height,kernel_width))
-
S
S
S表示步幅大小(stride_size=(stride_height, stride_width))
-
P
a
d
Pad
Pad表示填充大小(padding_size=(up_down, left_right))
-
H
H
H表示输入的张量的行长,
H
′
H'
H′表示输出张量的行长
-
W
W
W表示输入的张量的列长,
W
′
W'
W′表示输出张量的列长
ps:pytorch卷积操作中的默认填充方式为(上下、左右)对称0填充 ,且具体操作流程为先填充后卷积 。
2.1.2 示例
2.2.1 公式3
H
′
=
(
H
?
K
[
0
]
+
P
a
d
[
0
]
+
P
a
d
[
1
]
)
S
[
0
]
+
1
W
’
=
(
W
?
K
[
1
]
+
P
a
d
[
2
]
+
P
a
d
[
3
]
)
S
[
1
]
+
1
\begin{aligned}\\ H' &= \frac{(H-K[0] + Pad[0] + Pad[1])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1] + Pad[2] + Pad[3])}{S[1]} + 1 \end{aligned}
H′W’?=S[0](H?K[0]+Pad[0]+Pad[1])?+1=S[1](W?K[1]+Pad[2]+Pad[3])?+1?
其中:
-
K
K
K表示卷积核大小(kernel_size=(kernel_height,kernel_width))
-
S
S
S表示步幅大小(stride_size=(stride_height, stride_width))
-
P
a
d
Pad
Pad表示填充大小(padding_size=(left, right, up, down))
-
H
H
H表示输入的张量的行长,
H
′
H'
H′表示输出张量的行长
-
W
W
W表示输入的张量的列长,
W
′
W'
W′表示输出张量的列长
2.2.2 示例
|