def increase_b(x, scale, name=None):
    pad = 'same'
    branch0 = conv2d.build(x, 192, 1, 1, pad, True, name=name + 'b0')
    branch1 = conv2d.build(x, 128, 1, 1, pad, True, name=name + 'b1_1')
    branch1 = conv2d.build(branch1,
                           160, [1, 7],
                           1,
                           pad,
                           True,
                           name=name + 'b1_2')
    branch1 = conv2d.build(branch1,
                           192, [7, 1],
                           1,
                           pad,
                           True,
                           name=name + 'b1_3')
    branches = [branch0, branch1]
    mixed = Concatenate(axis=3, name=name + '_mixed')(branches)
    filt_exp_1x1 = conv2d.build(mixed,
                                1152,
                                1,
                                1,
                                pad,
                                False,
                                name=name + 'filt_exp_1x1')
    final_lay = Lambda(scaling,
                       output_shape=backend.int_shape(x)[1:],
                       arguments={'scale': scale},
                       name=name + 'act_scaling')([x, filt_exp_1x1])
    return final_lay
Esempio n. 2
0
def reduction_a(x):
    # 35 × 35 to 17 × 17 reduction module.
    x_red_11 = MaxPooling2D(3, strides=2, padding='valid', name='red_maxpool_1')(x)

    x_red_12 = conv2d.build(x, 384, 3, 2, 'valid', True, name='x_red1_c1')

    x_red_13 = conv2d.build(x, 256, 1, 1, 'same', True, name='x_red1_c2_1')
    x_red_13 = conv2d.build(x_red_13, 256, 3, 1, 'same', True, name='x_red1_c2_2')
    x_red_13 = conv2d.build(x_red_13, 384, 3, 2, 'valid', True, name='x_red1_c2_3')
    x = Concatenate(axis=3, name='red_concat_1')([x_red_11, x_red_12, x_red_13])
    return x
Esempio n. 3
0
def increase_a(x,scale,name=None):
    pad = 'same'
    branch0 = conv2d.build(x,32,1,1,pad,True,name=name+'b0')
    branch1 = conv2d.build(x,32,1,1,pad,True,name=name+'b1_1')
    branch1 = conv2d.build(branch1,32,3,1,pad,True,name=name+'b1_2')
    branch2 = conv2d.build(x,32,1,1,pad,True,name=name+'b2_1')
    branch2 = conv2d.build(branch2,48,3,1,pad,True,name=name+'b2_2')
    branch2 = conv2d.build(branch2,64,3,1,pad,True,name=name+'b2_3')
    branches = [branch0,branch1,branch2]
    mixed = Concatenate(axis=3, name=name + '_concat')(branches)
    filt_exp_1x1 = conv2d.build(mixed,384,1,1,pad,False,name=name+'filt_exp_1x1')
    final_lay = Lambda(scaling,
                      output_shape=backend.int_shape(x)[1:],
                      arguments={'scale': scale},
                      name=name+'act_scaling')([x, filt_exp_1x1])
    return final_lay
def reduction_b(x):
    # 17 × 17 to 8 × 8 reduction module.
    x_red_21 = MaxPooling2D(3,
                            strides=2,
                            padding='valid',
                            name='red_maxpool_2')(x)

    x_red_22 = conv2d.build(x, 256, 1, 1, 'same', True, name='x_red2_c11')
    x_red_22 = conv2d.build(x_red_22,
                            384,
                            3,
                            2,
                            'valid',
                            True,
                            name='x_red2_c12')

    x_red_23 = conv2d.build(x, 256, 1, 1, 'same', True, name='x_red2_c21')
    x_red_23 = conv2d.build(x_red_23,
                            256,
                            3,
                            2,
                            'valid',
                            True,
                            name='x_red2_c22')

    x_red_24 = conv2d.build(x, 256, 1, 1, 'same', True, name='x_red2_c31')
    x_red_24 = conv2d.build(x_red_24,
                            256,
                            3,
                            1,
                            'same',
                            True,
                            name='x_red2_c32')
    x_red_24 = conv2d.build(x_red_24,
                            256,
                            3,
                            2,
                            'valid',
                            True,
                            name='x_red2_c33')

    x = Concatenate(
        axis=3, name='red_concat_2')([x_red_21, x_red_22, x_red_23, x_red_24])
    return x
Esempio n. 5
0
def build(input):
    x = conv2d.build(input, 32, 3, 2, 'valid', True, name='conv1')
    x = conv2d.build(x, 32, 3, 1, 'valid', True, name='conv2')
    x = conv2d.build(x, 64, 3, 1, 'valid', True, name='conv3')

    x_11 = MaxPooling2D(3,
                        strides=1,
                        padding='valid',
                        name='stem_br_11' + '_maxpool_1')(x)
    x_12 = conv2d.build(x, 64, 3, 1, 'valid', True, name='stem_br_12')

    x = Concatenate(axis=3, name='stem_concat_1')([x_11, x_12])

    x_21 = conv2d.build(x, 64, 1, 1, 'same', True, name='stem_br_211')
    x_21 = conv2d.build(x_21, 64, [1, 7], 1, 'same', True, name='stem_br_212')
    x_21 = conv2d.build(x_21, 64, [7, 1], 1, 'same', True, name='stem_br_213')
    x_21 = conv2d.build(x_21, 96, 3, 1, 'valid', True, name='stem_br_214')

    x_22 = conv2d.build(x, 64, 1, 1, 'same', True, name='stem_br_221')
    x_22 = conv2d.build(x_22, 96, 3, 1, 'valid', True, name='stem_br_222')

    x = Concatenate(axis=3, name='stem_concat_2')([x_21, x_22])

    x_31 = conv2d.build(x, 192, 3, 1, 'valid', True, name='stem_br_31')
    x_32 = MaxPooling2D(3,
                        strides=1,
                        padding='valid',
                        name='stem_br_32' + '_maxpool_2')(x)
    x = Concatenate(axis=3, name='stem_concat_3')([x_31, x_32])

    return x