def _conv_block(inputs, filters, alpha, kernel=(3, 3), strides=(1, 1)):
    "Adds an initial convolution layer (with batch normalization and relu6).\n\n  Arguments:\n      inputs: Input tensor of shape `(rows, cols, 3)`\n          (with `channels_last` data format) or\n          (3, rows, cols) (with `channels_first` data format).\n          It should have exactly 3 inputs channels,\n          and width and height should be no smaller than 32.\n          E.g. `(224, 224, 3)` would be one valid value.\n      filters: Integer, the dimensionality of the output space\n          (i.e. the number output of filters in the convolution).\n      alpha: controls the width of the network.\n          - If `alpha` < 1.0, proportionally decreases the number\n              of filters in each layer.\n          - If `alpha` > 1.0, proportionally increases the number\n              of filters in each layer.\n          - If `alpha` = 1, default number of filters from the paper\n               are used at each layer.\n      kernel: An integer or tuple/list of 2 integers, specifying the\n          width and height of the 2D convolution window.\n          Can be a single integer to specify the same value for\n          all spatial dimensions.\n      strides: An integer or tuple/list of 2 integers,\n          specifying the strides of the convolution along the width and height.\n          Can be a single integer to specify the same value for\n          all spatial dimensions.\n          Specifying any stride value != 1 is incompatible with specifying\n          any `dilation_rate` value != 1.\n\n  Input shape:\n      4D tensor with shape:\n      `(samples, channels, rows, cols)` if data_format='channels_first'\n      or 4D tensor with shape:\n      `(samples, rows, cols, channels)` if data_format='channels_last'.\n\n  Output shape:\n      4D tensor with shape:\n      `(samples, filters, new_rows, new_cols)` if data_format='channels_first'\n      or 4D tensor with shape:\n      `(samples, new_rows, new_cols, filters)` if data_format='channels_last'.\n      `rows` and `cols` values might have changed due to stride.\n\n  Returns:\n      Output tensor of block.\n  "
    channel_axis = (1 if (K.image_data_format() == 'channels_first') else (- 1))
    filters = int((filters * alpha))
    x = Conv2D(filters, kernel, padding='same', use_bias=False, strides=strides, name='conv1')(inputs)
    x = BatchNormalization(axis=channel_axis, name='conv1_bn')(x)
    return Activation(relu6, name='conv1_relu')(x)
Adds an initial convolution layer (with batch normalization and relu6).

Arguments:
    inputs: Input tensor of shape `(rows, cols, 3)`
        (with `channels_last` data format) or
        (3, rows, cols) (with `channels_first` data format).
        It should have exactly 3 inputs channels,
        and width and height should be no smaller than 32.
        E.g. `(224, 224, 3)` would be one valid value.
    filters: Integer, the dimensionality of the output space
        (i.e. the number output of filters in the convolution).
    alpha: controls the width of the network.
        - If `alpha` < 1.0, proportionally decreases the number
            of filters in each layer.
        - If `alpha` > 1.0, proportionally increases the number
            of filters in each layer.
        - If `alpha` = 1, default number of filters from the paper
             are used at each layer.
    kernel: An integer or tuple/list of 2 integers, specifying the
        width and height of the 2D convolution window.
        Can be a single integer to specify the same value for
        all spatial dimensions.
    strides: An integer or tuple/list of 2 integers,
        specifying the strides of the convolution along the width and height.
        Can be a single integer to specify the same value for
        all spatial dimensions.
        Specifying any stride value != 1 is incompatible with specifying
        any `dilation_rate` value != 1.

Input shape:
    4D tensor with shape:
    `(samples, channels, rows, cols)` if data_format='channels_first'
    or 4D tensor with shape:
    `(samples, rows, cols, channels)` if data_format='channels_last'.

Output shape:
    4D tensor with shape:
    `(samples, filters, new_rows, new_cols)` if data_format='channels_first'
    or 4D tensor with shape:
    `(samples, new_rows, new_cols, filters)` if data_format='channels_last'.
    `rows` and `cols` values might have changed due to stride.

Returns:
    Output tensor of block.
def _conv_block(inputs, filters, alpha, kernel=(3, 3), strides=(1, 1)):
    "Adds an initial convolution layer (with batch normalization and relu6).\n\n  Arguments:\n      inputs: Input tensor of shape `(rows, cols, 3)`\n          (with `channels_last` data format) or\n          (3, rows, cols) (with `channels_first` data format).\n          It should have exactly 3 inputs channels,\n          and width and height should be no smaller than 32.\n          E.g. `(224, 224, 3)` would be one valid value.\n      filters: Integer, the dimensionality of the output space\n          (i.e. the number output of filters in the convolution).\n      alpha: controls the width of the network.\n          - If `alpha` < 1.0, proportionally decreases the number\n              of filters in each layer.\n          - If `alpha` > 1.0, proportionally increases the number\n              of filters in each layer.\n          - If `alpha` = 1, default number of filters from the paper\n               are used at each layer.\n      kernel: An integer or tuple/list of 2 integers, specifying the\n          width and height of the 2D convolution window.\n          Can be a single integer to specify the same value for\n          all spatial dimensions.\n      strides: An integer or tuple/list of 2 integers,\n          specifying the strides of the convolution along the width and height.\n          Can be a single integer to specify the same value for\n          all spatial dimensions.\n          Specifying any stride value != 1 is incompatible with specifying\n          any `dilation_rate` value != 1.\n\n  Input shape:\n      4D tensor with shape:\n      `(samples, channels, rows, cols)` if data_format='channels_first'\n      or 4D tensor with shape:\n      `(samples, rows, cols, channels)` if data_format='channels_last'.\n\n  Output shape:\n      4D tensor with shape:\n      `(samples, filters, new_rows, new_cols)` if data_format='channels_first'\n      or 4D tensor with shape:\n      `(samples, new_rows, new_cols, filters)` if data_format='channels_last'.\n      `rows` and `cols` values might have changed due to stride.\n\n  Returns:\n      Output tensor of block.\n  "
    channel_axis = (1 if (K.image_data_format() == 'channels_first') else (- 1))
    filters = int((filters * alpha))
    x = Conv2D(filters, kernel, padding='same', use_bias=False, strides=strides, name='conv1')(inputs)
    x = BatchNormalization(axis=channel_axis, name='conv1_bn')(x)
    return Activation(relu6, name='conv1_relu')(x)