Ejemplo n.º 1
0
def create_model_binary(model_name: str) -> Model:
    """ Creates a binary model with the output = (None, 1). """
    model = Sequential([
        Conv2D(
            64, (3, 3),
            strides=(3, 3),
            input_shape=(512, 512, 1),
            activation='relu'
        ),
        Conv2D(
            128, (3, 3),
            strides=(3, 3),
            input_shape=(512, 512, 1),
            activation='relu'
        ),
        MaxPooling2D(pool_size=(2, 2)),
        Conv2D(
            128, (3, 3),
            strides=(3, 3),
            input_shape=(512, 512, 1),
            activation='relu'
        ),
        Conv2D(
            128, (3, 3),
            strides=(3, 3),
            input_shape=(512, 512, 1),
            activation='relu'
        ),
        MaxPooling2D(pool_size=(2, 2)),
        Flatten(),
        Dense(units=128, activation='relu'),
        Dropout(rate=0.5),
        Dense(units=128, activation='relu'),
        Dropout(rate=0.5),
        Dense(units=64, activation='relu'),
        Dropout(rate=0.3),
        Dense(units=1, activation='sigmoid')
    ])

    model.compile('adam', loss='binary_crossentropy', metrics=['accuracy'])

    model.__asf_model_name = model_name

    return model