def _build_model(input_shape):
        x = Input(shape=input_shape, name="input")
        img_input = x

        x = VggPreprocess()(x)

        # Block 1
        x = Conv2D(64, (3, 3),
                   activation='relu',
                   padding='same',
                   name='block1_conv1')(x)
        x = Conv2D(64, (3, 3),
                   activation='relu',
                   padding='same',
                   name='block1_conv2')(x)
        x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)

        # Block 2
        x = Conv2D(128, (3, 3),
                   activation='relu',
                   padding='same',
                   name='block2_conv1')(x)
        x = Conv2D(128, (3, 3),
                   activation='relu',
                   padding='same',
                   name='block2_conv2')(x)
        x = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool')(x)

        # Block 3
        x = Conv2D(256, (3, 3),
                   activation='relu',
                   padding='same',
                   name='block3_conv1')(x)
        model = Model(img_input, x, name='vgg19')
        return model
Example #2
0
    def _build_model(input_shape):
        x = Input(shape=input_shape, name="input")
        img_input = x
        
        x = VggPreprocess()(x)
        base_model = VGG19(input_shape=input_shape, include_top=False)
        model = Model(inputs=base_model.input, outputs=base_model.get_layer(output_layer).output)
        fname = os.path.join(MODEL_ROOT, "h5/vgg19_weights_tf_dim_ordering_tf_kernels_notop.h5")
        model.load_weights(fname, by_name=True)
        x = model(x)

        feat_model = Model(img_input, x, name='vgg19_extractor')
        return feat_model
    def _build_model(input_shape):
        x = Input(shape=input_shape, name="input")
        img_input = x

        x = VggPreprocess()(x)

        # Block 1
        x = Conv2D(32, (3, 3), strides=2, use_bias=False, padding='same')(x)

        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)

        # x = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv2')(x)
        x = DepthwiseConv2D((3, 3), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        x = Conv2D(64, (1, 1), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        #         x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)

        # Block 2
        # x = Conv2D(128, (3, 3), activation='relu', padding='same', name='block2_conv1')(x)
        x = DepthwiseConv2D((3, 3), strides=2, use_bias=False,
                            padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        x = Conv2D(128, (1, 1), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)

        # x = Conv2D(128, (3, 3), activation='relu', padding='same', name='block2_conv2')(x)
        x = DepthwiseConv2D((3, 3), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        x = Conv2D(128, (1, 1), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        #         x = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool')(x)

        # Block 3
        # x = Conv2D(256, (3, 3), activation='relu', padding='same', name='block3_conv1')(x)
        x = DepthwiseConv2D((3, 3), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu")(x)
        x = Conv2D(256, (1, 1), use_bias=False, padding='same')(x)
        if USE_TF_KERAS:
            x = BatchNormalization(fused=False)(x)
        else:
            x = BatchNormalization()(x)
        x = Activation("relu", name="block3_conv1")(x)

        model = Model(img_input, x, name='mobile_encoder_31')
        return model
Example #4
0
def mobile_encoder(input_size=256, h5_fname=MOBILE_ENCODER_H5):

    input_shape=[input_size,input_size,3]
    
    x = Input(shape=input_shape, name="input")
    img_input = x

    # Block 1
    x = VggPreprocess()(x)
    x = Conv2D(32, (3, 3), strides=2, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (112,112,32)

    x = DepthwiseConv2D((3, 3), use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    x = Conv2D(64, (1, 1), use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (112,112,64)

    x = DepthwiseConv2D((3, 3), strides=2, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (56,56,64)
    x = Conv2D(128, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (56,56,128)

    x = DepthwiseConv2D((3, 3), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    x = Conv2D(128, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (56,56,128)

    x = DepthwiseConv2D((3, 3), strides=2, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (28,28,128)
    x = Conv2D(256, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (28,28,256)

    x = DepthwiseConv2D((3, 3), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    x = Conv2D(256, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (28,28,256)

    x = DepthwiseConv2D((3, 3), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    x = Conv2D(512, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    # (28,28,512)

    x = DepthwiseConv2D((3, 3), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu")(x)
    x = Conv2D(512, (1, 1), strides=1, use_bias=False, padding='same')(x)
    x = BatchNormalization(fused=False)(x)
    x = Activateion("relu", name="output")(x)

    model = Model(img_input, x, name='vgg19_light')
    model.load_weights(h5_fname)
    return model