¿El uso de memoria aumenta a medida que aumentan los datos de entrenamiento en redes neuronales profundas?

La memoria es uno de los mayores desafíos en las redes neuronales profundas (DNN) en la actualidad. Los investigadores están luchando con el ancho de banda de memoria limitado de los dispositivos DRAM que deben ser utilizados por los sistemas actuales para almacenar las enormes cantidades de pesos y activaciones en los DNN.

Construir memoria en procesadores convencionales es una forma de solucionar el problema del cuello de botella de memoria abriendo un gran ancho de banda de memoria con un consumo de energía mucho menor. Sin embargo, la memoria en chip es costosa y no sería posible agregar las grandes cantidades de memoria actualmente conectadas a los procesadores de CPU y GPU que se usan actualmente para entrenar e implementar DNN.

Se requiere memoria en las redes neuronales para almacenar datos de entrada, parámetros de peso y activaciones a medida que una entrada se propaga a través de la red. En el entrenamiento, las activaciones de un pase hacia adelante deben conservarse hasta que puedan usarse para calcular los gradientes de error en el pase hacia atrás. Como ejemplo, la red ResNet de 50 capas tiene ~ 26 millones de parámetros de peso y calcula ~ 16 millones de activaciones en el pase directo. Si usa un valor de coma flotante de 32 bits para almacenar cada peso y activación, esto daría un requisito de almacenamiento total de 168 MB. Al usar un valor de precisión más bajo para almacenar estos pesos y activaciones, podríamos reducir a la mitad o incluso reducir en cuartos este requisito de almacenamiento.

Para más información haga clic aquí:

Podría, pero no tiene que hacerlo.

Cuando carga su conjunto de datos en la memoria, el uso aumentará.

Cuando mantiene su conjunto de datos fuera de la memoria y simplemente selecciona lotes de él, los requisitos de memoria se mantendrán sin importar el tamaño del conjunto de datos.