
"""simple docstring"""



from manim import *

class       lowerCAmelCase__				(						A_	):







     def      lowercase	(							self			:			Any			):
       _snake_case					     =       Rectangle(height=0.5    ,      width=0.5			)
       _snake_case					     =       Rectangle(height=0.4_6    ,      width=0.4_6			).set_stroke(width=0			)

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

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

       self.add(_lowerCamelCase			)

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

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

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

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

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

       _snake_case					     =       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(_lowerCamelCase    ,      run_time=2.5			)    ,      Write(_lowerCamelCase			)    ,      Write(_lowerCamelCase			)			)

       self.add(_lowerCamelCase			)

       _snake_case					     =       []
       _snake_case					     =       []
       _snake_case					     =       []
       for i, rect in enumerate(_lowerCamelCase			):
         _snake_case					     =       Rectangle(height=0.4_6    ,      width=0.4_6			).set_stroke(width=0.0			).set_fill(_lowerCamelCase    ,      opacity=0.7			)
         cpu_target.move_to(_lowerCamelCase			)
         cpu_target.generate_target()
         _snake_case					     =       0.4_6 / 4
         _snake_case					     =       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=_lowerCamelCase			)
           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=_lowerCamelCase    ,      buff=0.0			)
         else:
           cpu_target.target.next_to(cpu_targs[i - 1].target    ,      direction=_lowerCamelCase    ,      buff=0.0			)
         cpu_targs.append(_lowerCamelCase			)

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

       self.play(*_lowerCamelCase			)
       self.play(*_lowerCamelCase			)

       self.wait()





"""simple docstring"""



UpperCAmelCase__          = {
    'Pillow': 'Pillow',
    'accelerate': 'accelerate>=0.11.0',
    'compel': 'compel==0.1.8',
    'black': 'black~=23.1',
    'datasets': 'datasets',
    'filelock': 'filelock',
    'flax': 'flax>=0.4.1',
    'hf-doc-builder': 'hf-doc-builder>=0.3.0',
    'huggingface-hub': 'huggingface-hub>=0.13.2',
    'requests-mock': 'requests-mock==1.10.0',
    'importlib_metadata': 'importlib_metadata',
    'invisible-watermark': 'invisible-watermark',
    'isort': 'isort>=5.5.4',
    'jax': 'jax>=0.2.8,!=0.3.2',
    'jaxlib': 'jaxlib>=0.1.65',
    'Jinja2': 'Jinja2',
    'k-diffusion': 'k-diffusion>=0.0.12',
    'torchsde': 'torchsde',
    'note_seq': 'note_seq',
    'librosa': 'librosa',
    'numpy': 'numpy',
    'omegaconf': 'omegaconf',
    'parameterized': 'parameterized',
    'protobuf': 'protobuf>=3.20.3,<4',
    'pytest': 'pytest',
    'pytest-timeout': 'pytest-timeout',
    'pytest-xdist': 'pytest-xdist',
    'ruff': 'ruff>=0.0.241',
    'safetensors': 'safetensors',
    'sentencepiece': 'sentencepiece>=0.1.91,!=0.1.92',
    'scipy': 'scipy',
    'onnx': 'onnx',
    'regex': 'regex!=2019.12.17',
    'requests': 'requests',
    'tensorboard': 'tensorboard',
    'torch': 'torch>=1.4',
    'torchvision': 'torchvision',
    'transformers': 'transformers>=4.25.1',
    'urllib3': 'urllib3<=2.0.0',
}



