示例#1
0
    def test_full_problem(self):
        from deephyper.nas.preprocessing import minmaxstdscaler
        from deephyper.problem import NaProblem

        pb = NaProblem()

        def load_data(prop):
            return ([[10]], [1]), ([10], [1])

        pb.load_data(load_data, prop=1.0)

        pb.preprocessing(minmaxstdscaler)

        pb.search_space(OneLayerSpace)

        pb.hyperparameters(
            batch_size=64,
            learning_rate=0.001,
            optimizer="adam",
            num_epochs=10,
            loss_metric="mse",
        )

        with pytest.raises(NaProblemError):
            pb.objective("r2")

        pb.loss("mse")
        pb.metrics(["r2"])

        possible_objective = ["loss", "val_loss", "r2", "val_r2"]
        for obj in possible_objective:
            pb.objective(obj)
示例#2
0
from molnet.molnet.search_space import create_search_space
from deephyper.search.nas.model.preprocessing import minmaxstdscaler

Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.preprocessing(minmaxstdscaler)

Problem.search_space(create_search_space, num_layers=3)

Problem.hyperparameters(
    batch_size=32,
    learning_rate=0.01,
    optimizer='adam',
    num_epochs=20,
    callbacks=dict(EarlyStopping=dict(
        monitor='val_r2',  # or 'val_acc' ?
        mode='max',
        verbose=0,
        patience=5)))

Problem.loss('mse')  # or 'categorical_crossentropy' ?

Problem.metrics(['r2'])  # or 'acc' ?

Problem.objective('val_r2__last')  # or 'val_acc__last' ?

# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == '__main__':
    print(Problem)
示例#3
0
from deephyper.problem import NaProblem
from deepspace.tabular import DenseSkipCoSpace

Problem = NaProblem()

Problem.load_data(load_data)

Problem.search_space(DenseSkipCoSpace, regression=False, bn=False, num_layers=10)

Problem.hyperparameters(
    batch_size=[32, 64, 128, 256, 512, 1024],
    learning_rate=(0.001, 0.1, "log-uniform"),
    optimizer="adam",
    num_epochs=20,
    verbose=0,
    callbacks=dict(CSVExtendedLogger=dict()),
)

Problem.loss("categorical_crossentropy")

Problem.metrics(["acc"])

Problem.objective("val_acc")


# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == "__main__":
    print(Problem)

    # model = Problem.get_keras_model([4 for _ in range(20)])
示例#4
0
        EarlyStopping=dict(
            monitor="val_sparse_perplexity",
            min_delta=0,
            mode="min",
            verbose=0,
            patience=5,
        ),
        ReduceLROnPlateau=dict(patience=4, verbose=0),
        ModelCheckpoint=dict(
            monitor="val_sparse_perplexity",
            mode="min",
            save_best_only=True,
            verbose=0,
            filepath="model.h5",
            save_weights_only=True,
        ),
    ),
)

Problem.loss("sparse_categorical_crossentropy")

Problem.metrics(["sparse_perplexity"])

Problem.objective("-val_sparse_perplexity")

# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == "__main__":
    print(Problem)

    # model = Problem.get_keras_model([4 for _ in range(20)])
from deephyper.problem import NaProblem

Problem = NaProblem()

Problem.load_data(load_data, size=1000)

Problem.search_space(create_search_space)

Problem.hyperparameters(batch_size=128,
                        learning_rate=0.001,
                        optimizer="rmsprop",
                        num_epochs=5)

Problem.loss("mse")

Problem.metrics(["r2"])

Problem.objective("val_r2__last")

Problem.post_training(
    num_epochs=60,
    metrics=["r2"],
    model_checkpoint={
        "monitor": "val_r2",
        "mode": "max",
        "save_best_only": True,
        "verbose": 1,
    },
    early_stopping={
        "monitor": "val_r2",
        "mode": "max",
示例#6
0
from deepspace.tabular import SupervisedRegAutoEncoderFactory


def create_search_space(input_shape, output_shape, **kwargs):
    return SupervisedRegAutoEncoderFactory()(input_shape, output_shape, **kwargs)


Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.search_space(create_search_space, num_layers=10)

Problem.hyperparameters(
    batch_size=100, learning_rate=0.1, optimizer="adam", num_epochs=20
)

Problem.loss(
    loss={"output_0": "mse", "output_1": "mse"},
    weights={"output_0": 0.0, "output_1": 1.0},
)

Problem.metrics({"output_0": ["r2", "mse"], "output_1": "mse"})

Problem.objective("val_output_0_r2")


# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == "__main__":
    print(Problem)
示例#7
0
from deephyper.problem import NaProblem
from nas_big_data.daymet.conv_lstm_2d import create_conv_lstm_search_space
from nas_big_data.daymet.load_data import load_data

Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.search_space(create_conv_lstm_search_space, num_layers=10)

Problem.hyperparameters(
    # batch_size=256,  # (128, 2048),
    batch_size=[32, 64, 128, 256, 512, 1024],
    learning_rate=(0.001, 0.1, "log-uniform"),
    optimizer="adam",
    num_epochs=20,
    verbose=0,
    callbacks=dict(CSVExtendedLogger=dict(), TimeStopping=dict(seconds=460)),
)

Problem.loss("mse")

Problem.metrics(["mae"])

Problem.objective("val_loss")

# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == "__main__":
    print(Problem)
示例#8
0
from deephyper.problem import NaProblem
from nas_gcn.qm7.load_data import load_data
from nas_gcn.search_space_utils import create_search_space

Problem = NaProblem(seed=2020)
Problem.load_data(load_data)
Problem.search_space(create_search_space, data='qm7')
Problem.hyperparameters(batch_size=128,
                        learning_rate=1e-3,
                        optimizer='adam',
                        num_epochs=50)
Problem.loss("mae")
Problem.metrics(['mae', 'mse', 'r2', 'negmae'])
Problem.objective('val_negmae__max')

if __name__ == '__main__':
    print(Problem)
示例#9
0
    m.update_state(y_true, y_pred[:, 1])
    return m.result()


# for multi class multi label
# def f1_score(y_true,y_pred):

#     def recall(y_true, y_pred):
#         true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
#         possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
#         recall = true_positives / (possible_positives + K.epsilon())
#         return recall

#     def precision(y_true, y_pred):
#         true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
#         predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
#         precision = true_positives / (predicted_positives + K.epsilon())
#         return precision
#     actual = y_true
#     predicted = 1 if y_pred>=0.5 else 0
#     precision = precision(y_true, y_pred)
#     recall = recall(y_true, y_pred)
#     return 2*((precision*recall)/(precision+recall+K.epsilon()))

Problem.metrics([AUC])  # or 'acc' ?

Problem.objective('val_AUC__max')  # or 'val_r2__last' ?

# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == '__main__':
    print(Problem)
示例#10
0
Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.preprocessing(minmaxstdscaler)

Problem.search_space(create_search_space, num_layers=3)

Problem.hyperparameters(
    batch_size=32,
    learning_rate=0.01,
    optimizer="adam",
    num_epochs=20,
    callbacks=dict(EarlyStopping=dict(
        monitor="val_r2",
        mode="max",
        verbose=0,
        patience=5  # or 'val_acc' ?
    )),
)

Problem.loss("mse")  # or 'categorical_crossentropy' ?

Problem.metrics(["r2"])  # or 'acc' ?

Problem.objective("val_r2__last")  # or 'val_acc__last' ?

# Just to print your problem, to test its definition and imports in the current python environment.
if __name__ == "__main__":
    print(Problem)