1、DAB模块
1)bn_conv2D实现:
def bn_conv2D(x, filters, kernel_size, strides=(1, 1), dilation_rate=(1, 1), use_bias=False): x = Conv2D(filters, kernel_size, padding='same', strides=strides, kernel_initializer='he_normal', dilation_rate=dilation_rate, use_bias=use_bias)(x) x = BatchNormalization(axis=-1, scale=False, epsilon=1e-3)(x) # x = Activation(activation='relu')(x) return Activation(pre_relu6)(x)
讯享网
2)bn_dw_conv2D实现:
讯享网def bn_dw_conv2D(x, kernel_size, strides=(1, 1), dilation_rate=(1, 1), use_bias=False): x = DepthwiseConv2D(kernel_size, strides=strides, depth_multiplier=1, padding='same', use_bias=use_bias, dilation_rate=dilation_rate, kernel_initializer='he_normal')(x) x = BatchNormalization(axis=-1, scale=False, epsilon=1e-3)(x) return Activation(pre_relu6)(x)
3)bn_relu6实现:
from keras import backend as K def pre_relu6(x): return K.relu(x, alpha=0.001, max_value=6) def bn_relu6(x): x = BatchNormalization(axis=-1, scale=False, epsilon=1e-3)(x) # x = Activation(activation='relu')(x) x = Activation(pre_relu6)(x) return x
4)dab_model实现:
讯享网def dab_model(x, d, k_size): in_shape = K.int_shape(x)[-1] x1 = bn_conv2D(x, in_shape // 2, (k_size, k_size), strides=(1, 1)) x2 = bn_dw_conv2D(x1, (k_size, 1), strides=(1, 1)) x2 = bn_dw_conv2D(x2, (1, k_size), strides=(1, 1)) x3 = bn_dw_conv2D(x1, (k_size, 1), strides=(1, 1), dilation_rate=(d, 1)) x3 = bn_dw_conv2D(x3, (1, k_size), strides=(1, 1), dilation_rate=(1, d)) x2 = bn_relu6(add([x2, x3])) x2 = Conv2D(in_shape, (1, 1), padding="same", strides=(1, 1), kernel_initializer='he_normal', use_bias=True)(x2) return bn_relu6(add([x, x2]))
2、DAB-Net实现
DAB-Block1实现:

d1 = [2, 2, 2] block1 = len(d1) for i, d in zip(range(0, block1), d1): if i == 0: x = dab_model(x1, d, k_size=3) else: x = dab_model(x, d, k_size=3) x = bn_relu6(concatenate([x, x1, down2], axis=-1))
DAB-Block2实现:


讯享网d2 = [4, 4, 8, 8, 16, 16] block2 = len(d2) for i, d in zip(range(0, block2), d2): if i == 0: x = dab_model(x2, d, k_size=3) else: x = dab_model(x, d, k_size=3) x = bn_relu6(concatenate([x, x2, down3], axis=-1))

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/62161.html