
"""simple docstring"""





from manim import *






class    _UpperCAmelCase(   lowerCamelCase     ):



		def 						UpperCAmelCase							( self)	->	str:






							'''simple docstring'''
							_UpperCamelCase										=  Rectangle(height=0.5    ,		width=0.5)
							_UpperCamelCase										=  Rectangle(height=0.46    ,		width=0.46).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.46    ,		width=0.46).set_stroke(width=0.0).set_fill(__a    ,		opacity=0.7)
												cpu_target.move_to(__a)
												cpu_target.generate_target()
												_UpperCamelCase										=  0.46 / 4
												_UpperCamelCase										=  0.46 / 3

												if i == 0:
																	cpu_target.target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT)    ,		buff=0.02    ,		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()








"""simple docstring"""





from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_a														=		logging.get_logger(__name__)

_a														=		{
    """facebook/levit-128S""": """https://huggingface.co/facebook/levit-128S/resolve/main/config.json""",
    # See all LeViT models at https://huggingface.co/models?filter=levit
}






class    _UpperCAmelCase(   lowerCamelCase     ):
		lowercase__      =				'levit'



		def __init__( self    ,		__a=2_24    ,		__a=3    ,		__a=3    ,		__a=2    ,		__a=1    ,		__a=16    ,		__a=[1_28, 2_56, 3_84]    ,		__a=[4, 8, 12]    ,		__a=[4, 4, 4]    ,		__a=[16, 16, 16]    ,		__a=0    ,		__a=[2, 2, 2]    ,		__a=[2, 2, 2]    ,		__a=0.02    ,		**__a    ,		)	->	List[str]:






							'''simple docstring'''
							super().__init__(**__a)
							_UpperCamelCase										=  image_size
							_UpperCamelCase										=  num_channels
							_UpperCamelCase										=  kernel_size
							_UpperCamelCase										=  stride
							_UpperCamelCase										=  padding
							_UpperCamelCase										=  hidden_sizes
							_UpperCamelCase										=  num_attention_heads
							_UpperCamelCase										=  depths
							_UpperCamelCase										=  key_dim
							_UpperCamelCase										=  drop_path_rate
							_UpperCamelCase										=  patch_size
							_UpperCamelCase										=  attention_ratio
							_UpperCamelCase										=  mlp_ratio
							_UpperCamelCase										=  initializer_range
							_UpperCamelCase										=  [
							    ['''Subsample''', key_dim[0], hidden_sizes[0] // key_dim[0], 4, 2, 2],
							    ['''Subsample''', key_dim[0], hidden_sizes[1] // key_dim[0], 4, 2, 2],
							]






class    _UpperCAmelCase(   lowerCamelCase     ):
		lowercase__      =				version.parse('1.11'     )



		@property
		def 						UpperCAmelCase							( self)	->	Mapping[str, Mapping[int, str]]:






							'''simple docstring'''
							return OrderedDict(
							    [
							        ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
							    ])




		@property
		def 						UpperCAmelCase							( self)	->	float:






							'''simple docstring'''
							return 1e-4






