Closed GaetanDu closed 2 years ago
Reproducible code:
from autopycoin.models import create_interpretable_nbeats, PoolNBEATS from autopycoin.losses import QuantileLossError import tensorflow as tf from autopycoin.dataset import WindowGenerator window_generator = WindowGenerator( input_width = 400, label_width = 15, shift = 15, sequence_stride = 5, valid_size = 0.2, test_size = 0.2, flat=False, batch_size = 64 ) window_generator.from_array(data_pivot[[0, 1]].iloc[-50000:], input_columns=[0, 1], label_columns=[0, 1]) nbeats_models = lambda: create_interpretable_nbeats(label_width=15, p_degree=1, trend_n_neurons=32, seasonality_n_neurons=32, share=True) model = PoolNBEATS( n_models=10, nbeats_models=nbeats_models, losses=['mse', 'mae', 'mape']) model.compile(tf.keras.optimizers.Adam( learning_rate=0.0001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False, name='Adam' ), loss=model.get_pool_losses(), metrics='mae') model.fit(window_generator.train, validation_data=window_generator.valid, epochs=50, callbacks=[tf.keras.callbacks.EarlyStopping( monitor='val_loss', min_delta=0, patience=5, verbose=0, mode='auto', baseline=None, restore_best_weights=False ), tf.keras.callbacks.ReduceLROnPlateau( monitor='val_loss', factor=0.1, patience=3, verbose=0, mode='auto', min_delta=0.0001, cooldown=0, min_lr=0.00001 )],)
add test for PoolNBEATS
Reproducible code: