human
I wrote the below code

    def residual_bottleneck_block(l, increase_dim=False, first=False):
        input_num_filters = l.output_shape[1]
        if increase_dim:
            first_stride = (2, 2)
            out_num_filters = (input_num_filters * 2)
        else:
            first_stride = (1, 1)
            out_num_filters = input_num_filters
        if first:
            bn_pre_relu = l
            out_num_filters = (out_num_filters * 4)
        else:
            bn_pre_conv = BatchNormLayer(l)
            bn_pre_relu = NonlinearityLayer(bn_pre_conv, rectify)
        bottleneck_filters = (out_num_filters / 4)
        conv_1 = batch_norm(ConvLayer(bn_pre_relu, num_filters=bottleneck_filters, filter_size=(1, 1), stride=(1, 1), nonlinearity=rectify, pad='same', W=he_norm))
        conv_2 = batch_norm(ConvLayer(conv_1, num_filters=bottleneck_filters, filter_size=(3, 3), stride=first_stride, nonlinearity=rectify, pad='same', W=he_norm))
        conv_3 = ConvLayer(conv_2, num_filters=out_num_filters, filter_size=(1, 1), stride=(1, 1), nonlinearity=None, pad='same', W=he_norm)
        if increase_dim:
            projection = ConvLayer(l, num_filters=out_num_filters, filter_size=(1, 1), stride=(2, 2), nonlinearity=None, pad='same', b=None)
            block = ElemwiseSumLayer([conv_3, projection])
        elif first:
            projection = ConvLayer(l, num_filters=out_num_filters, filter_size=(1, 1), stride=(1, 1), nonlinearity=None, pad='same', b=None)
            block = ElemwiseSumLayer([conv_3, projection])
        else:
            block = ElemwiseSumLayer([conv_3, l])
        return block
    l_in = InputLayer(shape=(None, 3, PIXELS, PIXELS), input_var=input_var)
    l = batch_norm(ConvLayer(l_in, num_filters=16, filter_size=(3, 3), stride=(1, 1), nonlinearity=rectify, pad='same', W=he_norm))
    l = residual_bottleneck_block(l, first=True)
    for _ in range(1, n):
        l = residual_bottleneck_block(l)
    l = residual_bottleneck_block(l, increase_dim=True)
    for _ in range(1, n):
        l =...

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def ResNet_BottleNeck_FullPreActivation(input_var=None, n=18):