def load_data( self, data: DataFrame, time_idx: Optional[str] = None, target: Optional[Union[str, List[str]]] = None, group_ids: Optional[List[str]] = None, parameters: Optional[Dict[str, Any]] = None, **time_series_dataset_kwargs: Any, ): if self.training: time_series_dataset = TimeSeriesDataSet( data, time_idx=time_idx, group_ids=group_ids, target=target, **time_series_dataset_kwargs) parameters = time_series_dataset.get_parameters() # Add some sample data so that we can recreate the `TimeSeriesDataSet` later on parameters["data_sample"] = data.iloc[[0]].to_dict() self.parameters = parameters else: if parameters is None: raise MisconfigurationException( "Loading data for evaluation or inference requires parameters from the train data. Either " "construct the train data at the same time as evaluation and inference or provide the train " "`datamodule.parameters` to `from_data_frame` in the `parameters` argument." ) parameters = copy(parameters) parameters.pop("data_sample") time_series_dataset = TimeSeriesDataSet.from_parameters( parameters, data, stop_randomization=True, ) return time_series_dataset
# create the dataset from the pandas dataframe dataset = TimeSeriesDataSet( test_data, group_ids=["group"], target="value", time_idx="time_idx", min_encoder_length=5, max_encoder_length=5, min_prediction_length=2, max_prediction_length=2, time_varying_unknown_reals=["value"], ) # %% dataset.get_parameters() # %% [markdown] # Now, we take a look at the output of the dataloader. It's `x` will be fed to the model's forward method, that is why it is so important to understand it. # %% # convert the dataset to a dataloader dataloader = dataset.to_dataloader(batch_size=4) # and load the first batch x, y = next(iter(dataloader)) print("x =", x) print("\ny =", y) print("\nsizes of x =") for key, value in x.items(): print(f"\t{key} = {value.size()}")