Se sabe que las redes neuronales son hambrientas de datos. Ahora, a medida que aumenta el tamaño de su conjunto de datos, se hace cada vez más difícil almacenarlos en la memoria.
En tales escenarios, las bibliotecas modernas como PyTorch, TF, CNTK, etc. han incorporado metodologías para manejar grandes datos. Las utilidades como los lectores de datos [1] [2] [3] [4] nos permiten crear tuberías eficientes donde los datos se procesan en la CPU y luego se transfieren a la GPU lote por lote.
En general, los datos no se alimentan directamente, sino que se alimentan después de algún procesamiento previo. Hay varias formas de hacerlo. Considere el escenario de un conjunto de datos de imagen:
- ¿Cuántas redes neuronales cubre el curso Coursera de Andrew Ng?
- ¿Es posible engañar a un automóvil autónomo para interpretar una señal de alto (como lo percibe el ojo humano) como una señal de velocidad?
- Cómo decidir el tamaño de la muestra para el aprendizaje automático con datos de series temporales
- ¿Cuál es la diferencia entre Bayes ingenuo y la entropía máxima?
- ¿Qué empresas o agencias utilizan (d) Vader para el análisis de sentimientos?
- Puede procesar las imágenes y almacenar las imágenes procesadas como matrices / tensores numpy en el disco que ahora se convierte en su “nuevo conjunto de datos”. Lo usará para alimentar los datos a su red neuronal. Esto en la mayoría de los casos es ineficiente y lleva mucho tiempo.
- Úselo en lectores integrados para crear una tubería de entrada. Este es generalmente el enfoque preferido. Es mucho más fácil definir una clase / función que señale la forma en que se cargan y procesan los datos. La biblioteca se encarga del flujo de control con una sobrecarga mínima. Es mucho más eficiente ya que esto le permite usar la CPU y la GPU sin cuello de botella. La CPU carga y procesa los datos, que luego se copian en la memoria de la GPU para alimentarlos al NN.
Luego puede estructurar su red como es su caso de uso. Definir el optimizador apropiado, la función de pérdida y la arquitectura que da los mejores resultados.
Notas al pie
[1] Lectura de datos | TensorFlow
[2] Importación de datos | TensorFlow
[3] Tutorial de procesamiento y carga de datos
[4] Leer y alimentar datos al entrenador CNTK