5

Acabo de crear una red neuronal MUY grande, aunque con hardware muy potente, e imagino mi conmoción y desilusión, cuando me di cuenta de que NeuralFit [] del paquete de NeuralNetworks solo parece usar un núcleo, y ni siquiera a su máxima capacidad. Estaba destrozado. ¿Realmente tengo que escribir una implementación de NN completa desde cero? ¿O me perdí algo simple?El paquete de Redes neuronales en Wolfram Mathematica no es paralelo?

Mi red tomó 200 entradas a 2 capas ocultas de 300 neuronas para producir 100 salidas. Entiendo que estamos hablando de billones de cálculos, pero mientras sepa que mi hardware es el punto débil, eso se puede actualizar. Debería manejar el entrenamiento de tal red bastante bien si se deja solo por un tiempo (máquina de 4Ghz y 8 hilos con 24Gb de 2000Mhz de memoria CL7 ejecutando unidades RAID-0 SSD en SATA-III, estoy bastante seguro).

Ideas? Sugerencias? Gracias de antemano por sus comentarios.

+1

"shock", "disappointment", "heartbroken". Hmmm, suena un poco como una reacción exagerada si me preguntas. De todos modos, me pregunto si un NN se puede paralelizar fácilmente. Con todas esas interconexiones uno probablemente necesitaría mucha comunicación entre los núcleos, lo que tendría un impacto considerable en la velocidad. –

+0

Es posible que desee leer este blog (http://textanddatamining.blogspot.com/2011/11/buy-or-build-practical-example-to.html) sobre la implementación de un NN con Mathematica –

+5

"suena un poco como una reacción exagerada si me preguntas "- si pagas dinero por un paquete de una compañía con un historial probado de soluciones matemáticas MUY altas, y luego arrojas un problema del mundo real que no puede hacer una sola iteración de Entrenando en 24 horas, sí, yo diría que es una buena razón para emocionarse un poco. :-) Además, tengo una pasión por lo que hago, no solo son números para mí, y este no es mi trabajo, este es mi "hijo" personal. –

Respuesta

1

Puede contactar al autor del paquete directamente, es un tipo muy accesible y podría hacer algunas sugerencias.

+0

+1 si pudiera proporcionar un poco más de detalles en su respuesta –

+0

@berniethejet: ¿tiene información de contacto? El paquete es vendido por wolfram sin referencia al autor. Me encantaría contactar al autor y discutir algunos cambios y adiciones al paquete con él. Incluso dispuesto a contribuir con el código o el tiempo para codificar. –

+0

@Gregory: el nombre del autor es Jonas Sjöberg. Tienes razón, él no anuncia su propiedad del paquete. Presentó en una conferencia hace unos años: http://library.wolfram.com/infocenter/Conferences/5417/ – berniethejet

0

No estoy seguro de cómo escribió el código o cómo está escrito dentro del paquete que está utilizando; Trate de usar la vectorización, realmente acelera los cálculos de álgebra lineal. En el curso ml-class.org, puede ver cómo está hecho.

2

Soy el autor del paquete de red neuronal. Es fácil paralelizar la evaluación de una red neuronal dada la entrada. Es decir, para calcular la salida de la red dadas las entradas (y todos los pesos, los parámetros de la red). Sin embargo, esta evaluación no requiere mucho tiempo y no es muy interesante paralizarlo para la mayoría de los problemas. Por otro lado, el entrenamiento de la red a menudo lleva mucho tiempo y, lamentablemente, no es fácil de paralelizar. El entrenamiento se puede hacer con diferentes algoritmos y los mejores no son fáciles de paralelizar. Mi información de contacto se puede encontrar en la página principal del producto en la web de Wolfram. Las sugerencias de mejora son bienvenidas.

La última versión del paquete funciona bien una versión 9 y 10 si apaga la barra de sugerencias (en preferencias). El motivo es que el paquete usa el viejo HelpBrowser para la documentación y se cuelga en combinación con la barra de sugerencias.

tuyo Jonas

Cuestiones relacionadas