¿Por qué no se prefiere el bucle For en los problemas de redes neuronales?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *