def _bn_relu_deconv(nb_filter, nb_row, nb_col, subsample, output_shape):
def f(x):
norm = BatchNormalization(mode=2, axis=3)(x)
activation = Activation("relu")(norm)
return Deconvolution2D(
nb_filter, nb_row, nb_col, W_regularizer=l2(1e-4),
subsample=subsample, output_shape=output_shape,
init="he_normal", border_mode="same")(activation)
return f
# Bottleneck architecture for > 34 layer resnet.
# Follows improved proposed scheme in http://arxiv.org/pdf/1603.05027v2.pdf
# Returns a final conv layer of nb_filters * 4
# def _bottleneck(nb_filters, init_subsample=(1, 1)):
# def f(x):
# conv_1_1 = _bn_relu_conv(nb_filters, 1, 1, subsample=init_subsample)(x)
# conv_3_3 = _bn_relu_conv(nb_filters, 3, 3)(conv_1_1)
# residual = _bn_relu_conv(nb_filters * 4, 1, 1)(conv_3_3)
# return _shortcut(x, residual)
# return f
# Basic 3 X 3 convolution blocks.
# Use for resnet with layers <= 34
# Follows improved proposed scheme in http://arxiv.org/pdf/1603.05027v2.pdf
评论列表
文章目录