





'''simple docstring'''






import unittest

from transformers import JukeboxTokenizer
from transformers.testing_utils import require_torch
class 		lowerCamelCase  (      unittest.TestCase       ):
	snake_case_      =   JukeboxTokenizer
	snake_case_      =   {
	    "artist": "Zac Brown Band",
	    "genres": "Country",
	    "lyrics": "I met a traveller from an antique land,\n        Who said \"Two vast and trunkless legs of stone\n        Stand in the desert. . . . Near them, on the sand,\n        Half sunk a shattered visage lies, whose frown,\n        And wrinkled lip, and sneer of cold command,\n        Tell that its sculptor well those passions read\n        Which yet survive, stamped on these lifeless things,\n        The hand that mocked them, and the heart that fed;\n        And on the pedestal, these words appear:\n        My name is Ozymandias, King of Kings;\n        Look on my Works, ye Mighty, and despair!\n        Nothing beside remains. Round the decay\n        Of that colossal Wreck, boundless and bare\n        The lone and level sands stretch far away\n        ",
	}



	@require_torch
	def   _lowerCamelCase    (   self	):
			import torch

			lowerCAmelCase     :    Optional[int]						=   JukeboxTokenizer.from_pretrained("openai/jukebox-1b-lyrics"	)
			lowerCAmelCase     :    Union[str, Any]						=   tokenizer(**self.metas	)["input_ids"]
			# fmt: off
			lowerCAmelCase     :    List[str]						=   [
			    torch.tensor([[
			        0, 0, 0, 7_169, 507, 9, 76, 39, 31, 46, 76, 27,
			        76, 46, 44, 27, 48, 31, 38, 38, 31, 44, 76, 32,
			        44, 41, 39, 76, 27, 40, 76, 27, 40, 46, 35, 43,
			        47, 31, 76, 38, 27, 40, 30, 64, 78, 76, 76, 76,
			        76, 76, 76, 76, 76, 23, 34, 41, 76, 45, 27, 35,
			        30, 76, 71, 20, 49, 41, 76, 48, 27, 45, 46, 76,
			        27, 40, 30, 76, 46, 44, 47, 40, 37, 38, 31, 45,
			        45, 76, 38, 31, 33, 45, 76, 41, 32, 76, 45, 46,
			        41, 40, 31, 78, 76, 76, 76, 76, 76, 76, 76, 76,
			        19, 46, 27, 40, 30, 76, 35, 40, 76, 46, 34, 31,
			        76, 30, 31, 45, 31, 44, 46, 63, 76, 63, 76, 63,
			        76, 63, 76, 14, 31, 27, 44, 76, 46, 34, 31, 39,
			        64, 76, 41, 40, 76, 46, 34, 31, 76, 45, 27, 40,
			        30, 64, 78, 76, 76, 76, 76, 76, 76, 76, 76, 8,
			        27, 38, 32, 76, 45, 47, 40, 37, 76, 27, 76, 45,
			        34, 27, 46, 46, 31, 44, 31, 30, 76, 48, 35, 45,
			        27, 33, 31, 76, 38, 35, 31, 45, 64, 76, 49, 34,
			        41, 45, 31, 76, 32, 44, 41, 49, 40, 64, 78, 76,
			        76, 76, 76, 76, 76, 76, 76, 1, 40, 30, 76, 49,
			        44, 35, 40, 37, 38, 31, 30, 76, 38, 35, 42, 64,
			        76, 27, 40, 30, 76, 45, 40, 31, 31, 44, 76, 41,
			        32, 76, 29, 41, 38, 30, 76, 29, 41, 39, 39, 27,
			        40, 30, 64, 78, 76, 76, 76, 76, 76, 76, 76, 76,
			        20, 31, 38, 38, 76, 46, 34, 27, 46, 76, 35, 46,
			        45, 76, 45, 29, 47, 38, 42, 46, 41, 44, 76, 49,
			        31, 38, 38, 76, 46, 34, 41, 45, 31, 76, 42, 27,
			        45, 45, 35, 41, 40, 45, 76, 44, 31, 27, 30, 78,
			        76, 76, 76, 76, 76, 76, 76, 76, 23, 34, 35, 29,
			        34, 76, 51, 31, 46, 76, 45, 47, 44, 48, 35, 48,
			        31, 64, 76, 45, 46, 27, 39, 42, 31, 30, 76, 41,
			        40, 76, 46, 34, 31, 45, 31, 76, 38, 35, 32, 31,
			        38, 31, 45, 45, 76, 46, 34, 35, 40, 33, 45, 64,
			        78, 76, 76, 76, 76, 76, 76, 76, 76, 20, 34, 31,
			        76, 34, 27, 40, 30, 76, 46, 34, 27, 46, 76, 39,
			        41, 29, 37, 31, 30, 76, 46, 34, 31, 39, 64, 76,
			        27, 40, 30, 76, 46, 34, 31, 76, 34, 31, 27, 44,
			        46, 76, 46, 34, 27, 46, 76, 32, 31, 30, 66, 78,
			        76, 76, 76, 76, 76, 76, 76, 76, 1, 40, 30, 76,
			        41, 40, 76, 46, 34, 31, 76, 42, 31, 30, 31, 45,
			        46, 27, 38, 64, 76, 46, 34, 31, 45, 31, 76, 49,
			        41, 44, 30, 45, 76, 27, 42, 42, 31, 27, 44, 65,
			        78, 76, 76, 76, 76, 76, 76, 76, 76, 13, 51, 76,
			        40, 27, 39, 31, 76, 35, 45, 76, 15, 52, 51, 39,
			        27, 40, 30, 35, 27, 45, 64, 76, 11, 35, 40, 33,
			        76, 41, 32, 76, 11, 35, 40, 33, 45, 66, 78, 76,
			        76, 76, 76, 76, 76, 76, 76, 12, 41, 41, 37, 76,
			        41, 40, 76, 39, 51, 76, 23, 41, 44, 37, 45, 64,
			        76, 51, 31, 76, 13, 35, 33, 34, 46, 51, 64, 76,
			        27, 40, 30, 76, 30, 31, 45, 42, 27, 35, 44, 67,
			        78, 76, 76, 76, 76, 76, 76, 76, 76, 14, 41, 46,
			        34, 35, 40, 33, 76, 28, 31, 45, 35, 30, 31, 76,
			        44, 31, 39, 27, 35, 40, 45, 63, 76, 18, 41, 47,
			        40, 30, 76, 46, 34, 31, 76, 30, 31, 29, 27, 51,
			        78, 76, 76, 76, 76, 76, 76, 76, 76, 15, 32, 76,
			        46, 34, 27, 46, 76, 29, 41, 38, 41, 45, 45, 27,
			        38, 76, 23, 44, 31, 29, 37, 64, 76, 28, 41, 47,
			        40, 30, 38, 31, 45, 45, 76, 27, 40, 30, 76, 28,
			        27, 44, 31, 78, 76, 76, 76, 76, 76, 76, 76, 76,
			        20, 34, 31, 76, 38, 41, 40, 31, 76, 27, 40, 30,
			        76, 38, 31, 48, 31, 38, 76, 45, 27, 40, 30, 45,
			        76, 45, 46, 44, 31, 46, 29, 34, 76, 32, 27, 44,
			        76, 27, 49, 27, 51, 78, 76, 76, 76, 76, 76, 76,
			        76, 76]]	),
			    torch.tensor([[0, 0, 0, 1_069, 11]]	),
			    torch.tensor([[0, 0, 0, 1_069, 11]]	),
			]
			# fmt: on
			self.assertTrue(torch.allclose(tokens[0]		,      EXPECTED_OUTPUT[0]	)	)
			self.assertTrue(torch.allclose(tokens[1]		,      EXPECTED_OUTPUT[1]	)	)
			self.assertTrue(torch.allclose(tokens[2]		,      EXPECTED_OUTPUT[2]	)	)





	@require_torch
	def   _lowerCamelCase    (   self	):
			import torch

			lowerCAmelCase     :    Dict						=   JukeboxTokenizer.from_pretrained("openai/jukebox-5b-lyrics"	)
			lowerCAmelCase     :    Optional[int]						=   tokenizer(**self.metas	)["input_ids"]
			# fmt: off
			lowerCAmelCase     :    Any						=   [
			    torch.tensor([[
			        0, 0, 0, 1_069, 11, -1, -1, -1, -1, 9, 77, 39,
			        31, 46, 77, 27, 77, 46, 44, 27, 48, 31, 38, 38,
			        31, 44, 77, 32, 44, 41, 39, 77, 27, 40, 77, 27,
			        40, 46, 35, 43, 47, 31, 77, 38, 27, 40, 30, 64,
			        79, 77, 77, 77, 77, 77, 77, 77, 77, 23, 34, 41,
			        77, 45, 27, 35, 30, 77, 72, 20, 49, 41, 77, 48,
			        27, 45, 46, 77, 27, 40, 30, 77, 46, 44, 47, 40,
			        37, 38, 31, 45, 45, 77, 38, 31, 33, 45, 77, 41,
			        32, 77, 45, 46, 41, 40, 31, 79, 77, 77, 77, 77,
			        77, 77, 77, 77, 19, 46, 27, 40, 30, 77, 35, 40,
			        77, 46, 34, 31, 77, 30, 31, 45, 31, 44, 46, 63,
			        77, 63, 77, 63, 77, 63, 77, 14, 31, 27, 44, 77,
			        46, 34, 31, 39, 64, 77, 41, 40, 77, 46, 34, 31,
			        77, 45, 27, 40, 30, 64, 79, 77, 77, 77, 77, 77,
			        77, 77, 77, 8, 27, 38, 32, 77, 45, 47, 40, 37,
			        77, 27, 77, 45, 34, 27, 46, 46, 31, 44, 31, 30,
			        77, 48, 35, 45, 27, 33, 31, 77, 38, 35, 31, 45,
			        64, 77, 49, 34, 41, 45, 31, 77, 32, 44, 41, 49,
			        40, 64, 79, 77, 77, 77, 77, 77, 77, 77, 77, 1,
			        40, 30, 77, 49, 44, 35, 40, 37, 38, 31, 30, 77,
			        38, 35, 42, 64, 77, 27, 40, 30, 77, 45, 40, 31,
			        31, 44, 77, 41, 32, 77, 29, 41, 38, 30, 77, 29,
			        41, 39, 39, 27, 40, 30, 64, 79, 77, 77, 77, 77,
			        77, 77, 77, 77, 20, 31, 38, 38, 77, 46, 34, 27,
			        46, 77, 35, 46, 45, 77, 45, 29, 47, 38, 42, 46,
			        41, 44, 77, 49, 31, 38, 38, 77, 46, 34, 41, 45,
			        31, 77, 42, 27, 45, 45, 35, 41, 40, 45, 77, 44,
			        31, 27, 30, 79, 77, 77, 77, 77, 77, 77, 77, 77,
			        23, 34, 35, 29, 34, 77, 51, 31, 46, 77, 45, 47,
			        44, 48, 35, 48, 31, 64, 77, 45, 46, 27, 39, 42,
			        31, 30, 77, 41, 40, 77, 46, 34, 31, 45, 31, 77,
			        38, 35, 32, 31, 38, 31, 45, 45, 77, 46, 34, 35,
			        40, 33, 45, 64, 79, 77, 77, 77, 77, 77, 77, 77,
			        77, 20, 34, 31, 77, 34, 27, 40, 30, 77, 46, 34,
			        27, 46, 77, 39, 41, 29, 37, 31, 30, 77, 46, 34,
			        31, 39, 64, 77, 27, 40, 30, 77, 46, 34, 31, 77,
			        34, 31, 27, 44, 46, 77, 46, 34, 27, 46, 77, 32,
			        31, 30, 66, 79, 77, 77, 77, 77, 77, 77, 77, 77,
			        1, 40, 30, 77, 41, 40, 77, 46, 34, 31, 77, 42,
			        31, 30, 31, 45, 46, 27, 38, 64, 77, 46, 34, 31,
			        45, 31, 77, 49, 41, 44, 30, 45, 77, 27, 42, 42,
			        31, 27, 44, 65, 79, 77, 77, 77, 77, 77, 77, 77,
			        77, 13, 51, 77, 40, 27, 39, 31, 77, 35, 45, 77,
			        15, 52, 51, 39, 27, 40, 30, 35, 27, 45, 64, 77,
			        11, 35, 40, 33, 77, 41, 32, 77, 11, 35, 40, 33,
			        45, 66, 79, 77, 77, 77, 77, 77, 77, 77, 77, 12,
			        41, 41, 37, 77, 41, 40, 77, 39, 51, 77, 23, 41,
			        44, 37, 45, 64, 77, 51, 31, 77, 13, 35, 33, 34,
			        46, 51, 64, 77, 27, 40, 30, 77, 30, 31, 45, 42,
			        27, 35, 44, 67, 79, 77, 77, 77, 77, 77, 77, 77,
			        77, 14, 41, 46, 34, 35, 40, 33, 77, 28, 31, 45,
			        35, 30, 31, 77, 44, 31, 39, 27, 35, 40, 45, 63,
			        77, 18, 41, 47, 40, 30, 77, 46, 34, 31, 77, 30,
			        31, 29, 27, 51, 79, 77, 77, 77, 77, 77, 77, 77,
			        77, 15, 32, 77, 46, 34, 27, 46, 77, 29, 41, 38,
			        41, 45, 45, 27, 38, 77, 23, 44, 31, 29, 37, 64,
			        77, 28, 41, 47, 40, 30, 38, 31, 45, 45, 77, 27,
			        40, 30, 77, 28, 27, 44, 31, 79, 77, 77, 77, 77,
			        77, 77, 77, 77, 20, 34, 31, 77, 38, 41, 40, 31,
			        77, 27, 40, 30, 77, 38, 31, 48, 31, 38, 77, 45,
			        27, 40, 30, 45, 77, 45, 46, 44, 31, 46, 29, 34,
			        77, 32, 27, 44, 77, 27, 49, 27, 51, 79, 77, 77,
			        77, 77, 77, 77, 77, 77]]	),
			    torch.tensor([[0, 0, 0, 1_069, 11, -1, -1, -1, -1]]	),
			    torch.tensor([[0, 0, 0, 1_069, 11, -1, -1, -1, -1]]	),
			]
			# fmt: on
			self.assertTrue(torch.allclose(tokens[0]		,      EXPECTED_OUTPUT[0]	)	)
			self.assertTrue(torch.allclose(tokens[1]		,      EXPECTED_OUTPUT[1]	)	)
			self.assertTrue(torch.allclose(tokens[2]		,      EXPECTED_OUTPUT[2]	)	)










