Shallow and deep feature extraction:浅层特征提取,输入
I
L
Q
∈
R
H
×
W
×
C
i
n
I_{LQ}\in\mathbb{R}^{H\times W\times C_{in}}
ILQ∈RH×W×Cin,经过一个
3
×
3
3\times 3
3×3的卷积层
H
S
F
(
⋅
)
H_{SF}(\cdot)
HSF(⋅)得到输出
F
0
∈
R
H
×
W
×
C
F_0\in\mathbb{R}^{H\times W\times C}
F0∈RH×W×C,之后进行深层特征提取
F
D
F
∈
R
H
×
W
×
C
,
F
D
F
=
H
D
F
(
F
0
)
F_{DF}\in\mathbb{R}^{H\times W\times C},F_{DF}=H_{DF}(F_0)
FDF∈RH×W×C,FDF=HDF(F0),其中
H
D
F
(
⋅
)
H_{DF}(\cdot)
HDF(⋅)包含
K
K
K个residual Swin Transformer blocks (RSTB) and a 3 × 3 convolutional layer
图像重建层:以图像超分任务为例
I
R
H
Q
=
H
R
E
C
(
F
0
+
F
D
F
)
I_{RHQ}=H_{REC}(F_0+F_{DF})
IRHQ=HREC(F0+FDF),使用sub-pixel convolution layer来进行上采样,假如不需要上采样的任务例如图像去噪和JPEG compression artifact reduction,就使用一层卷积实现重建层,模型学习的目标是LR和HR的residual,所以
I
R
H
Q
=
H
S
w
i
n
I
R
(
I
L
Q
)
+
I
L
Q
I_{RHQ}=H_{SwinIR}(I_{LQ})+I_{LQ}
IRHQ=HSwinIR(ILQ)+ILQ;
超分任务损失函数使用的是L1 pixel loss,
L
=
∣
∣
I
R
H
Q
−
I
H
Q
∣
∣
1
L = ||I_{RHQ}-I_{HQ}||_1
L=∣∣IRHQ−IHQ∣∣1,其他任务使用的是Charbonnier loss;
Residual Swin Transformer Block:由L个STL和一个卷积层组成;
Swin Transformer layer:对于输入
H
×
W
×
C
H\times W\times C
H×W×C,首先将输入reshape成
H
W
M
2
×
M
2
×
C
\frac{HW}{M^2}\times M^2\times C
M2HW×M2×C,总共有
H
W
M
2
\frac{HW}{M^2}
M2HW个相互之间不重叠的window,之后再每个window上进行local attention,也就是标准的attention;对于当个window
X
∈
R
M
2
×
C
X\in\mathbb{R}^{M^2\times C}
X∈RM2×C,
Q
=
X
P
Q
,
K
=
X
P
K
,
V
=
X
P
V
Q=XP_Q,K=XP_K,V=XP_V
Q=XPQ,K=XPK,V=XPV,其中
P
Q
,
P
K
,
P
V
P_Q,P_K,P_V
PQ,PK,PV是不同window之间共享的参数,
Q
,
K
,
V
∈
R
M
2
×
d
Q,K,V\in\mathbb{R}^{M^2\times d}
Q,K,V∈RM2×d,之后
A
t
t
e
n
t
i
o
n
(
Q
,
K
,
V
)
=
S
o
f
t
M
a
x
(
Q
K
T
/
d
+
B
)
V
Attention(Q,K,V)=SoftMax(QK^T/\sqrt{d}+B)V
Attention(Q,K,V)=SoftMax(QKT/d+B)V,其中
B
B
B是可学习的相对位置编码,此处是多头注意力机制,接下来是MLP层(包含两层全连接和GELU),整体
X
=
M
S
A
(
L
N
(
X
)
)
+
X
,
X
=
M
L
P
(
L
N
(
X
)
)
+
X
X = MSA(LN(X))+X,X=MLP(LN(X))+X
X=MSA(LN(X))+X,X=MLP(LN(X))+X,为了保证cross-window connections,铍铜的window partition和shifted window partition是交替使用的;
我们经常会遇到类似错误 ModuleNotFoundError: No module named ‘requests‘
ModuleNotFoundError: No module named bs4
现在记录一下解决方案。
File--》Settings--》Project--》Python interpreter》点击+ 》输入requests--》选中requests--》点击右下角inst…