





import pickle

import numpy as np
from matplotlib import pyplot as plt



class 					__lowerCAmelCase       :






			def __init__(self					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__=0.2					,							__magic_name__=0.2    )     ->   Optional[Any]:


							'''simple docstring'''



							snake_case_						:    Tuple				=  bp_numa
							snake_case_						:    Union[str, Any]				=  bp_numa
							snake_case_						:    Dict				=  bp_numa
							snake_case_						:    Optional[Any]				=  conva_get[:2]
							snake_case_						:    int				=  conva_get[2]
							snake_case_						:    Optional[int]				=  size_pa
							snake_case_						:    int				=  rate_w
							snake_case_						:    int				=  rate_t
							snake_case_						:    Optional[int]				=  [
							    np.mat(-1 * np.random.rand(self.conva[0]					,							self.conva[0]    ) + 0.5    )
							    for i in range(self.conva[1]    )
							]
							snake_case_						:    Dict				=  np.mat(-1 * np.random.rand(self.num_bpa					,							self.num_bpa    ) + 0.5    )
							snake_case_						:    Tuple				=  np.mat(-1 * np.random.rand(self.num_bpa					,							self.num_bpa    ) + 0.5    )
							snake_case_						:    int				=  -2 * np.random.rand(self.conva[1]    ) + 1
							snake_case_						:    Any				=  -2 * np.random.rand(self.num_bpa    ) + 1
							snake_case_						:    Optional[int]				=  -2 * np.random.rand(self.num_bpa    ) + 1






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Optional[Any]:


							'''simple docstring'''



							snake_case_						:    Optional[int]				=  {
							    '''num_bp1''': self.num_bpa,
							    '''num_bp2''': self.num_bpa,
							    '''num_bp3''': self.num_bpa,
							    '''conv1''': self.conva,
							    '''step_conv1''': self.step_conva,
							    '''size_pooling1''': self.size_poolinga,
							    '''rate_weight''': self.rate_weight,
							    '''rate_thre''': self.rate_thre,
							    '''w_conv1''': self.w_conva,
							    '''wkj''': self.wkj,
							    '''vji''': self.vji,
							    '''thre_conv1''': self.thre_conva,
							    '''thre_bp2''': self.thre_bpa,
							    '''thre_bp3''': self.thre_bpa,
							}
							with open(__magic_name__					,							'''wb'''    ) as f:
											pickle.dump(__magic_name__					,							__magic_name__    )

							print(F'''Model saved： {save_path}'''    )






			@classmethod
			def 			lowerCamelCase  (cls					,							__magic_name__    )     ->   Optional[int]:


							'''simple docstring'''



							with open(__magic_name__					,							'''rb'''    ) as f:
											snake_case_						:    str				=  pickle.load(__magic_name__    )  # noqa: S301

							snake_case_						:    List[Any]				=  model_dic.get('''conv1'''    )
							conv_get.append(model_dic.get('''step_conv1'''    )    )
							snake_case_						:    str				=  model_dic.get('''size_pooling1'''    )
							snake_case_						:    Any				=  model_dic.get('''num_bp1'''    )
							snake_case_						:    Tuple				=  model_dic.get('''num_bp2'''    )
							snake_case_						:    str				=  model_dic.get('''num_bp3'''    )
							snake_case_						:    List[str]				=  model_dic.get('''rate_weight'''    )
							snake_case_						:    Dict				=  model_dic.get('''rate_thre'''    )
							# create model instance
							snake_case_						:    Optional[Any]				=  CNN(__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__    )
							# modify model parameter
							snake_case_						:    Union[str, Any]				=  model_dic.get('''w_conv1'''    )
							snake_case_						:    Union[str, Any]				=  model_dic.get('''wkj'''    )
							snake_case_						:    int				=  model_dic.get('''vji'''    )
							snake_case_						:    List[Any]				=  model_dic.get('''thre_conv1'''    )
							snake_case_						:    Optional[Any]				=  model_dic.get('''thre_bp2'''    )
							snake_case_						:    Optional[Any]				=  model_dic.get('''thre_bp3'''    )
							return conv_ins






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   str:


							'''simple docstring'''



							return 1 / (1 + np.exp(-1 * x    ))






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Optional[int]:


							'''simple docstring'''



							return round(__magic_name__					,							3    )






			def 			lowerCamelCase  (self					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__    )     ->   List[str]:


							'''simple docstring'''



							snake_case_						:    int				=  convs[0]
							snake_case_						:    Dict				=  convs[1]
							snake_case_						:    Optional[int]				=  np.shape(__magic_name__    )[0]
							# get the data slice of original image data, data_focus
							snake_case_						:    Optional[Any]				=  []
							for i_focus in range(0					,							size_data - size_conv + 1					,							__magic_name__    ):
											for j_focus in range(0					,							size_data - size_conv + 1					,							__magic_name__    ):
															snake_case_						:    List[Any]				=  data[
															    i_focus : i_focus + size_conv, j_focus : j_focus + size_conv
															]
															data_focus.append(__magic_name__    )
        # calculate the feature map of every single kernel, and saved as list of matrix
							snake_case_						:    Optional[int]				=  []
							snake_case_						:    List[Any]				=  int((size_data - size_conv) / conv_step + 1    )
							for i_map in range(__magic_name__    ):
											snake_case_						:    List[str]				=  []
											for i_focus in range(len(__magic_name__    )    ):
															snake_case_						:    Dict				=  (
															    np.sum(np.multiply(data_focus[i_focus]					,							w_convs[i_map]    )    )
															    - thre_convs[i_map]
															)
															featuremap.append(self.sig(__magic_name__    )    )
											snake_case_						:    Any				=  np.asmatrix(__magic_name__    ).reshape(
											    __magic_name__					,							__magic_name__    )
											data_featuremap.append(__magic_name__    )

							# expanding the data slice to One dimenssion
							snake_case_						:    Optional[int]				=  []
							for each_focus in data_focus:
											focusa_list.extend(self.Expand_Mat(__magic_name__    )    )
							snake_case_						:    List[str]				=  np.asarray(__magic_name__    )
							return focus_list, data_featuremap






			def 			lowerCamelCase  (self					,							__magic_name__					,							__magic_name__					,							__magic_name__="average_pool"    )     ->   List[str]:


							'''simple docstring'''



							snake_case_						:    Any				=  len(featuremaps[0]    )
							snake_case_						:    Dict				=  int(size_map / size_pooling    )
							snake_case_						:    Dict				=  []
							for i_map in range(len(__magic_name__    )    ):
											snake_case_						:    List[str]				=  featuremaps[i_map]
											snake_case_						:    List[Any]				=  []
											for i_focus in range(0					,							__magic_name__					,							__magic_name__    ):
															for j_focus in range(0					,							__magic_name__					,							__magic_name__    ):
																			snake_case_						:    List[str]				=  feature_map[
																			    i_focus : i_focus + size_pooling,
																			    j_focus : j_focus + size_pooling,
																			]
																			if pooling_type == "average_pool":
																							# average pooling
																							map_pooled.append(np.average(__magic_name__    )    )
																			elif pooling_type == "max_pooling":
																							# max pooling
																							map_pooled.append(np.max(__magic_name__    )    )
											snake_case_						:    Any				=  np.asmatrix(__magic_name__    ).reshape(__magic_name__					,							__magic_name__    )
											featuremap_pooled.append(__magic_name__    )
							return featuremap_pooled






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Any:


							'''simple docstring'''



							snake_case_						:    int				=  []
							for i in range(len(__magic_name__    )    ):
											snake_case_						:    Optional[int]				=  np.shape(data[i]    )
											snake_case_						:    int				=  data[i].reshape(1					,							shapes[0] * shapes[1]    )
											snake_case_						:    Optional[int]				=  data_listed.getA().tolist()[0]
											data_expanded.extend(__magic_name__    )
							snake_case_						:    Dict				=  np.asarray(__magic_name__    )
							return data_expanded






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   str:


							'''simple docstring'''



							snake_case_						:    Optional[Any]				=  np.asarray(__magic_name__    )
							snake_case_						:    Optional[int]				=  np.shape(__magic_name__    )
							snake_case_						:    Union[str, Any]				=  data_mat.reshape(1					,							shapes[0] * shapes[1]    )
							return data_expanded






			def 			lowerCamelCase  (self					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__    )     ->   str:


							'''simple docstring'''



							snake_case_						:    Optional[Any]				=  []
							snake_case_						:    Dict				=  0
							for i_map in range(__magic_name__    ):
											snake_case_						:    List[Any]				=  np.ones((size_map, size_map)    )
											for i in range(0					,							__magic_name__					,							__magic_name__    ):
															for j in range(0					,							__magic_name__					,							__magic_name__    ):
																			snake_case_						:    Optional[int]				=  pd_pool[
																			    i_pool
																			]
																			snake_case_						:    int				=  i_pool + 1
											snake_case_						:    Optional[int]				=  np.multiply(
											    __magic_name__					,							np.multiply(out_map[i_map]					,							(1 - out_map[i_map])    )    )
											pd_all.append(__magic_name__    )
							return pd_all






			def 			lowerCamelCase  (self					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__					,							__magic_name__=bool    )     ->   Optional[int]:


							'''simple docstring'''



							print('''----------------------Start Training-------------------------'''    )
							print((''' - - Shape: Train_Data  ''', np.shape(__magic_name__    ))    )
							print((''' - - Shape: Teach_Data  ''', np.shape(__magic_name__    ))    )
							snake_case_						:    int				=  0
							snake_case_						:    Union[str, Any]				=  []
							snake_case_						:    List[str]				=  1_0000
							while rp < n_repeat and mse >= error_accuracy:
											snake_case_						:    Dict				=  0
											print(F'''-------------Learning Time {rp}--------------'''    )
											for p in range(len(__magic_name__    )    ):
															# print('------------Learning Image: %d--------------'%p)
															snake_case_						:    Optional[int]				=  np.asmatrix(datas_train[p]    )
															snake_case_						:    List[str]				=  np.asarray(datas_teach[p]    )
															snake_case_			,							snake_case_						:    Any				=  self.convolute(
															    __magic_name__					,							self.conva					,							self.w_conva					,							self.thre_conva					,							conv_step=self.step_conva					,							)
															snake_case_						:    List[str]				=  self.pooling(__magic_name__					,							self.size_poolinga    )
															snake_case_						:    str				=  np.shape(__magic_name__    )
															snake_case_						:    List[str]				=  self._expand(__magic_name__    )
															snake_case_						:    Optional[int]				=  data_bp_input

															snake_case_						:    Tuple				=  np.dot(__magic_name__					,							self.vji.T    ) - self.thre_bpa
															snake_case_						:    List[Any]				=  self.sig(__magic_name__    )
															snake_case_						:    Union[str, Any]				=  np.dot(__magic_name__					,							self.wkj.T    ) - self.thre_bpa
															snake_case_						:    Tuple				=  self.sig(__magic_name__    )

															# --------------Model Leaning ------------------------
															# calculate error and gradient---------------
															snake_case_						:    str				=  np.multiply(
															    (data_teach - bp_outa)					,							np.multiply(__magic_name__					,							(1 - bp_outa)    )    )
															snake_case_						:    Union[str, Any]				=  np.multiply(
															    np.dot(__magic_name__					,							self.wkj    )					,							np.multiply(__magic_name__					,							(1 - bp_outa)    )    )
															snake_case_						:    Tuple				=  np.dot(__magic_name__					,							self.vji    )

															snake_case_						:    List[Any]				=  pd_i_all / (self.size_poolinga * self.size_poolinga)
															snake_case_						:    List[Any]				=  pd_conva_pooled.T.getA().tolist()
															snake_case_						:    str				=  self._calculate_gradient_from_pool(
															    __magic_name__					,							__magic_name__					,							shape_featuremapa[0]					,							shape_featuremapa[1]					,							self.size_poolinga					,							)
															# weight and threshold learning process---------
															# convolution layer
															for k_conv in range(self.conva[1]    ):
																			snake_case_						:    Optional[int]				=  self._expand_mat(pd_conva_all[k_conv]    )
																			snake_case_						:    Union[str, Any]				=  self.rate_weight * np.dot(__magic_name__					,							__magic_name__    )

																			snake_case_						:    List[str]				=  self.w_conva[k_conv] + delta_w.reshape(
																			    (self.conva[0], self.conva[0])    )

																			snake_case_						:    List[str]				=  (
																			    self.thre_conva[k_conv]
																			    - np.sum(pd_conva_all[k_conv]    ) * self.rate_thre
																			)
															# all connected layer
															snake_case_						:    Dict				=  self.wkj + pd_k_all.T * bp_outa * self.rate_weight
															snake_case_						:    List[Any]				=  self.vji + pd_j_all.T * bp_outa * self.rate_weight
															snake_case_						:    Any				=  self.thre_bpa - pd_k_all * self.rate_thre
															snake_case_						:    Any				=  self.thre_bpa - pd_j_all * self.rate_thre
															# calculate the sum error of all single image
															snake_case_						:    int				=  np.sum(abs(data_teach - bp_outa    )    )
															error_count += errors
															# print('   ----Teach      ',data_teach)
															# print('   ----BP_output  ',bp_out3)
											snake_case_						:    Optional[Any]				=  rp + 1
											snake_case_						:    Union[str, Any]				=  error_count / patterns
											all_mse.append(__magic_name__    )

							def draw_error():
											snake_case_						:    Union[str, Any]				=  [error_accuracy for i in range(int(n_repeat * 1.2    )    )]
											plt.plot(__magic_name__					,							'''+-'''    )
											plt.plot(__magic_name__					,							'''r--'''    )
											plt.xlabel('''Learning Times'''    )
											plt.ylabel('''All_mse'''    )
											plt.grid(__magic_name__					,							alpha=0.5    )
											plt.show()

							print('''------------------Training Complished---------------------'''    )
							print((''' - - Training epoch: ''', rp, F'''     - - Mse: {mse:.6f}''')    )
							if draw_e:
											draw_error()
							return mse






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Optional[Any]:


							'''simple docstring'''



							snake_case_						:    List[str]				=  []
							print('''-------------------Start Testing-------------------------'''    )
							print((''' - - Shape: Test_Data  ''', np.shape(__magic_name__    ))    )
							for p in range(len(__magic_name__    )    ):
											snake_case_						:    Optional[int]				=  np.asmatrix(datas_test[p]    )
											snake_case_			,							snake_case_						:    int				=  self.convolute(
											    __magic_name__					,							self.conva					,							self.w_conva					,							self.thre_conva					,							conv_step=self.step_conva					,							)
											snake_case_						:    Union[str, Any]				=  self.pooling(__magic_name__					,							self.size_poolinga    )
											snake_case_						:    List[Any]				=  self._expand(__magic_name__    )

											snake_case_						:    Optional[Any]				=  data_bp_input
											snake_case_						:    int				=  bp_outa * self.vji.T - self.thre_bpa
											snake_case_						:    List[Any]				=  self.sig(__magic_name__    )
											snake_case_						:    List[str]				=  bp_outa * self.wkj.T - self.thre_bpa
											snake_case_						:    Tuple				=  self.sig(__magic_name__    )
											produce_out.extend(bp_outa.getA().tolist()    )
							snake_case_						:    List[str]				=  [list(map(self.do_round					,							__magic_name__    )    ) for each in produce_out]
							return np.asarray(__magic_name__    )






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Tuple:


							'''simple docstring'''



							snake_case_						:    Dict				=  np.asmatrix(__magic_name__    )
							snake_case_			,							snake_case_						:    Union[str, Any]				=  self.convolute(
							    __magic_name__					,							self.conva					,							self.w_conva					,							self.thre_conva					,							conv_step=self.step_conva					,							)
							snake_case_						:    Optional[Any]				=  self.pooling(__magic_name__					,							self.size_poolinga    )

							return data_conveda, data_pooleda


