示例#1
0
    def test_model(model_path):
        """ Tests results of given model on dataset """
        DATA_PATH = 'data/data.csv'
        if not os.path.isfile(FILE_PATH):
            wget.download(PREPROCESS_URL, FILE_PATH)
        
        dataset = pd.read_csv(DATA_PATH)

        dataset['target'] = dataset['target'].astype(float)
        dataset['time_idx'] = dataset['time_idx'].astype(int)
        
        time_series = TimeSeriesDataSet.load('models/dataset_time_set')
        validation = TimeSeriesDataSet.from_dataset(time_series, dataset)
        
        all_dataloader = validation.to_dataloader(train=False, num_workers=0)
        model = TemporalFusionTransformer.load_from_checkpoint(model_path)

        actuals = torch.cat([y[0] for (x, y) in iter(all_dataloader)])
        predictions = model.predict(all_dataloader)

        print(f'test mape is {((actuals - predictions).abs() / actuals).mean()}')

        print(f' max mape {max(((actuals - predictions).abs() / actuals))}')

        res = (actuals - predictions).abs() / actuals
        print(f' max 99 mape {np.quantile(res, .99)}')
#         print("wynik", res)
        res = np.array([int(x) for x in res])
示例#2
0
    def predict(self, data):
        """ Transforms data and predicts output based on train model 
        
            Parameters: self, list of protocols
            
            Return: list of results for each protocol based on train model
        """
        print(data)
        self.save_time_series()
        dataset = self.prepare_data(data)
        
        time_series = TimeSeriesDataSet.load(self.TIMESERIES_PATH)
        validation = TimeSeriesDataSet.from_dataset(time_series, dataset)
        
        val_dataloader = validation.to_dataloader(train=False, num_workers=0)
    
        res = self.model.predict(val_dataloader)
#         print("wynik", res)
        res = np.array([int(x) for x in res])
        
        return res