Primero saquemos una cosa del camino; Python y Java no son el lenguaje de elección para hacer los cálculos de la última y mejor palabra de moda en el espacio MI, Deep Neural Networks. La ejecución del código que simula la red neuronal se escribe lo más cerca posible del hardware y, en general, utiliza aceleradores (por ejemplo, GPU, TPU). Sin embargo, esa es la parte de ejecución.
Al intentar codificar contra las bibliotecas que realizan estos elementos, por ejemplo, TensorFlow, existen enlaces oficiales para Python, C ++, Java y Go, y muchos más son proporcionados por la comunidad. Los enlaces son como una capa de instrucciones: el jefe de la fábrica dice lo que harán los trabajadores. Hay diferencias entre ellos, pero una vez que el jefe ha establecido las órdenes, es decir, una vez que los enlaces han indicado al tiempo de ejecución qué hacer, la biblioteca MI ejecuta las órdenes reales (en este ejemplo, el código nativo).
Un escenario similar ocurriría al codificar, por ejemplo, trabajos de Spark. Puede hacerlo en Scala, o puede hacerlo en Python, Java, Ruby, etc. No importa mucho ya que el controlador Spark lo traducirá a las instrucciones que sean necesarias, y luego los ejecutores de Spark lo ejecutarán como Scala en una JVM. Entonces, una vez más, si está usando Python o Java para codificar contra el controlador es casi irrelevante, ya que no está realizando ningún trabajo real.
- ¿A quién demuestra que los núcleos radiales son núcleos válidos? ¿Cómo se muestra esto mediante la integración de características?
- Cómo saber si mi modelo de regresión es heteroscedastic u homoscedastic de mi modelo de residuos
- ¿Cuáles son las diferentes técnicas para el procesamiento del lenguaje natural para resolver un ensayo de clasificación automática?
- En R, ¿qué significa elegir lambda por validación cruzada (cresta, lazo)?
- ¿Cuáles son las aplicaciones más interesantes del aprendizaje automático en espacios inesperados?
Esto es lo que la respuesta de Fedor Shabashev está insinuando. Si usa Python para configurar sus instrucciones, y luego usa otra biblioteca para realizar el cálculo, el costo general de Python probablemente sea insignificante en el contexto. Sin embargo, si quisieras usar Python para hacer los cálculos, podrías estar sufriendo un impacto en el rendimiento.
Objetivamente, codificando un algoritmo en Python versus codificando el mismo algoritmo en Java, Python siempre será más lento, suponiendo una codificación experta para ambos. Del mismo modo en Java vs C ++, C ++ vs ensamblaje. Aquí es donde entra tu segundo factor: puede ser mejor tener un código correcto en lugar de un código rápido . Muchas instituciones, por ejemplo, universidades, valorarán la precisión sobre la velocidad, por lo que puede ser preferible escribir en Python.
Para su pregunta, específicamente, yo diría que el punto de conflicto, como se discutió anteriormente, es si Python se usa como controlador o ejecutor . Es decir, ¿el código de Python utiliza una API ML / MI o desea implementar el algoritmo en Python? En el primer caso? La diferencia es insignificante. ¿En lo ultimo? Me temo que tu amigo tiene razón.