Ver el uso de memoria de un script

Ver el uso de memoria de un script Ver el uso de memoria de un script

Ver el uso de memoria de un scriptlink image 0

Si un script nos consume mucha RAM podemos monitorizarlo para ver qué es lo que está consumiendo.

Instalaciónlink image 1

Para poder monitorearlo vamos a instalar memory_profiler. Lo podemos instalar con Conda

conda install memory_profiler
      

o con pip

pip install memory_profiler
      

Usolink image 2

Decoradorlink image 3

Podemos poner un decorador en la función que queremos monitorizar.

from memory_profiler import profile
      
      @profile
      def my_function():
          pass
      
	
%%writefile memory_profiler_decorator.py
from memory_profiler import profile
@profile
def my_function():
a = [1] * (10 ** 6)
b = [2] * (2 * 10 ** 7)
del b
return a
if __name__ == '__main__':
my_function()
Copy
	
Overwriting memory_profiler_decorator.py

Ahora lo ejecutamos usando -m memory_profiles memory_profiler_decorator.py

	
!python -m memory_profiler memory_profiler_decorator.py
Copy
	
Filename: memory_profiler_decorator.py
Line # Mem usage Increment Occurrences Line Contents
=============================================================
3 49.5 MiB 49.5 MiB 1 @profile
4 def my_function():
5 57.0 MiB 7.5 MiB 1 a = [1] * (10 ** 6)
6 209.6 MiB 152.6 MiB 1 b = [2] * (2 * 10 ** 7)
7 57.2 MiB -152.4 MiB 1 del b
8 57.2 MiB 0.0 MiB 1 return a

Como vemos, obtenemos el uso de memoria de cada línea del script.

Uso de memoria en el tiempolink image 4

Podemos obtener una gráfica del uso de memoria en el tiempo haciendo

mprof run memory_profiler_decorator.py
      mprof plot
      
	
!mprof run memory_profiler_decorator.py
Copy
	
mprof: Sampling memory every 0.1s
running new process
running as a Python program...
Filename: memory_profiler_decorator.py
Line # Mem usage Increment Occurrences Line Contents
=============================================================
3 49.5 MiB 49.5 MiB 1 @profile
4 def my_function():
5 57.0 MiB 7.5 MiB 1 a = [1] * (10 ** 6)
6 209.6 MiB 152.6 MiB 1 b = [2] * (2 * 10 ** 7)
7 57.2 MiB -152.4 MiB 1 del b
8 57.2 MiB 0.0 MiB 1 return a
	
!mprof plot
Copy
	
Using last profile data.
Figure(1260x540)

Al ejecutarlo se crea esta gráfica

memory_profiler plot

Seguir leyendo

Últimos posts -->

¿Has visto estos proyectos?

Subtify

Subtify Subtify

Generador de subtítulos para videos en el idioma que desees. Además a cada persona le pone su subtítulo de un color

Ver todos los proyectos -->

¿Quieres aplicar la IA en tu proyecto? Contactame!

¿Quieres mejorar con estos tips?

Últimos tips -->

Usa esto en local

Los espacios de Hugging Face nos permite ejecutar modelos con demos muy sencillas, pero ¿qué pasa si la demo se rompe? O si el usuario la elimina? Por ello he creado contenedores docker con algunos espacios interesantes, para poder usarlos de manera local, pase lo que pase. De hecho, es posible que si pinchas en alún botón de ver proyecto te lleve a un espacio que no funciona.

Flow edit

Flow edit Flow edit

Edita imágenes con este modelo de Flow. Basándose en SD3 o FLUX puedes editar cualquier imagen y generar nuevas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos los contenedores -->

¿Quieres aplicar la IA en tu proyecto? Contactame!

¿Quieres entrenar tu modelo con estos datasets?

short-jokes-dataset

Dataset de chistes en inglés

opus100

Dataset con traducciones de inglés a español

netflix_titles

Dataset con películas y series de Netflix

Ver más datasets -->