コード例 #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
Problem.search_space(create_search_space, num_layers=4)

Problem.hyperparameters(
    batch_size=32,
    learning_rate=(0.001, 0.1, "log-uniform"),
    optimizer="adam",
    num_epochs=100,
    verbose=0,
    callbacks=dict(
        CSVExtendedLogger=dict(),
        TimeStopping=dict(seconds=1200),
        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")
コード例 #3
0
ファイル: problem.py プロジェクト: xiaming9880/deephyper
Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

# Problem.preprocessing(minmaxstdscaler)

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

Problem.hyperparameters(
    batch_size=256,
    learning_rate=0.01,
    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
from nas_problems.polynome2.load_data import load_data
from nas_problems.polynome2.search_space import create_search_space
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={
コード例 #5
0
ファイル: problem_agebo.py プロジェクト: bigwater/NASBigData
Problem.hyperparameters(
    lsr_batch_size=True,
    lsr_learning_rate=True,
    batch_size=Problem.add_hyperparameter((16, 2048, "log-uniform"),
                                          "batch_size"),
    learning_rate=Problem.add_hyperparameter(
        (1e-4, 0.01, "log-uniform"),
        "learning_rate",
    ),
    optimizer=Problem.add_hyperparameter(
        ["sgd", "rmsprop", "adagrad", "adam", "adadelta", "adamax", "nadam"],
        "optimizer"),
    patience_ReduceLROnPlateau=Problem.add_hyperparameter(
        (3, 30), "patience_ReduceLROnPlateau"),
    patience_EarlyStopping=Problem.add_hyperparameter(
        (3, 30), "patience_EarlyStopping"),
    num_epochs=100,
    verbose=0,
    callbacks=dict(
        ReduceLROnPlateau=dict(monitor="val_r2",
                               mode="max",
                               verbose=0,
                               patience=5),
        EarlyStopping=dict(monitor="val_r2",
                           min_delta=0,
                           mode="max",
                           verbose=0,
                           patience=10),
    ),
)
コード例 #6
0
ファイル: problem.py プロジェクト: xiaming9880/deephyper
from deephyper.benchmark.nas.linearRegMultiLoss.load_data import load_data
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
Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.search_space(create_search_space, 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,  # maximal bound
    verbose=0,
    callbacks=dict(
        CSVExtendedLogger=dict(),
        ModelCheckpoint=dict(
            monitor="val_acc",
            mode="max",
            save_best_only=True,
            verbose=0,
            filepath="model.h5",
            save_weights_only=True,
        ),
    ),
    ranks_per_node=[1, 2, 4, 8],
)

Problem.loss("categorical_crossentropy")

Problem.metrics(["acc"])

Problem.objective("val_acc")
コード例 #8
0
ファイル: problem.py プロジェクト: xclmj/deephyper
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",
        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)
コード例 #9
0
ファイル: problem.py プロジェクト: felixeperez/deephyper
from deephyper.benchmark.nas.linearReg.load_data import load_data
from deephyper.problem import NaProblem
from deepspace.tabular import OneLayerSpace

Problem = NaProblem()

Problem.load_data(load_data)

Problem.search_space(OneLayerSpace)

Problem.hyperparameters(
    batch_size=Problem.add_hyperparameter((1, 100), "batch_size"),
    learning_rate=Problem.add_hyperparameter((1e-4, 1e-1, "log-uniform"),
                                             "learning_rate"),
    optimizer=Problem.add_hyperparameter(["adam", "nadam", "rmsprop"],
                                         "optimizer"),
    num_epochs=1,
)

Problem.loss("mse")

Problem.metrics(["r2"])

Problem.objective("val_r2")

# 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([1])
コード例 #10
0
ファイル: problem_test.py プロジェクト: bigwater/NASBigData
from nas_big_data.combo.load_data import load_data

Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.search_space(create_search_space, num_layers=5)

Problem.hyperparameters(batch_size=32,
                        learning_rate=0.001,
                        optimizer="adam",
                        num_epochs=4,
                        verbose=0,
                        callbacks=dict(
                            ReduceLROnPlateau=dict(monitor="val_r2",
                                                   mode="max",
                                                   verbose=0,
                                                   patience=5),
                            EarlyStopping=dict(monitor="val_r2",
                                               min_delta=0,
                                               mode="max",
                                               verbose=0,
                                               patience=10),
                        ))

Problem.loss("mse")

Problem.metrics(["r2"])

Problem.objective("val_r2")

# Just to print your problem, to test its definition and imports in the current python environment.
コード例 #11
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)
コード例 #12
0
from sklearn import metrics

Problem = NaProblem(seed=2019)

Problem.load_data(load_data)

Problem.preprocessing(stdscaler)

Problem.search_space(create_search_space, num_layers=6)

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

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


def AUC(y_true, y_pred):
    y_true = tf.argmax(y_true, axis=1)
    m = tf.keras.metrics.AUC(num_thresholds=3)
    m.update_state(y_true, y_pred[:, 1])
    return m.result()
コード例 #13
0
Problem.search_space(create_search_space)

Problem.hyperparameters(
    batch_size=[32, 64, 128, 256, 512, 1024],
    learning_rate=(0.001, 0.1, "log-uniform"),
    optimizer="adam",
    num_epochs=100,  # maximal bound
    verbose=0,
    callbacks=dict(
        CSVExtendedLogger=dict(),
        TimeStopping=dict(seconds=1200),
        EarlyStopping=dict(monitor="val_acc",
                           min_delta=0,
                           mode="max",
                           verbose=0,
                           patience=5),
        ReduceLROnPlateau=dict(patience=4, verbose=0),
        ModelCheckpoint=dict(
            monitor="val_acc",
            mode="max",
            save_best_only=True,
            verbose=0,
            filepath="model.h5",
            save_weights_only=True,
        ),
    ),
    ranks_per_node=[1, 2, 4, 8],
)

Problem.loss("categorical_crossentropy")
コード例 #14
0
from deephyper.benchmark.nas.covertype.load_data import load_data
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)])
コード例 #15
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)
コード例 #16
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)
コード例 #17
0
ファイル: problem.py プロジェクト: felixeperez/deephyper

Problem = NaProblem()

Problem.load_data(load_data)

Problem.search_space(OneLayerSpace)

Problem.hyperparameters(
    batch_size=100,
    learning_rate=0.1,
    optimizer="adam",
    num_epochs=1,
    callbacks=dict(
        ModelCheckpoint=dict(
            monitor="val_r2",
            mode="max",
            save_best_only=True,
            verbose=0,
            filepath="model.h5",
            save_weights_only=False,
        )
    ),
)

Problem.loss("mse")

Problem.metrics(["r2"])

Problem.objective("val_r2")