def __init__( self, input_size: int, freq: str, prediction_length: int, context_length: Optional[int] = None, trainer: Trainer = Trainer(), dropout_rate: float = 0.1, cardinality: Optional[List[int]] = None, embedding_dimension: List[int] = [20], distr_output: DistributionOutput = StudentTOutput(), d_model: int = 32, dim_feedforward_scale: int = 4, act_type: str = "gelu", num_heads: int = 8, num_encoder_layers: int = 3, num_decoder_layers: int = 3, scaling: bool = True, lags_seq: Optional[List[int]] = None, time_features: Optional[List[TimeFeature]] = None, use_feat_dynamic_real: bool = False, use_feat_static_cat: bool = False, use_feat_static_real: bool = False, num_parallel_samples: int = 100, ) -> None: super().__init__(trainer=trainer) self.input_size = input_size self.freq = freq self.prediction_length = prediction_length self.context_length = (context_length if context_length is not None else prediction_length) self.distr_output = distr_output self.dropout_rate = dropout_rate self.use_feat_dynamic_real = use_feat_dynamic_real self.use_feat_static_cat = use_feat_static_cat self.use_feat_static_real = use_feat_static_real self.cardinality = cardinality if use_feat_static_cat else [1] self.embedding_dimension = embedding_dimension self.num_parallel_samples = num_parallel_samples self.lags_seq = (lags_seq if lags_seq is not None else lags_for_fourier_time_features_from_frequency( freq_str=freq)) self.time_features = (time_features if time_features is not None else fourier_time_features_from_frequency(self.freq)) self.history_length = self.context_length + max(self.lags_seq) self.scaling = scaling self.d_model = d_model self.num_heads = num_heads self.act_type = act_type self.dim_feedforward_scale = dim_feedforward_scale self.num_encoder_layers = num_encoder_layers self.num_decoder_layers = num_decoder_layers self.train_sampler = ExpectedNumInstanceSampler( num_instances=1.0, min_future=prediction_length) self.validation_sampler = ValidationSplitSampler( min_future=prediction_length)
def __init__( self, input_size: int, freq: str, prediction_length: int, target_dim: int, trainer: Trainer = Trainer(), context_length: Optional[int] = None, num_layers: int = 2, num_cells: int = 40, cell_type: str = "LSTM", num_parallel_samples: int = 100, dropout_rate: float = 0.1, cardinality: List[int] = [1], embedding_dimension: int = 5, conditioning_length: int = 100, diff_steps: int = 100, loss_type: str = "l2", beta_end=0.1, beta_schedule="linear", residual_layers=8, residual_channels=8, dilation_cycle_length=2, scaling: bool = True, pick_incomplete: bool = False, lags_seq: Optional[List[int]] = None, time_features: Optional[List[TimeFeature]] = None, **kwargs, ) -> None: super().__init__(trainer=trainer, **kwargs) self.freq = freq self.context_length = (context_length if context_length is not None else prediction_length) self.input_size = input_size self.prediction_length = prediction_length self.target_dim = target_dim self.num_layers = num_layers self.num_cells = num_cells self.cell_type = cell_type self.num_parallel_samples = num_parallel_samples self.dropout_rate = dropout_rate self.cardinality = cardinality self.embedding_dimension = embedding_dimension self.conditioning_length = conditioning_length self.diff_steps = diff_steps self.loss_type = loss_type self.beta_end = beta_end self.beta_schedule = beta_schedule self.residual_layers = residual_layers self.residual_channels = residual_channels self.dilation_cycle_length = dilation_cycle_length self.lags_seq = (lags_seq if lags_seq is not None else lags_for_fourier_time_features_from_frequency( freq_str=freq)) self.time_features = (time_features if time_features is not None else fourier_time_features_from_frequency(self.freq)) self.history_length = self.context_length + max(self.lags_seq) self.pick_incomplete = pick_incomplete self.scaling = scaling self.train_sampler = ExpectedNumInstanceSampler( num_instances=1.0, min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, ) self.validation_sampler = ValidationSplitSampler( min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, )
def __init__( self, input_size: int, freq: str, prediction_length: int, target_dim: int, trainer: Trainer = Trainer(), context_length: Optional[int] = None, num_layers: int = 2, num_cells: int = 40, cell_type: str = "LSTM", num_parallel_samples: int = 100, dropout_rate: float = 0.1, cardinality: List[int] = [1], embedding_dimension: int = 5, flow_type="RealNVP", n_blocks=3, hidden_size=100, n_hidden=2, conditioning_length: int = 200, dequantize: bool = False, scaling: bool = True, pick_incomplete: bool = False, lags_seq: Optional[List[int]] = None, time_features: Optional[List[TimeFeature]] = None, **kwargs, ) -> None: super().__init__(trainer=trainer, **kwargs) self.freq = freq self.context_length = (context_length if context_length is not None else prediction_length) self.input_size = input_size self.prediction_length = prediction_length self.target_dim = target_dim self.num_layers = num_layers self.num_cells = num_cells self.cell_type = cell_type self.num_parallel_samples = num_parallel_samples self.dropout_rate = dropout_rate self.cardinality = cardinality self.embedding_dimension = embedding_dimension self.flow_type = flow_type self.n_blocks = n_blocks self.hidden_size = hidden_size self.n_hidden = n_hidden self.conditioning_length = conditioning_length self.dequantize = dequantize self.lags_seq = (lags_seq if lags_seq is not None else lags_for_fourier_time_features_from_frequency( freq_str=freq)) self.time_features = (time_features if time_features is not None else fourier_time_features_from_frequency(self.freq)) self.history_length = self.context_length + max(self.lags_seq) self.pick_incomplete = pick_incomplete self.scaling = scaling self.train_sampler = ExpectedNumInstanceSampler( num_instances=1.0, min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, ) self.validation_sampler = ValidationSplitSampler( min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, )
def __init__( self, input_size: int, freq: str, prediction_length: int, target_dim: int, trainer: Trainer = Trainer(), context_length: Optional[int] = None, num_layers: int = 2, num_cells: int = 40, cell_type: str = "LSTM", num_parallel_samples: int = 100, dropout_rate: float = 0.1, use_feat_dynamic_real: bool = False, use_feat_static_cat: bool = False, use_feat_static_real: bool = False, cardinality: Optional[List[int]] = None, embedding_dimension: Optional[List[int]] = None, distr_output: Optional[DistributionOutput] = None, rank: Optional[int] = 5, scaling: bool = True, pick_incomplete: bool = False, lags_seq: Optional[List[int]] = None, time_features: Optional[List[TimeFeature]] = None, conditioning_length: int = 200, use_marginal_transformation=False, **kwargs, ) -> None: super().__init__(trainer=trainer, **kwargs) self.freq = freq self.context_length = (context_length if context_length is not None else prediction_length) if distr_output is not None: self.distr_output = distr_output else: self.distr_output = LowRankMultivariateNormalOutput(dim=target_dim, rank=rank) self.input_size = input_size self.prediction_length = prediction_length self.target_dim = target_dim self.num_layers = num_layers self.num_cells = num_cells self.cell_type = cell_type self.num_parallel_samples = num_parallel_samples self.dropout_rate = dropout_rate self.use_feat_dynamic_real = use_feat_dynamic_real self.use_feat_static_cat = use_feat_static_cat self.use_feat_static_real = use_feat_static_real self.cardinality = cardinality if cardinality and use_feat_static_cat else [ 1 ] self.embedding_dimension = ( embedding_dimension if embedding_dimension is not None else [min(50, (cat + 1) // 2) for cat in self.cardinality]) self.conditioning_length = conditioning_length self.use_marginal_transformation = use_marginal_transformation self.lags_seq = (lags_seq if lags_seq is not None else lags_for_fourier_time_features_from_frequency( freq_str=freq)) self.time_features = (time_features if time_features is not None else fourier_time_features_from_frequency(self.freq)) self.history_length = self.context_length + max(self.lags_seq) self.pick_incomplete = pick_incomplete self.scaling = scaling if self.use_marginal_transformation: self.output_transform: Optional[ Callable] = cdf_to_gaussian_forward_transform else: self.output_transform = None self.train_sampler = ExpectedNumInstanceSampler( num_instances=1.0, min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, ) self.validation_sampler = ValidationSplitSampler( min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, )
def __init__( self, input_size: int, freq: str, prediction_length: int, target_dim: int, trainer: Trainer = Trainer(), context_length: Optional[int] = None, d_model: int = 32, dim_feedforward_scale: int = 4, act_type: str = "gelu", num_heads: int = 8, num_encoder_layers: int = 3, num_decoder_layers: int = 3, num_parallel_samples: int = 100, dropout_rate: float = 0.1, use_feat_dynamic_real: bool = False, flow_type="RealNVP", n_blocks=3, hidden_size=100, n_hidden=2, conditioning_length: int = 200, dequantize: bool = False, scaling: bool = True, pick_incomplete: bool = False, lags_seq: Optional[List[int]] = None, time_features: Optional[List[TimeFeature]] = None, **kwargs, ) -> None: super().__init__(trainer=trainer, **kwargs) self.freq = freq self.context_length = (context_length if context_length is not None else prediction_length) self.input_size = input_size self.prediction_length = prediction_length self.target_dim = target_dim self.d_model = d_model self.num_heads = num_heads self.act_type = act_type self.dim_feedforward_scale = dim_feedforward_scale self.num_encoder_layers = num_encoder_layers self.num_decoder_layers = num_decoder_layers self.num_parallel_samples = num_parallel_samples self.dropout_rate = dropout_rate self.use_feat_dynamic_real = use_feat_dynamic_real self.flow_type = flow_type self.n_blocks = n_blocks self.hidden_size = hidden_size self.n_hidden = n_hidden self.conditioning_length = conditioning_length self.dequantize = dequantize self.lags_seq = (lags_seq if lags_seq is not None else lags_for_fourier_time_features_from_frequency( freq_str=freq)) self.time_features = (time_features if time_features is not None else fourier_time_features_from_frequency(self.freq)) self.history_length = self.context_length + max(self.lags_seq) self.pick_incomplete = pick_incomplete self.scaling = scaling self.train_sampler = ExpectedNumInstanceSampler( num_instances=1.0, min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, ) self.validation_sampler = ValidationSplitSampler( min_past=0 if pick_incomplete else self.history_length, min_future=prediction_length, )