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
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
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
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
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,