



from manim import *







class     __lowerCAmelCase					(    __UpperCAmelCase		):



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



						"""simple docstring"""






						_UpperCAmelCase	 =     Rectangle(height=0.5				,	width=0.5)
						_UpperCAmelCase	 =     Rectangle(height=0.4_6				,	width=0.4_6).set_stroke(width=0)

						_UpperCAmelCase	 =     [mem.copy() for i in range(6)]
						_UpperCAmelCase	 =     [mem.copy() for i in range(6)]
						_UpperCAmelCase	 =     VGroup(*A).arrange(A				,	buff=0)
						_UpperCAmelCase	 =     VGroup(*A).arrange(A				,	buff=0)
						_UpperCAmelCase	 =     VGroup(A				,	A).arrange(A				,	buff=0)
						_UpperCAmelCase	 =     Text('CPU'				,	font_size=24)
						_UpperCAmelCase	 =     Group(A				,	A).arrange(A				,	buff=0.5				,	aligned_edge=A)
						cpu.move_to([-2.5, -0.5, 0])
						self.add(A)

						_UpperCAmelCase	 =     [mem.copy() for i in range(1)]
						_UpperCAmelCase	 =     VGroup(*A).arrange(A				,	buff=0)
						_UpperCAmelCase	 =     Text('GPU'				,	font_size=24)
						_UpperCAmelCase	 =     Group(A				,	A).arrange(A				,	buff=0.5				,	aligned_edge=A)
						gpu.align_to(A				,	A)
						gpu.set_x(gpu.get_x() - 1)

						self.add(A)

						_UpperCAmelCase	 =     [mem.copy() for i in range(6)]
						_UpperCAmelCase	 =     VGroup(*A).arrange(A				,	buff=0)

						_UpperCAmelCase	 =     Text('Model'				,	font_size=24)
						_UpperCAmelCase	 =     Group(A				,	A).arrange(A				,	buff=0.5				,	aligned_edge=A)
						model.move_to([3, -1.0, 0])

						self.play(
						    Create(A				,	run_time=1)				,	Create(A				,	run_time=1)				,	Create(A				,	run_time=1)				,	)

						_UpperCAmelCase	 =     MarkupText(
						    F"First, an empty model skeleton is loaded\ninto <span fgcolor=\'{YELLOW}\'>memory</span> without using much RAM."				,	font_size=24				,	)

						_UpperCAmelCase	 =     Square(side_length=2.2)
						key.move_to([-5, 2, 0])

						_UpperCAmelCase	 =     MarkupText(
						    F"<b>Key:</b>\n\n<span fgcolor=\'{YELLOW}\'>●</span> Empty Model"				,	font_size=18				,	)

						key_text.move_to([-5, 2.4, 0])

						step_a.move_to([2, 2, 0])
						self.play(Write(A				,	run_time=2.5)				,	Write(A)				,	Write(A))

						self.add(A)

						_UpperCAmelCase	 =     []
						_UpperCAmelCase	 =     []
						_UpperCAmelCase	 =     []
						for i, rect in enumerate(A):
									_UpperCAmelCase	 =     Rectangle(height=0.4_6				,	width=0.4_6).set_stroke(width=0.0).set_fill(A				,	opacity=0.7)
									cpu_target.move_to(A)
									cpu_target.generate_target()
									_UpperCAmelCase	 =     0.4_6 / 4
									_UpperCAmelCase	 =     0.4_6 / 3

									if i == 0:
												cpu_target.target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT)				,	buff=0.0_2				,	direction=A)
												cpu_target.target.set_x(cpu_target.target.get_x() + 0.1)
									elif i == 3:
												cpu_target.target.next_to(cpu_targs[0].target				,	direction=A				,	buff=0.0)
									else:
												cpu_target.target.next_to(cpu_targs[i - 1].target				,	direction=A				,	buff=0.0)
									cpu_targs.append(A)

									first_animations.append(rect.animate(run_time=0.5).set_stroke(A))
									second_animations.append(MoveToTarget(A				,	run_time=1.5))

						self.play(*A)
						self.play(*A)

						self.wait()





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


UpperCAmelCase__     = {
    "configuration_ctrl": ["CTRL_PRETRAINED_CONFIG_ARCHIVE_MAP", "CTRLConfig"],
    "tokenization_ctrl": ["CTRLTokenizer"],
}

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCAmelCase__     = [
							    "CTRL_PRETRAINED_MODEL_ARCHIVE_LIST",
							    "CTRLForSequenceClassification",
							    "CTRLLMHeadModel",
							    "CTRLModel",
							    "CTRLPreTrainedModel",
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							UpperCAmelCase__     = [
							    "TF_CTRL_PRETRAINED_MODEL_ARCHIVE_LIST",
							    "TFCTRLForSequenceClassification",
							    "TFCTRLLMHeadModel",
							    "TFCTRLModel",
							    "TFCTRLPreTrainedModel",
							]


if TYPE_CHECKING:
							from .configuration_ctrl import CTRL_PRETRAINED_CONFIG_ARCHIVE_MAP, CTRLConfig
							from .tokenization_ctrl import CTRLTokenizer

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_ctrl import (
														    CTRL_PRETRAINED_MODEL_ARCHIVE_LIST,
														    CTRLForSequenceClassification,
														    CTRLLMHeadModel,
														    CTRLModel,
														    CTRLPreTrainedModel,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_ctrl import (
														    TF_CTRL_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFCTRLForSequenceClassification,
														    TFCTRLLMHeadModel,
														    TFCTRLModel,
														    TFCTRLPreTrainedModel,
														)

else:
							import sys

							UpperCAmelCase__     = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)
