Beispiel #1
0
    def test_add_output_layer2(self):
        # check if it reshapes the output correctly
        model = Model(model={'layers': {
            'lstm': 64,
            'Dense': 1
        }},
                      data=load_nasdaq(),
                      verbosity=0)

        self.assertEqual(model._model.outputs[0].shape[1], model.outs)
        self.assertEqual(model._model.outputs[0].shape[-1], model.forecast_len)
        return
Beispiel #2
0
    def test_add_output_layer1(self):
        # check if it adds both dense and reshapes it correctly or not
        model = Model(model={'layers': {
            'lstm': 64
        }},
                      data=load_nasdaq(),
                      verbosity=0)

        self.assertEqual(model._model.outputs[0].shape[1], model.outs)
        self.assertEqual(model._model.outputs[0].shape[-1], model.forecast_len)

        return
Beispiel #3
0
    def test_add_no_output_layer(self):
        # check if it does not add layers when it does not have to
        model = Model(model={
            'layers': {
                'lstm': 64,
                'Dense': 1,
                'Reshape': {
                    'target_shape': (1, 1)
                }
            }
        },
                      data=load_nasdaq(),
                      verbosity=0)

        self.assertEqual(model._model.outputs[0].shape[1], model.outs)
        self.assertEqual(model._model.outputs[0].shape[-1], model.forecast_len)
        return
Beispiel #4
0
def make_and_run(input_model, _layers=None, lookback=12, epochs=1, **kwargs):

    df = load_nasdaq()

    model = input_model(data=df,
                        verbosity=0,
                        batch_size=64,
                        lookback=lookback,
                        lr=0.001,
                        epochs=epochs,
                        **kwargs)

    _ = model.fit(indices='random')

    _, pred_y = model.predict(use_datetime_index=False)

    return pred_y
Beispiel #5
0
def make_and_run(
        model,
        lookback=12,
        epochs=4,
        batch_size=16,
        data_type='other',
        **kwargs):

    if data_type == "nasdaq":
        df = load_nasdaq()
        in_cols = list(df.columns)[0:-1]
        inputs = in_cols
        outputs = ["NDX"]
    else:
        outputs = ['blaTEM_coppml']
        df = arg_beach(input_features, target=outputs)
        inputs = input_features
        # column in dataframe to bse used as output/target
        df['blaTEM_coppml'] = np.log10(df['blaTEM_coppml'])
        kwargs['intervals'] = ((0, 146,),
                              (145, 386,),
                              (385, 628,),
                              (625, 821,),
                              (821, 1110),
                              (1110, 1447))

    model = model(
        data=df,
        verbosity=0,
        batch_size=batch_size,
        lookback=lookback,
        lr=0.001,
        inputs=inputs,
        outputs = outputs,
        epochs=epochs,
        model={'layers': kwargs.pop('layers')},
        **kwargs
    )

    _ = model.fit(indices='random')

    _,  pred_y = model.predict(use_datetime_index=False)

    return pred_y
import os
import pandas as pd
from inspect import getsourcefile
from os.path import abspath
import site  # so that AI4Water directory is in path
site.addsitedir(os.path.dirname(os.path.dirname(__file__)))

from AI4Water.pytorch_models import HARHNModel
from AI4Water.utils.datasets import load_nasdaq

lookback = 10
epochs = 50
df = load_nasdaq()

model = HARHNModel(
    batch_size=16,
    lookback=lookback,
    lr=0.001,
    use_predicted_output=True,
    intervals=((
        0,
        146,
    ), (
        145,
        386,
    ), (
        385,
        628,
    ), (
        625,
        821,