For loop toma mucho tiempo para completar las iteraciones y en la práctica de ML tenemos que optimizar el tiempo para que podamos usar for loops. Pero entonces debes estar preguntándote qué usar entonces. No se preocupe, discutiremos esto en la siguiente sección.
¿Cómo deshacerse del bucle en Machine Learning o Neural Network?
La solución es la Vectorización. Ahora surge la pregunta ¿qué es la vectorización? La vectorización es el proceso para convertir algoritmos que operan en un solo valor a la vez para operar en un conjunto de valores (vector) a la vez. Las CPU modernas brindan soporte directo para operaciones vectoriales donde una sola instrucción se aplica a múltiples datos (SIMD).
¿Por qué usar Vectorización en lugar de for loop?
La vectorización se utiliza para acelerar el código de Python. El uso de np.function puede ayudar a minimizar el tiempo de ejecución del código de manera eficiente. Veamos el siguiente ejemplo para una mejor comprensión.
Ejemplo:
import numpy as np import time a = np.array([1, 2, 3, 4]) # there will be 100000 training data a = np.random.rand(100000) b = np.random.rand(100000) # FOR VECTORIZTION # Measure current time time1 = time.time() # computing c = np.dot(a, b) # Measure current time time2 = time.time() # printing time taken for above calculation print("vectorized form time taken"+ "\t"+str(1000*(time2-time1))+"ms") # FOR for loop # measure current time time3 = time.time() c = 0 # computing for i in range(100000): c+= a[i]*b[i] # measure current time time4 = time.time() # printing time taken for above calculation print("for loop time taken "+"\t\t"+str(1000*(time4-time3))+"ms")
Producción:
vectorized form time taken 0.43511390686035156ms for loop time taken 216.04394912719727ms
Publicación traducida automáticamente
Artículo escrito por aryanrastogi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA