




from manim import *



class       a					(       _A      ):

     '''simple docstring'''





     def   lowerCamelCase_       (     self       :      Optional[int]    ):
         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(*__snake_case    ).arrange(__snake_case ,   buff=0    )
         UpperCAmelCase_										=					VGroup(*__snake_case    ).arrange(__snake_case ,   buff=0    )
         UpperCAmelCase_										=					VGroup(__snake_case ,   __snake_case    ).arrange(__snake_case ,   buff=0    )
         UpperCAmelCase_										=					Text('''CPU''' ,   font_size=24    )
         UpperCAmelCase_										=					Group(__snake_case ,   __snake_case    ).arrange(__snake_case ,   buff=0.5 ,   aligned_edge=__snake_case    )
         cpu.move_to([-2.5, -0.5, 0]    )
         self.add(__snake_case    )

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

         self.add(__snake_case    )

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

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

         self.play(
             Create(__snake_case ,   run_time=1    ) ,   Create(__snake_case ,   run_time=1    ) ,   Create(__snake_case ,   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(__snake_case ,   run_time=2.5    ) ,   Write(__snake_case    ) ,   Write(__snake_case    )    )

         self.add(__snake_case    )

         UpperCAmelCase_										=					[]
         UpperCAmelCase_										=					[]
         UpperCAmelCase_										=					[]
         for i, rect in enumerate(__snake_case    ):
             UpperCAmelCase_										=					Rectangle(height=0.46 ,   width=0.46    ).set_stroke(width=0.0    ).set_fill(__snake_case ,   opacity=0.7    )
             cpu_target.move_to(__snake_case    )
             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=__snake_case    )
                 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=__snake_case ,   buff=0.0    )
             else:
                 cpu_target.target.next_to(cpu_targs[i - 1].target ,   direction=__snake_case ,   buff=0.0    )
             cpu_targs.append(__snake_case    )

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

         self.play(*__snake_case    )
         self.play(*__snake_case    )

         self.wait()











import numpy as np




def  SCREAMING_SNAKE_CASE     (	__UpperCamelCase      :						np.array				)  ->							np.array:
    return (2 / (1 + np.exp(-2 * vector				))) - 1


if __name__ == "__main__":
 import doctest

 doctest.testmod()





