Attention Unet
Created by: davidlinhl
在aistudio上发现了一个基于paddleseg实现的attention unet。 https://aistudio.baidu.com/aistudio/projectdetail/747582 和框架完全兼容,效果也不错,感觉pdseg可以考虑把这个网络也包括进来。 在pdseg unet基础上添加了一个attention block。
param_attr = fluid.ParamAttr(name='weights',regularizer=fluid.regularizer.L2DecayRegularizer(
regularization_coeff=0.0),initializer=fluid.initializer.TruncatedNormal(loc=0.0, scale=0.33))
#上采样特征图g进行1*1卷积
with scope("conv_down"):
data = bn(conv(data, out_ch, 1, stride=1, padding=0, param_attr=param_attr))
#下采样特征图x进行1*1卷积
with scope("conv_shortcurt"):
shortcurt_new = bn(conv(shortcurt, out_ch, 1, padding=0, param_attr=param_attr))
#add之后经过relu激活函数,1*1卷积,sigmoid激活函数最后将得到的权重与下采样特征图x相乘
with scope("psi"):
psi = relu(data+shortcurt_new)
psi = bn(conv(psi, 1, 1, stride=1, padding=0, param_attr=param_attr))
psi = fluid.layers.sigmoid(psi)
return shortcurt*psi