if __name__ == "__main__":
	pass







import unittest

from transformers import SPIECE_UNDERLINE
from transformers.models.speechta import SpeechTaTokenizer
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow
from transformers.tokenization_utils import AddedToken

from ...test_tokenization_common import TokenizerTesterMixin


lowerCAmelCase_    =				get_tests_dir('''fixtures/test_sentencepiece_bpe_char.model''')



@require_sentencepiece
@require_tokenizers
class 					__lowerCAmelCase       (			_a,     unittest.TestCase     ):
			lowerCamelCase_     :     Optional[int]       			=      SpeechTaTokenizer
			lowerCamelCase_     :     int       			=      False
			lowerCamelCase_     :     Dict       			=      True






			def 			lowerCamelCase  (self    )     ->   Optional[Any]:


							'''simple docstring'''



							super().setUp()

							# We have a SentencePiece fixture for testing
							snake_case_						:    Tuple				=  SpeechTaTokenizer(__magic_name__    )

							snake_case_						:    Any				=  AddedToken('''<mask>'''					,							lstrip=__magic_name__					,							rstrip=__magic_name__    )
							snake_case_						:    int				=  mask_token
							tokenizer.add_special_tokens({'''mask_token''': mask_token}    )
							tokenizer.add_tokens(['''<ctc_blank>''']    )

							tokenizer.save_pretrained(self.tmpdirname    )






			def 			lowerCamelCase  (self					,							__magic_name__    )     ->   Dict:


							'''simple docstring'''



							snake_case_						:    Dict				=  '''this is a test'''
							snake_case_						:    int				=  '''this is a test'''
							return input_text, output_text






			def 			lowerCamelCase  (self					,							__magic_name__					,							__magic_name__=False					,							__magic_name__=20					,							__magic_name__=5    )     ->   List[Any]:


							'''simple docstring'''



							snake_case_			,							snake_case_						:    int				=  self.get_input_output_texts(__magic_name__    )
							snake_case_						:    Optional[Any]				=  tokenizer.encode(__magic_name__					,							add_special_tokens=__magic_name__    )
							snake_case_						:    Any				=  tokenizer.decode(__magic_name__					,							clean_up_tokenization_spaces=__magic_name__    )
							return text, ids






			def 			lowerCamelCase  (self    )     ->   Optional[int]:


							'''simple docstring'''



							snake_case_						:    List[str]				=  '''<pad>'''
							snake_case_						:    Any				=  1

							self.assertEqual(self.get_tokenizer()._convert_token_to_id(__magic_name__    )					,							__magic_name__    )
							self.assertEqual(self.get_tokenizer()._convert_id_to_token(__magic_name__    )					,							__magic_name__    )






			def 			lowerCamelCase  (self    )     ->   Any:


							'''simple docstring'''



							snake_case_						:    Any				=  list(self.get_tokenizer().get_vocab().keys()    )

							self.assertEqual(vocab_keys[0]					,							'''<s>'''    )
							self.assertEqual(vocab_keys[1]					,							'''<pad>'''    )
							self.assertEqual(vocab_keys[-4]					,							'''œ'''    )
							self.assertEqual(vocab_keys[-2]					,							'''<mask>'''    )
							self.assertEqual(vocab_keys[-1]					,							'''<ctc_blank>'''    )
							self.assertEqual(len(__magic_name__    )					,							81    )






			def 			lowerCamelCase  (self    )     ->   Dict:


							'''simple docstring'''



							self.assertEqual(self.get_tokenizer().vocab_size					,							79    )






			def 			lowerCamelCase  (self    )     ->   Tuple:


							'''simple docstring'''



							snake_case_						:    int				=  self.get_tokenizers(do_lower_case=__magic_name__    )
							for tokenizer in tokenizers:
											with self.subTest(F'''{tokenizer.__class__.__name__}'''    ):
															snake_case_						:    int				=  tokenizer.vocab_size
															snake_case_						:    Optional[Any]				=  len(__magic_name__    )

															self.assertNotEqual(__magic_name__					,							0    )

															# We usually have added tokens from the start in tests because our vocab fixtures are
															# smaller than the original vocabs - let's not assert this
															# self.assertEqual(vocab_size, all_size)

															snake_case_						:    List[Any]				=  ['''aaaaa bbbbbb''', '''cccccccccdddddddd''']
															snake_case_						:    List[Any]				=  tokenizer.add_tokens(__magic_name__    )
															snake_case_						:    Dict				=  tokenizer.vocab_size
															snake_case_						:    Optional[Any]				=  len(__magic_name__    )

															self.assertNotEqual(__magic_name__					,							0    )
															self.assertEqual(__magic_name__					,							__magic_name__    )
															self.assertEqual(__magic_name__					,							len(__magic_name__    )    )
															self.assertEqual(__magic_name__					,							all_size + len(__magic_name__    )    )

															snake_case_						:    Union[str, Any]				=  tokenizer.encode('''aaaaa bbbbbb low cccccccccdddddddd l'''					,							add_special_tokens=__magic_name__    )

															self.assertGreaterEqual(len(__magic_name__    )					,							4    )
															self.assertGreater(tokens[0]					,							tokenizer.vocab_size - 1    )
															self.assertGreater(tokens[-3]					,							tokenizer.vocab_size - 1    )

															snake_case_						:    Union[str, Any]				=  {'''eos_token''': '''>>>>|||<||<<|<<''', '''pad_token''': '''<<<<<|||>|>>>>|>'''}
															snake_case_						:    List[str]				=  tokenizer.add_special_tokens(__magic_name__    )
															snake_case_						:    Dict				=  tokenizer.vocab_size
															snake_case_						:    Dict				=  len(__magic_name__    )

															self.assertNotEqual(__magic_name__					,							0    )
															self.assertEqual(__magic_name__					,							__magic_name__    )
															self.assertEqual(__magic_name__					,							len(__magic_name__    )    )
															self.assertEqual(__magic_name__					,							all_size_a + len(__magic_name__    )    )

															snake_case_						:    Tuple				=  tokenizer.encode(
															    '''>>>>|||<||<<|<< aaaaabbbbbb low cccccccccdddddddd <<<<<|||>|>>>>|> l'''					,							add_special_tokens=__magic_name__    )

															self.assertGreaterEqual(len(__magic_name__    )					,							6    )
															self.assertGreater(tokens[0]					,							tokenizer.vocab_size - 1    )
															self.assertGreater(tokens[0]					,							tokens[1]    )
															self.assertGreater(tokens[-3]					,							tokenizer.vocab_size - 1    )
															self.assertGreater(tokens[-3]					,							tokens[-4]    )
															self.assertEqual(tokens[0]					,							tokenizer.eos_token_id    )
															self.assertEqual(tokens[-3]					,							tokenizer.pad_token_id    )






			def 			lowerCamelCase  (self    )     ->   Union[str, Any]:


							'''simple docstring'''



							pass






			def 			lowerCamelCase  (self    )     ->   List[str]:


							'''simple docstring'''



							pass






			def 			lowerCamelCase  (self    )     ->   int:


							'''simple docstring'''



							snake_case_						:    Dict				=  self.get_tokenizer()

							snake_case_						:    Optional[Any]				=  tokenizer.tokenize('''This is a test'''    )
							# fmt: off
							self.assertListEqual(__magic_name__					,							[SPIECE_UNDERLINE, '''T''', '''h''', '''i''', '''s''', SPIECE_UNDERLINE, '''i''', '''s''', SPIECE_UNDERLINE, '''a''', SPIECE_UNDERLINE, '''t''', '''e''', '''s''', '''t''']    )
							# fmt: on

							self.assertListEqual(
							    tokenizer.convert_tokens_to_ids(__magic_name__    )					,							[4, 32, 11, 10, 12, 4, 10, 12, 4, 7, 4, 6, 5, 12, 6]					,							)

							snake_case_						:    List[Any]				=  tokenizer.tokenize('''I was born in 92000, and this is falsé.'''    )
							self.assertListEqual(
							    __magic_name__					,							[SPIECE_UNDERLINE, '''I''', SPIECE_UNDERLINE, '''w''', '''a''', '''s''', SPIECE_UNDERLINE, '''b''', '''o''', '''r''', '''n''', SPIECE_UNDERLINE, '''i''', '''n''', SPIECE_UNDERLINE, '''92000''', ''',''', SPIECE_UNDERLINE, '''a''', '''n''', '''d''', SPIECE_UNDERLINE, '''t''', '''h''', '''i''', '''s''', SPIECE_UNDERLINE, '''i''', '''s''', SPIECE_UNDERLINE, '''f''', '''a''', '''l''', '''s''', '''é''', '''.''']    )

							snake_case_						:    List[str]				=  tokenizer.convert_tokens_to_ids(__magic_name__    )
							# fmt: off
							self.assertListEqual(__magic_name__					,							[4, 30, 4, 20, 7, 12, 4, 25, 8, 13, 9, 4, 10, 9, 4, 3, 23, 4, 7, 9, 14, 4, 6, 11, 10, 12, 4, 10, 12, 4, 19, 7, 15, 12, 73, 26]    )
							# fmt: on

							snake_case_						:    int				=  tokenizer.convert_ids_to_tokens(__magic_name__    )
							self.assertListEqual(
							    __magic_name__					,							[SPIECE_UNDERLINE, '''I''', SPIECE_UNDERLINE, '''w''', '''a''', '''s''', SPIECE_UNDERLINE, '''b''', '''o''', '''r''', '''n''', SPIECE_UNDERLINE, '''i''', '''n''', SPIECE_UNDERLINE, '''<unk>''', ''',''', SPIECE_UNDERLINE, '''a''', '''n''', '''d''', SPIECE_UNDERLINE, '''t''', '''h''', '''i''', '''s''', SPIECE_UNDERLINE, '''i''', '''s''', SPIECE_UNDERLINE, '''f''', '''a''', '''l''', '''s''', '''é''', '''.''']    )






			@slow
			def 			lowerCamelCase  (self    )     ->   Tuple:


							'''simple docstring'''



							snake_case_						:    Tuple				=  [
							    '''Transformers (formerly known as pytorch-transformers and pytorch-pretrained-bert) provides '''
							    '''general-purpose architectures (BERT, GPT, RoBERTa, XLM, DistilBert, XLNet...) for Natural '''
							    '''Language Understanding (NLU) and Natural Language Generation (NLG) with over thirty-two pretrained '''
							    '''models in one hundred plus languages and deep interoperability between Jax, PyTorch and TensorFlow.''',
							    '''BERT is designed to pre-train deep bidirectional representations from unlabeled text by jointly '''
							    '''conditioning on both left and right context in all layers.''',
							    '''The quick brown fox jumps over the lazy dog.''',
							]

							# fmt: off
							snake_case_						:    List[Any]				=  {
							    '''input_ids''': [
							        [4, 32, 13, 7, 9, 12, 19, 8, 13, 18, 5, 13, 12, 4, 64, 19, 8, 13, 18, 5, 13, 15, 22, 4, 28, 9, 8, 20, 9, 4, 7, 12, 4, 24, 22, 6, 8, 13, 17, 11, 39, 6, 13, 7, 9, 12, 19, 8, 13, 18, 5, 13, 12, 4, 7, 9, 14, 4, 24, 22, 6, 8, 13, 17, 11, 39, 24, 13, 5, 6, 13, 7, 10, 9, 5, 14, 39, 25, 5, 13, 6, 63, 4, 24, 13, 8, 27, 10, 14, 5, 12, 4, 21, 5, 9, 5, 13, 7, 15, 39, 24, 16, 13, 24, 8, 12, 5, 4, 7, 13, 17, 11, 10, 6, 5, 17, 6, 16, 13, 5, 12, 4, 64, 40, 47, 54, 32, 23, 4, 53, 49, 32, 23, 4, 54, 8, 40, 47, 54, 32, 7, 23, 4, 69, 52, 43, 23, 4, 51, 10, 12, 6, 10, 15, 40, 5, 13, 6, 23, 4, 69, 52, 48, 5, 6, 26, 26, 26, 63, 4, 19, 8, 13, 4, 48, 7, 6, 16, 13, 7, 15, 4, 52, 7, 9, 21, 16, 7, 21, 5, 4, 61, 9, 14, 5, 13, 12, 6, 7, 9, 14, 10, 9, 21, 4, 64, 48, 52, 61, 63, 4, 7, 9, 14, 4, 48, 7, 6, 16, 13, 7, 15, 4, 52, 7, 9, 21, 16, 7, 21, 5, 4, 53, 5, 9, 5, 13, 7, 6, 10, 8, 9, 4, 64, 48, 52, 53, 63, 4, 20, 10, 6, 11, 4, 8, 27, 5, 13, 4, 6, 11, 10, 13, 6, 22, 39, 6, 20, 8, 4, 24, 13, 5, 6, 13, 7, 10, 9, 5, 14, 4, 18, 8, 14, 5, 15, 12, 4, 10, 9, 4, 8, 9, 5, 4, 11, 16, 9, 14, 13, 5, 14, 4, 24, 15, 16, 12, 4, 15, 7, 9, 21, 16, 7, 21, 5, 12, 4, 7, 9, 14, 4, 14, 5, 5, 24, 4, 10, 9, 6, 5, 13, 8, 24, 5, 13, 7, 25, 10, 15, 10, 6, 22, 4, 25, 5, 6, 20, 5, 5, 9, 4, 58, 7, 37, 23, 4, 49, 22, 32, 8, 13, 17, 11, 4, 7, 9, 14, 4, 32, 5, 9, 12, 8, 13, 55, 15, 8, 20, 26, 2],
							        [4, 40, 47, 54, 32, 4, 10, 12, 4, 14, 5, 12, 10, 21, 9, 5, 14, 4, 6, 8, 4, 24, 13, 5, 39, 6, 13, 7, 10, 9, 4, 14, 5, 5, 24, 4, 25, 10, 14, 10, 13, 5, 17, 6, 10, 8, 9, 7, 15, 4, 13, 5, 24, 13, 5, 12, 5, 9, 6, 7, 6, 10, 8, 9, 12, 4, 19, 13, 8, 18, 4, 16, 9, 15, 7, 25, 5, 15, 5, 14, 4, 6, 5, 37, 6, 4, 25, 22, 4, 46, 8, 10, 9, 6, 15, 22, 4, 17, 8, 9, 14, 10, 6, 10, 8, 9, 10, 9, 21, 4, 8, 9, 4, 25, 8, 6, 11, 4, 15, 5, 19, 6, 4, 7, 9, 14, 4, 13, 10, 21, 11, 6, 4, 17, 8, 9, 6, 5, 37, 6, 4, 10, 9, 4, 7, 15, 15, 4, 15, 7, 22, 5, 13, 12, 26, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
							        [4, 32, 11, 5, 4, 45, 16, 10, 17, 28, 4, 25, 13, 8, 20, 9, 4, 19, 8, 37, 4, 46, 16, 18, 24, 12, 4, 8, 27, 5, 13, 4, 6, 11, 5, 4, 15, 7, 57, 22, 4, 14, 8, 21, 26, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
							    ],
							    '''attention_mask''': [
							        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
							        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
							        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
							    ]
							}
							# fmt: on

							self.tokenizer_integration_test_util(
							    expected_encoding=__magic_name__					,							model_name='''microsoft/speecht5_asr'''					,							revision='''c5ef64c71905caeccde0e4462ef3f9077224c524'''					,							sequences=__magic_name__					,							)
