



'''simple docstring'''





import math


class      __lowerCAmelCase     :
					"""simple docstring"""






					def     _a							(     self					:       List[Any]				,					_snake_case					:       list[list[float]]				,					_snake_case					:       list[int]					):






								"""simple docstring"""


								A__       =    0.0
								A__       =    0.0
								for i in range(len(_snake_case					)					):
											da += math.pow((sample[i] - weights[0][i])				,					2					)
											da += math.pow((sample[i] - weights[1][i])				,					2					)
											return 0 if da > da else 1
								return 0



					def     _a							(     self					:       Dict				,					_snake_case					:       list[list[int | float]]				,					_snake_case					:       list[int]				,					_snake_case					:       int				,					_snake_case					:       float					):






								"""simple docstring"""


								for i in range(len(_snake_case					)					):
											weights[j][i] += alpha * (sample[i] - weights[j][i])
								return weights







def A						(       )						->      None:
			# Training Examples ( m, n )
			A__       =    [[1, 1, 0, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 0, 1, 1]]

			# weight initialization ( n, C )
			A__       =    [[0.2, 0.6, 0.5, 0.9], [0.8, 0.4, 0.7, 0.3]]

			# training
			A__       =    SelfOrganizingMap()
			A__       =    3
			A__       =    0.5

			for _ in range(__UpperCamelCase					):
						for j in range(len(__UpperCamelCase					)					):
									# training sample
									A__       =    training_samples[j]

									# Compute the winning vector
									A__       =    self_organizing_map.get_winner(__UpperCamelCase ,	__UpperCamelCase					)

									# Update the winning vector
									A__       =    self_organizing_map.update(__UpperCamelCase ,	__UpperCamelCase ,	__UpperCamelCase ,	__UpperCamelCase					)

    # classify test sample
			A__       =    [0, 0, 0, 1]
			A__       =    self_organizing_map.get_winner(__UpperCamelCase ,	__UpperCamelCase					)

			# results
			print(f'''Clusters that the test sample belongs to : {winner}'''					)
			print(f'''Weights that have been trained : {weights}'''					)


# running the main() function
if __name__ == "__main__":
							main()









from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


SCREAMING_SNAKE_CASE__       =      {
    '''configuration_xlm_roberta''': [
        '''XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''XLMRobertaConfig''',
        '''XLMRobertaOnnxConfig''',
    ],
}

try:
							if not is_sentencepiece_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							SCREAMING_SNAKE_CASE__       =      ['''XLMRobertaTokenizer''']

try:
							if not is_tokenizers_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							SCREAMING_SNAKE_CASE__       =      ['''XLMRobertaTokenizerFast''']

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							SCREAMING_SNAKE_CASE__       =      [
							    '''XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST''',
							    '''XLMRobertaForCausalLM''',
							    '''XLMRobertaForMaskedLM''',
							    '''XLMRobertaForMultipleChoice''',
							    '''XLMRobertaForQuestionAnswering''',
							    '''XLMRobertaForSequenceClassification''',
							    '''XLMRobertaForTokenClassification''',
							    '''XLMRobertaModel''',
							    '''XLMRobertaPreTrainedModel''',
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							SCREAMING_SNAKE_CASE__       =      [
							    '''TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST''',
							    '''TFXLMRobertaForCausalLM''',
							    '''TFXLMRobertaForMaskedLM''',
							    '''TFXLMRobertaForMultipleChoice''',
							    '''TFXLMRobertaForQuestionAnswering''',
							    '''TFXLMRobertaForSequenceClassification''',
							    '''TFXLMRobertaForTokenClassification''',
							    '''TFXLMRobertaModel''',
							    '''TFXLMRobertaPreTrainedModel''',
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							SCREAMING_SNAKE_CASE__       =      [
							    '''FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST''',
							    '''FlaxXLMRobertaForMaskedLM''',
							    '''FlaxXLMRobertaForCausalLM''',
							    '''FlaxXLMRobertaForMultipleChoice''',
							    '''FlaxXLMRobertaForQuestionAnswering''',
							    '''FlaxXLMRobertaForSequenceClassification''',
							    '''FlaxXLMRobertaForTokenClassification''',
							    '''FlaxXLMRobertaModel''',
							    '''FlaxXLMRobertaPreTrainedModel''',
							]

if TYPE_CHECKING:
							from .configuration_xlm_roberta import (
							    XLM_ROBERTA_PRETRAINED_CONFIG_ARCHIVE_MAP,
							    XLMRobertaConfig,
							    XLMRobertaOnnxConfig,
							)

							try:
														if not is_sentencepiece_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_xlm_roberta import XLMRobertaTokenizer

							try:
														if not is_tokenizers_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_xlm_roberta_fast import XLMRobertaTokenizerFast

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_xlm_roberta import (
														    XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
														    XLMRobertaForCausalLM,
														    XLMRobertaForMaskedLM,
														    XLMRobertaForMultipleChoice,
														    XLMRobertaForQuestionAnswering,
														    XLMRobertaForSequenceClassification,
														    XLMRobertaForTokenClassification,
														    XLMRobertaModel,
														    XLMRobertaPreTrainedModel,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_xlm_roberta import (
														    TF_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFXLMRobertaForCausalLM,
														    TFXLMRobertaForMaskedLM,
														    TFXLMRobertaForMultipleChoice,
														    TFXLMRobertaForQuestionAnswering,
														    TFXLMRobertaForSequenceClassification,
														    TFXLMRobertaForTokenClassification,
														    TFXLMRobertaModel,
														    TFXLMRobertaPreTrainedModel,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_xlm_roberta import (
														    FLAX_XLM_ROBERTA_PRETRAINED_MODEL_ARCHIVE_LIST,
														    FlaxXLMRobertaForCausalLM,
														    FlaxXLMRobertaForMaskedLM,
														    FlaxXLMRobertaForMultipleChoice,
														    FlaxXLMRobertaForQuestionAnswering,
														    FlaxXLMRobertaForSequenceClassification,
														    FlaxXLMRobertaForTokenClassification,
														    FlaxXLMRobertaModel,
														    FlaxXLMRobertaPreTrainedModel,
														)

else:
							import sys

							SCREAMING_SNAKE_CASE__       =      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




