Ejemplo n.º 1
0
def simple_model(features=16, layers=1, name=None):
    """Creates and returns a simple keras model

    Fully connected model:
    -Flatten board grid into vector
    -`layers` # of Dense layers with `features` # of nodes
    -Dense layer with 8 nodes
    -Dense layer of size 4 using softmax for output

    Args:
        features: number of nodes for middle layers
            Defaults to 16
        layers: number of middle layers
            Defaults to 1
        name: optional name for model

    """
    model = Sequential()
    if name:
        model.name = name
    model.add(Flatten(input_shape=(SIZE, SIZE)))
    # TODO: Test effect of batch norm
    for _ in range(layers):
        model.add(Dense(features, activation='relu'))
    model.add(Dense(8, activation='relu'))
    model.add(Dense(4, activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adam')
    return model
Ejemplo n.º 2
0
    def train_discriminator(y_pred_in, y_pred_out, validation_data,
                            featuremap_attacker):
        if featuremap_attacker is None:
            model = Sequential()
            model.name = "featuremap_mia"

            model.add(Dense(input_shape=(y_pred_in.shape[1:]), units=500))
            model.add(Dropout(0.2))
            model.add(Dense(units=250))
            model.add(Dropout(0.2))
            model.add(Dense(units=10))
            model.add(Dense(units=1, activation="sigmoid"))

            model.compile(optimizer="Adam",
                          metrics=["accuracy"],
                          loss="binary_crossentropy")
            featuremap_attacker = model
        featuremap_attacker.fit(np.concatenate((y_pred_in, y_pred_out),
                                               axis=0),
                                np.concatenate((np.zeros(len(y_pred_in)),
                                                np.ones(len(y_pred_out)))),
                                validation_data=validation_data,
                                epochs=epochs,
                                verbose=0)
        return featuremap_attacker
Ejemplo n.º 3
0
def _create_one_layer_model(input_shape: Optional[tuple], actions_count: int,
                            units: int) -> Sequential:
    model = Sequential()
    model.name = "one-hidden-layer-" + str(units)
    model.add(Dense(units=units, input_shape=input_shape, activation='relu'))
    model.add(Dense(units=actions_count, activation='linear'))
    model.compile(loss='mse', optimizer='adam')

    return model