¿Hay alguna solución disponible para entrenar redes neuronales específicamente en CPU, donde una GPU podría no estar disponible?

Según el idioma que prefiera

R:
Utilice cualquier paquete de red neuronal estándar (caret, nnet) junto con
con los siguientes (google sobre cada uno para más detalles)

1> biblioteca (doMC); registrarseDoMC (x)
2> biblioteca (doParallel);
c <- makeCluster (detectCores ())
registerDoParallel (c)
3> paquete foreach
Además, una buena lectura / descripción general puede ser esto (http://www.slideshare.net/bytemi…)

MATLAB / Octave : use cualquier caja de herramientas de aprendizaje profundo (rasmusbergpalm / DeepLearnToolbox), ya que usan operaciones de matriz incorporadas para las que matlab se encarga de ejecutar en múltiples núcleos (también puede restringir el número máximo de núcleos que usará la instancia de MATLAB )
Pero si usa octava en lugar de MATLAB, entonces el problema es que la octava solo usa un núcleo. Pero esto se puede solucionar nuevamente haciendo que octave use bibliotecas como ATLAS que usa múltiples núcleos.
Para octava también mira los paquetes ‘mpi’ y ‘paralelo’

pitón:
mira esto aparte de lo que Mayank sugirió a continuación
http://deeplearning.net/software…

PD:
Recuerda que entrenar la red neuronal no es nada pero multiplicaciones matriciales (desde el punto de vista de la implementación). Entonces, si escribe el código o usa el código de otra persona, asegúrese de que esta operación sea paralelizable (use múltiples cpu / gpu) o use algunas bibliotecas (BLAS, ATLAS, etc.) para el mismo, y funcionará bien.

Sí.

Hay muchas bibliotecas para entrenar NeuralNets específicamente en la CPU. En Python se puede probar tburmeister / pyneural, HIPS / Kayak, etc. Usan Cython / BLAS para un cálculo rápido. OpenMP de Cython se puede usar para paralelizar algunos aspectos, pero no estoy seguro de si se usan en estas bibliotecas.

Sin embargo, el entrenamiento sin GPU es casi siempre relativamente más lento. (A menos que haya demasiadas copias entre CPU <-> GPU que ralentizan las cosas y la mayoría de las redes neuronales se escriben para evitar esto)