6 votos

¿Qué son las diferencias de velocidad entre ML implementaciones en diferentes idiomas?

Estoy tratando de escribir mi propio ML de la biblioteca. Por razones de velocidad empecé a escribir cosas en C utilizando BLAS, pero luego me enteré de que NumPy y Theano también el uso de BLAS. Me pregunto si hay grandes diferencias de velocidad entre las implementaciones de ML algoritmos en C/Python/Matlab/Octave.

¿Alguien tiene alguna experiencia o puede proporcionar algunos datos para la comparación? Si no hay ninguna buena razón para escribir en C puro, prefiero que no.

8voto

karatchov Puntos 230

Depende fuertemente del algoritmo.

Hay varias cosas para que la escritura de código en C no le dará ningún beneficio: las operaciones de matrices (dot productos, elemento sabio multiplicaciones/aplicaciones de funciones como el pecado o así, la matriz de inversiones, QR descomposiciones, ...), ya que BLAS o LAPACK se llama. Esto hace que sea posible la aplicación de un montón de algoritmos fácilmente.

Usted tendrá un tiempo difícil para que coincida con C el rendimiento, sin embargo cuando usted necesita para hacer las cosas como los árboles o grandes gráficos, el cual es el caso, por ejemplo, los árboles de decisión, KNN o sofisticados modelos gráficos con mucha estructura.

Algunos pensamientos al azar:

  • algoritmos de aprendizaje automático son muy difíciles de depurar sin una implementación de referencia; C es mucho más difícil de depuración de Python.
  • obtendrá el 90% del rendimiento de C en algunos casos con Python, pero si usted realmente necesita para ser rápido, usted tendrá que atenerse con C
  • Python es un crecimiento muy grande de un eco-sistema para el aprendizaje de máquina con theano y sklearn, es un buen momento para unirse.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X