def mobilefacenet_train(resume=False):
        x = inputs = tf.keras.layers.Input(shape=(112, 96, 3))
        x = mobilefacenet(x)

        if not resume:
            x = tf.keras.layers.Dense(cls_num)(x)
            outputs = tf.nn.softmax(x)
            return tf.keras.models.Model(inputs, outputs)
        else:
            y = tf.keras.layers.Input(shape=(cls_num, ))
            outputs = ArcFace_v2(n_classes=cls_num)((x, y))
            return tf.keras.models.Model([inputs, y], outputs)
Example #2
0
def mobilefacenet_train(softmax=False):

    if RESUME:
        model = keras.models.load_model(LOAD_MODEL_PATH)
        inputs = model.input
        x = model.output
    else:
        x = inputs = tf.keras.layers.Input(shape=(112, 96, 3))
        x = mobilefacenet(x)

    if softmax:
        x = tf.keras.layers.Dense(cls_num)(x)
        outputs = tf.keras.layers.Activation('softmax',
                                             dtype='float32',
                                             name='predictions')(x)
        return tf.keras.models.Model(inputs, outputs)
    else:
        y = tf.keras.layers.Input(shape=(cls_num, ), name="target")
        outputs = ArcFace_v2(n_classes=cls_num)((x, y))

        return tf.keras.models.Model([inputs, y], outputs)