def bottleneck(nb_filter, init_subsample=(1, 1), is_first_block_of_first_layer=False):
"""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_filter * 4
"""
def f(input):
if is_first_block_of_first_layer:
# don't repeat bn->relu since we just did bn->relu->maxpool
conv_1_1 = Convolution2D(nb_filter=nb_filter,
nb_row=1, nb_col=1,
subsample=init_subsample,
init="he_normal", border_mode="same",
W_regularizer=l2(0.0001))(input)
else:
conv_1_1 = _bn_relu_conv(nb_filter=nb_filter, nb_row=1, nb_col=1,
subsample=init_subsample)(input)
conv_3_3 = _bn_relu_conv(nb_filter=nb_filter, nb_row=3, nb_col=3)(conv_1_1)
residual = _bn_relu_conv(nb_filter=nb_filter * 4, nb_row=1, nb_col=1)(conv_3_3)
return _shortcut(input, residual)
return f
resnet.py 文件源码
python
阅读 31
收藏 0
点赞 0
评论 0
评论列表
文章目录