





"""simple docstring"""





from typing import List, Optional

from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCAmelCase__     			=						logging.get_logger(__name__)

lowerCAmelCase__     			=						{
    '''huggingface/autoformer-tourism-monthly''': '''https://huggingface.co/huggingface/autoformer-tourism-monthly/resolve/main/config.json''',
}





class        _lowerCamelCase      (       _lowercase ):
						UpperCAmelCase_ =			"""autoformer"""
						UpperCAmelCase_ =			{
						    """hidden_size""": """d_model""",
						    """num_attention_heads""": """encoder_attention_heads""",
						    """num_hidden_layers""": """encoder_layers""",
						}


						def __init__(self   ,							__a = None   ,							__a = None   ,							__a = "student_t"   ,							__a = "nll"   ,							__a = 1   ,							__a = [1, 2, 3, 4, 5, 6, 7]   ,							__a = True   ,							__a = 0   ,							__a = 0   ,							__a = 0   ,							__a = 0   ,							__a = None   ,							__a = None   ,							__a = 64   ,							__a = 2   ,							__a = 2   ,							__a = 2   ,							__a = 2   ,							__a = 32   ,							__a = 32   ,							__a = "gelu"   ,							__a = 0.1   ,							__a = 0.1   ,							__a = 0.1   ,							__a = 0.1   ,							__a = 0.1   ,							__a = 1_00   ,							__a = 0.02   ,							__a = True   ,							__a=True   ,							__a = 10   ,							__a = 25   ,							__a = 3   ,							**__a   ,							) ->   Union[str, Any]:
								UpperCamelCase   =	prediction_length
								UpperCamelCase   =	context_length if context_length is not None else prediction_length
								UpperCamelCase   =	distribution_output
								UpperCamelCase   =	loss
								UpperCamelCase   =	input_size
								UpperCamelCase   =	num_time_features
								UpperCamelCase   =	lags_sequence
								UpperCamelCase   =	scaling
								UpperCamelCase   =	num_dynamic_real_features
								UpperCamelCase   =	num_static_real_features
								UpperCamelCase   =	num_static_categorical_features
								if cardinality is not None and num_static_categorical_features > 0:
										if len(__a		) != num_static_categorical_features:
												raise ValueError(
												    "The cardinality should be a list of the same length as `num_static_categorical_features`"		)
										UpperCamelCase   =	cardinality
								else:
										UpperCamelCase   =	[0]
								if embedding_dimension is not None and num_static_categorical_features > 0:
										if len(__a		) != num_static_categorical_features:
												raise ValueError(
												    "The embedding dimension should be a list of the same length as `num_static_categorical_features`"		)
										UpperCamelCase   =	embedding_dimension
								else:
										UpperCamelCase   =	[min(50   ,							(cat + 1) // 2		) for cat in self.cardinality]
								UpperCamelCase   =	num_parallel_samples

								# Transformer architecture configuration
								UpperCamelCase   =	input_size * len(self.lags_sequence		) + self._number_of_features
								UpperCamelCase   =	d_model
								UpperCamelCase   =	encoder_attention_heads
								UpperCamelCase   =	decoder_attention_heads
								UpperCamelCase   =	encoder_ffn_dim
								UpperCamelCase   =	decoder_ffn_dim
								UpperCamelCase   =	encoder_layers
								UpperCamelCase   =	decoder_layers

								UpperCamelCase   =	dropout
								UpperCamelCase   =	attention_dropout
								UpperCamelCase   =	activation_dropout
								UpperCamelCase   =	encoder_layerdrop
								UpperCamelCase   =	decoder_layerdrop

								UpperCamelCase   =	activation_function
								UpperCamelCase   =	init_std

								UpperCamelCase   =	use_cache

								# Autoformer
								UpperCamelCase   =	label_length
								UpperCamelCase   =	moving_average
								UpperCamelCase   =	autocorrelation_factor

								super().__init__(is_encoder_decoder=__a   ,							**__a		)




						@property
						def     snake_case_   (self		) ->   int:
								return (
								    sum(self.embedding_dimension		)
								    + self.num_dynamic_real_features
								    + self.num_time_features
								    + self.num_static_real_features
								    + self.input_size * 2  # the log1p(abs(loc)) and log(scale) features
								)













"""simple docstring"""





import os

from huggingface_hub.constants import HUGGINGFACE_HUB_CACHE, hf_cache_home


lowerCAmelCase__     			=			HUGGINGFACE_HUB_CACHE


lowerCAmelCase__     			=			'''config.json'''
lowerCAmelCase__     			=			'''diffusion_pytorch_model.bin'''
lowerCAmelCase__     			=			'''diffusion_flax_model.msgpack'''
lowerCAmelCase__     			=			'''model.onnx'''
lowerCAmelCase__     			=			'''diffusion_pytorch_model.safetensors'''
lowerCAmelCase__     			=			'''weights.pb'''
lowerCAmelCase__     			=			'''https://huggingface.co'''
lowerCAmelCase__     			=			default_cache_path
lowerCAmelCase__     			=			'''diffusers_modules'''
lowerCAmelCase__     			=			os.getenv('''HF_MODULES_CACHE''', os.path.join(hf_cache_home, '''modules'''))
lowerCAmelCase__     			=			['''fp16''', '''non-ema''']
lowerCAmelCase__     			=			'''.self_attn'''