'''simple docstring'''






import os
import tempfile
import unittest
from pathlib import Path

from transformers import AutoConfig, is_tf_available
from transformers.testing_utils import require_tf


if is_tf_available():
					import tensorflow as tf

					from transformers import TensorFlowBenchmark, TensorFlowBenchmarkArguments
@require_tf
class 		lowerCamelCase  (      unittest.TestCase       ):



	def   _lowerCamelCase    (   self		,      a_	):
			for model_result in results.values():
					for batch_size, sequence_length in zip(model_result["bs"]		,      model_result["ss"]	):
							lowerCAmelCase     :    Tuple						=   model_result["result"][batch_size][sequence_length]
							self.assertIsNotNone(a_	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Optional[int]						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    Tuple						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      eager_mode=a_		,      multi_process=a_		,      )
			lowerCAmelCase     :    Optional[Any]						=   TensorFlowBenchmark(a_	)
			lowerCAmelCase     :    Optional[Any]						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Union[str, Any]						=   "sgugger/tiny-distilbert-classification"
			lowerCAmelCase     :    Tuple						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      only_pretrain_model=a_		,      )
			lowerCAmelCase     :    Any						=   TensorFlowBenchmark(a_	)
			lowerCAmelCase     :    str						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Union[str, Any]						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    str						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      )
			lowerCAmelCase     :    List[str]						=   TensorFlowBenchmark(a_	)
			lowerCAmelCase     :    str						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    List[str]						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    Union[str, Any]						=   AutoConfig.from_pretrained(a_	)
			lowerCAmelCase     :    Optional[Any]						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      eager_mode=a_		,      multi_process=a_		,      )
			lowerCAmelCase     :    Any						=   TensorFlowBenchmark(a_		,      [config]	)
			lowerCAmelCase     :    Union[str, Any]						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    int						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    Union[str, Any]						=   AutoConfig.from_pretrained(a_	)
			lowerCAmelCase     :    Union[str, Any]						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      )
			lowerCAmelCase     :    Tuple						=   TensorFlowBenchmark(a_		,      [config]	)
			lowerCAmelCase     :    Any						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Tuple						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    List[str]						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      )
			lowerCAmelCase     :    List[str]						=   TensorFlowBenchmark(a_	)
			lowerCAmelCase     :    str						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_train_result	)
			self.check_results_dict_not_empty(results.memory_train_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    List[Any]						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    Union[str, Any]						=   AutoConfig.from_pretrained(a_	)
			lowerCAmelCase     :    Dict						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      )
			lowerCAmelCase     :    Dict						=   TensorFlowBenchmark(a_		,      [config]	)
			lowerCAmelCase     :    int						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_train_result	)
			self.check_results_dict_not_empty(results.memory_train_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    str						=   "patrickvonplaten/t5-tiny-random"
			lowerCAmelCase     :    Tuple						=   AutoConfig.from_pretrained(a_	)
			lowerCAmelCase     :    Dict						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      multi_process=a_		,      )
			lowerCAmelCase     :    List[str]						=   TensorFlowBenchmark(a_		,      configs=[config]	)
			lowerCAmelCase     :    List[Any]						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	@unittest.skipIf(is_tf_available() and len(tf.config.list_physical_devices("GPU"	)	) == 0		,      "Cannot do xla on CPU."	)
	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    str						=   "sshleifer/tiny-gpt2"
			lowerCAmelCase     :    List[Any]						=   TensorFlowBenchmarkArguments(
			    models=[MODEL_ID]		,      training=a_		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      use_xla=a_		,      multi_process=a_		,      )
			lowerCAmelCase     :    Any						=   TensorFlowBenchmark(a_	)
			lowerCAmelCase     :    str						=   benchmark.run()
			self.check_results_dict_not_empty(results.time_inference_result	)
			self.check_results_dict_not_empty(results.memory_inference_result	)



	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Tuple						=   "sshleifer/tiny-gpt2"
			with tempfile.TemporaryDirectory() as tmp_dir:
					lowerCAmelCase     :    Optional[int]						=   TensorFlowBenchmarkArguments(
					    models=[MODEL_ID]		,      inference=a_		,      save_to_csv=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      inference_time_csv_file=os.path.join(a_		,      "inf_time.csv"	)		,      inference_memory_csv_file=os.path.join(a_		,      "inf_mem.csv"	)		,      env_info_csv_file=os.path.join(a_		,      "env.csv"	)		,      multi_process=a_		,      )
					lowerCAmelCase     :    Optional[Any]						=   TensorFlowBenchmark(a_	)
					benchmark.run()
					self.assertTrue(Path(os.path.join(a_		,      "inf_time.csv"	)	).exists()	)
					self.assertTrue(Path(os.path.join(a_		,      "inf_mem.csv"	)	).exists()	)
					self.assertTrue(Path(os.path.join(a_		,      "env.csv"	)	).exists()	)





	def   _lowerCamelCase    (   self	):
			lowerCAmelCase     :    Any						=   "sshleifer/tiny-gpt2"

			def _check_summary_is_not_empty(a_	):
					self.assertTrue(hasattr(a_		,      "sequential"	)	)
					self.assertTrue(hasattr(a_		,      "cumulative"	)	)
					self.assertTrue(hasattr(a_		,      "current"	)	)
					self.assertTrue(hasattr(a_		,      "total"	)	)

			with tempfile.TemporaryDirectory() as tmp_dir:
					lowerCAmelCase     :    int						=   TensorFlowBenchmarkArguments(
					    models=[MODEL_ID]		,      inference=a_		,      sequence_lengths=[8]		,      batch_sizes=[1]		,      log_filename=os.path.join(a_		,      "log.txt"	)		,      log_print=a_		,      trace_memory_line_by_line=a_		,      eager_mode=a_		,      multi_process=a_		,      )
					lowerCAmelCase     :    Optional[Any]						=   TensorFlowBenchmark(a_	)
					lowerCAmelCase     :    Tuple						=   benchmark.run()
					_check_summary_is_not_empty(result.inference_summary	)
					self.assertTrue(Path(os.path.join(a_		,      "log.txt"	)	).exists()	)



