¿Debo aprender C ++ ahora que sé cómo implementar algoritmos básicos de ML en Python, o debería seguir con scikit-learn?

Cuando Google decidiría sobre su infraestructura de aprendizaje automático, el ecosistema de Python no estaba en ninguna parte en comparación con hoy. Ya tienes numpy, numba, cython, theano, cffi, scikit learn y otras cosas en Python. Puede escribir código de alto nivel y desplegar el código C de bajo nivel para partes críticas. A menos que vaya a escribir código de aprendizaje automático que funcione en Terabytes de datos, Python con los servidores de hoy en día con una gran RAM y múltiples CPU / GPU debería ser lo suficientemente bueno para la mayoría de los problemas.

Si tiene ganas de trabajar en un lenguaje de bajo nivel (puedo entender porque también tengo ese picor), le insto a que pruebe lenguajes de bajo nivel como D, Nim o algo como Julia o futhark y contribuya a su ecosistema de aprendizaje automático. . La razón es que Python te mima con todas las ventajas que ofrece y la codificación en C ++ simplemente se siente muy diferente. Estos nuevos lenguajes están hechos para que uno pueda divertirse como Python en un sistema de bajo nivel y sentirse mejor.

Si está atascado con la escritura de un sistema distribuido que maneja millones de solicitudes de aprendizaje automático y capacitación en miles de millones de puntos de datos, todavía tiene opciones como spark mllib, etc., pero creo que C ++ es su mejor opción en ese caso, y debe tomar arriba

More Interesting

¿Contamos la estructura original dada mientras contamos el número total de isómeros?

¿Cuál es la relación entre el índice de una matriz y el tamaño de una matriz?

¿Qué es el hashing perfecto?

¿Cómo es tomar CS 267 (Algoritmos gráficos) en Stanford?

¿Por qué puede verse la secuencia de Fibonacci como un algoritmo dinámico y por qué tiene un mal tiempo de ejecución?

¿Cuál es la aplicación práctica de un gráfico no ponderado?

Encontré un problema algorítmico y no sé cómo resolverlo. ¿Alguien me puede ayudar?

Trabajo muy duro para estudiar 13 horas al día durante más de 7 meses, pero todavía no puedo mejorar mi estructura de datos y habilidades de algoritmos, ¿qué debo hacer?

¿Cuál es la mejor manera de realizar operaciones de intercambio K en un entero de N dígitos para obtener el máximo número posible?

¿Cómo se implementa una cadena de bloques en el código?

¿Debo tomar un curso de estructura de datos y algoritmos antes de aprender cualquier lenguaje de programación? ¿Es importante entender la programación?

Cuando un algoritmo de árbol de decisión se enfrenta a dos atributos que producen divisiones igualmente buenas en un árbol, ¿cómo eligen uno sobre otro?

Soy un programador promedio, me encanta codificar en Java y estoy tratando de mejorar mis habilidades de codificación algorítmica. ¿Cómo puedo mejorarlos?

¿Cómo verifico si un número binario es divisible por decir 'n'?

¿Alguien puede dar el algoritmo detallado del algoritmo mejorado de segunda oportunidad?