卷积层
卷积公式
O
u
t
[
c
h
o
]
[
r
]
[
c
]
=
∑
c
h
o
=
0
C
H
o
u
t
∑
c
h
i
=
0
C
H
i
n
∑
r
=
0
R
∑
c
=
0
C
∑
k
r
=
0
K
∑
k
c
=
0
K
I
n
[
c
h
i
]
[
S
∗
r
+
k
r
]
[
S
∗
c
+
k
c
]
∗
W
[
c
h
o
]
[
c
h
i
]
[
k
r
]
[
k
c
]
Out[cho][r][c]= \sum \limits_{cho=0}^{CHout}\sum \limits_{chi=0}^{CHin}\sum \limits_{r=0}^{R}\sum \limits_{c=0}^{C}\sum \limits_{kr=0}^{K}\sum \limits_{kc=0}^{K} In[chi][S*r+kr][S*c+kc]*W[cho][chi][kr][kc]
Out[cho][r][c]=cho=0∑CHoutchi=0∑CHinr=0∑Rc=0∑Ckr=0∑Kkc=0∑KIn[chi][S∗r+kr][S∗c+kc]∗W[cho][chi][kr][kc]
float In[CHin][Rin][Cin];
float W[CHout][CHin][K][K];
float Out[CHout][R][C];
for (int cho = 0; cho < CHout; cho++) {
for (int chi = 0; chi < CHin; chi++) {
for (int r = 0; r < R; r++) {
for (int c = 0; c < C; c++) {
for (int kr = 0; kr < K; kr++) {
for (int kc = 0; kc < K; kc++) {
Out[cho][r][c]+=In[chi][r+kr][c+kc]*W[cho][chi][kr][kc];
}
}
}
}
}
}
池化层
池化公式
O
u
t
[
c
h
o
]
[
r
]
[
c
]
=
∑
c
h
o
=
0
C
H
o
u
t
∑
c
h
i
=
0
C
H
i
n
∑
r
=
0
R
∑
c
=
0
C
M
a
x
(
I
n
[
c
h
i
]
[
K
∗
r
]
[
K
∗
c
]
,
I
n
[
c
h
i
]
[
K
∗
r
]
[
K
∗
c
+
1
]
,
I
n
[
c
h
i
]
[
K
∗
r
+
1
]
[
K
∗
c
]
,
I
n
[
c
h
i
]
[
K
∗
r
+
1
]
[
K
∗
c
+
1
]
)
Out[cho][r][c]= \sum \limits_{cho=0}^{CHout}\sum \limits_{chi=0}^{CHin}\sum \limits_{r=0}^{R}\sum \limits_{c=0}^{C} Max(In[chi][K*r][K*c],In[chi][K*r][K*c+1],In[chi][K*r+1][K*c],In[chi][K*r+1][K*c+1])
Out[cho][r][c]=cho=0∑CHoutchi=0∑CHinr=0∑Rc=0∑CMax(In[chi][K∗r][K∗c],In[chi][K∗r][K∗c+1],In[chi][K∗r+1][K∗c],In[chi][K∗r+1][K∗c+1])