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
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
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