¿Es posible dar una estimación general sobre el tamaño de las redes neuronales que se pueden entrenar en GPU de grado de consumo común ? Por ejemplo:
El papel de Aparición de locomoción (refuerzo) entrena una red utilizando la activación en tándem de las neuronas. Tienen un NN de 3 capas con 300,200,100 unidades para el Caminante Planar . Pero no informan el hardware y el tiempo ...
¿Pero podría desarrollarse una regla general? También solo se basa en los resultados empíricos actuales, por ejemplo:
Las unidades X que utilizan la activación sigmoidea pueden ejecutar iteraciones de aprendizaje Y por hora en un 1060.
O el uso de la función de activación a en lugar de b provoca una disminución del rendimiento en veces.
Si un estudiante / investigador / mente curiosa va a comprar una GPU para jugar con estas redes, ¿cómo decides qué obtienes? Aparentemente, un 1060 es la opción de presupuesto de nivel de entrada, pero ¿cómo puede evaluar si no es más inteligente obtener un netbook malo en lugar de construir un escritorio de alta potencia y gastar los $ ahorrados en infraestructura de nube a pedido?
Motivación para la pregunta: acabo de comprar un 1060 y (inteligente, para hacer la pregunta después, eh) me pregunto si debería haberme quedado con el $ y haber creado una cuenta de Google Cloud. Y si puedo ejecutar mi simulación de tesis de maestría en la GPU.
fuente
Como advertencia, sugeriría que a menos que esté presionando contra los límites tecnológicos fundamentales, la velocidad de cómputo y los recursos deberían ser secundarios a la lógica del diseño al desarrollar una arquitectura de red neuronal.
Dicho esto, a principios de este año terminé mi tesis de maestría que involucraba tuberías de análisis bioinformático con datos de secuenciación del genoma completo; ese proyecto tomó más de 100,000 horas de tiempo de cálculo para desarrollarse de acuerdo con nuestro administrador de trabajo de clústeres. Cuando estás en una fecha límite, los recursos pueden ser una limitación real y la velocidad puede ser crítica.
Entonces, para responder a sus preguntas como las entiendo:
¿Habría sido mejor usar el dinero para ganar tiempo en la nube?
Probablemente. Los pocos cientos de dólares que gastaste en el 1060 te llevarían lejos entrenando a tus modelos en la nube. Además, por lo que puedo decir, no requiere que la GPU arranque el 100% del tiempo (lo haría si, por ejemplo, extrajera criptomonedas). Finalmente, con las instancias en la nube puede escalar, entrenando múltiples modelos a la vez, lo que puede acelerar la exploración y validación de cualquier arquitectura en la que se establezca.
¿Hay alguna manera de medir el tiempo de cálculo de una red neuronal en una GPU dada
Bueno, Big O es un estimador, pero parece que quieres un método más preciso. Estoy seguro de que existen, pero respondería que puede hacer su estimación con cálculos simples de la parte posterior del sobre que tienen en cuenta los hilos, la memoria, las iteraciones de código, etc. ¿Realmente desea profundizar en la tubería de procesamiento de GPU en el 1060? Es posible que pueda obtener una muy buena estimación al comprender todo lo que sucede entre su código y el metal, pero en última instancia, probablemente no valga la pena el tiempo y el esfuerzo; Es probable que confirme que la notación Big O (el modelo simple, si lo desea) captura la mayor parte de la variación en el tiempo de cálculo. Una cosa que puede hacer si nota cuellos de botella es la creación de perfiles de rendimiento.
fuente
Depende de lo que necesites. Puede entrenar cualquier tamaño de red en cualquier recurso. El problema es el tiempo de entrenamiento. Si desea entrenar Inception en una CPU promedio, tardará meses en converger. Por lo tanto, todo depende de cuánto tiempo puede esperar para ver sus resultados en función de su red. Al igual que en las redes neuronales, no tenemos una sola operación, sino muchas (como concatenación, agrupación máxima, relleno, etc.), es imposible hacer una estimación mientras está buscando. Simplemente comience a entrenar algunas redes infames y mida el tiempo. Luego, puede interpolar cuánto tiempo llevará entrenar las redes que está buscando.
fuente