Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema02

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:iabd:pia:1eval:tema02 [2024/01/06 11:59]
admin [Medición de rendimiento]
clase:iabd:pia:1eval:tema02 [2025/03/12 14:36] (actual)
admin [Medición de rendimiento]
Línea 392: Línea 392:
  
 for key in a.keys(): for key in a.keys():
-    print(key)+    print(key,a[key])
 </sxh> </sxh>
  
 <sxh base> <sxh base>
-nombre +nombre Juan 
-edad+edad 37 
 +</sxh> 
 + 
 +  * Recorrer obteniendo clave y valor 
 +<sxh python> 
 +for key, value in a.items(): 
 +    print(key,value)
 </sxh> </sxh>
  
Línea 649: Línea 655:
 </sxh> </sxh>
 ===== Medición de rendimiento ===== ===== Medición de rendimiento =====
- +Para medir el tiempo que ha tardado algo se usa el método ''perf_counter''.
-=== timeit === +
-IPython es como la forma genérica de los Jupyter Notebooks. Y tiene una serie de órdenes que podemos usar directamente. La orden ''%timeit'' permite saber el tiempo que ha tardado una orden en ejecutarse +
  
 <sxh python> <sxh python>
-time = %timeit -n1 -r1 -o sum(range(10000000)) +from time import monotonic
-</sxh> +
-Lo que hace es calcula el tiempo de ejecutar la orden ''sum(range(1000000000))'' y almacena cuanto ha tardado en ''time'' +
- +
-Y para imprimirlo, se usa: +
-<sxh python> +
-print(round(time.average,2),"seg"+
-</sxh> +
- +
-<sxh base> +
-0.21 seg +
-</sxh> +
- +
-Sin embargo el problema de usar ''%timeit'' es que lo que ejecutas no puede devolver un resultado. Es decir que no podríamos saber el resultado de la suma. +
- +
-=== perf_counter === +
-Para solucionar el problema anterior podemos simplemente medir nosotros el tiempo que tarda un método en ejecutarse con la función ''perf_counter''+
- +
-<sxh python> +
-from time import perf_counter+
  
-t = perf_counter()+t = monotonic()
 resultado=sum(range(10000000)) resultado=sum(range(10000000))
-t=perf_counter()-t+t=monotonic()-t
  
 print(resultado) print(resultado)
Línea 690: Línea 674:
  
 El resultado se muestra en segundos El resultado se muestra en segundos
 +
 +<note tip>
 +El problema de ''perf_counter()'' es que cuenta el tiempo en el que el ordenador está suspendido mientras que ''monotonic()'' no lo hace. Y tampoco cuenta el tiempo que el proceso está suspendido.
 +</note>
  
 Mas información: Mas información:
 +  * [[https://luminousmen.com/post/how-to-not-leap-in-time-using-python/|How to not leap in time using Python]]
   * [[https://morton-kuo.medium.com/ml09-e549b2c26c47|ML09: Measuring Running Time in Python & R]]   * [[https://morton-kuo.medium.com/ml09-e549b2c26c47|ML09: Measuring Running Time in Python & R]]
  
 ===== Poetry ===== ===== Poetry =====
-Para usar Mish deberemos instalar [[https://www.tensorflow.org/addons/overview|TensorFlow Addons]] +A veces no quieremos usar conda sino tener una carpeta con todo lo que necesita el proyecto, al estilo de //NodeJS//. En ese caso podemos usar una herramienta llamada [[https://python-poetry.org/|Poetry]]
-Desde conda a veces falla la instalación así que lo recomendable es usar [[https://python-poetry.org/|Poetry]]+
  
-Para usar poetry debemos primero instalarlo en el sistema operativo mediante los comandos:+  * Instalar poetry
 <sxh bash> <sxh bash>
 pip install --user poetry pip install --user poetry
-poetry config virtualenvs.in-project true +
 </sxh> </sxh>
  
-Una vez instalado (se puede comprobar con ''poetry --version'') iremos a la carpeta donde tenemos nuestro programa en Python (o donde lo vamos a tener) y ejecutaremos lo siguiente: 
  
 +  * Comprobar que tenemos poetry instalado
 +
 +<sxh bash>
 +poetry --version
 +
 +</sxh>
 +
 +  * Para decir que las librerías se instalen en nuestra propia carpeta del proyecto.
 +<sxh bash>
 +poetry config virtualenvs.in-project true
 +
 +</sxh>
 +
 +  * Para tener un proyecto con python y todas sus dependencias en la misma carpeta haremos lo siguiente:
 <sxh bash> <sxh bash>
 poetry init poetry init
clase/iabd/pia/1eval/tema02.1704538744.txt.gz · Última modificación: 2024/01/06 11:59 por admin