¿Por qué TensorFlow tiene definiciones para muchas operaciones matemáticas?

Vit y Tom dan grandes razones prácticas. Solo me gustaría agregar a la respuesta de Matthew Lai sobre la filosofía de separar la especificación del modelo y la computación.

Esta es una de las características más importantes de Tensorflow. Es la idea de que la parte del código que especifica las operaciones matemáticas previstas (declaración del modelo) está completamente separada de la parte del código que realiza el cálculo sobre los datos reales (ejecución). Es por eso que Tensorflow tiene sus propias versiones de agregar o multiplicar , porque la operación lleva una semántica diferente: tensorflow.add es simplemente la declaración de la función de suma, en realidad no hace ninguna adición. Esto sucede más tarde después de la creación de instancias y la ejecución en una sesión de TensorFlow (piense en el entorno de ejecución).

Como Jeremy Howard argumenta en su excelente video, esta podría ser una nueva forma de pensar sobre la computación en sí misma, al igual que la introducción de C en la programación de procedimientos. En ese sentido, Tensorflow tiene menos que ver con las redes neuronales y más con una forma general de computación u optimización sobre los datos, que a menudo son matrices o tensores.

En TensorFlow, las operaciones se utilizan para construir gráficos de cálculo. No son lo mismo que las operaciones numpy, por ejemplo, que se ejecutan inmediatamente y le dan resultados de inmediato.

En el mundo TensorFlow, construye operaciones complejas a partir de operaciones simples y luego pasa valores a través de esas operaciones. Esto permite que TensorFlow le brinde cosas como la diferenciación automática de extremo a extremo, pero también cosas como distribuir sus operaciones entre CPU y GPU, sin que los valores intermedios tengan que volver a Python, lo que puede llevar una cantidad significativa de tiempo si se están realizando todas las operaciones ejecutado en GPU.

Su llamada para crear una instancia de TF en Python no ejecuta inmediatamente esa operación. En cambio, agrega la operación al gráfico de ejecución de su modelo, de modo que TF sabe que la operación debe ejecutarse cuando llama al método session.run (). Por el contrario, cuando utiliza la mayoría de los métodos NumPy, la acción se realiza inmediatamente cuando llama al método. Por lo tanto, el diseño de TF en el que difiere la ejecución de operaciones hasta que se ejecuta la sesión le impide usar métodos NumPy directamente en lugar de operaciones matemáticas TF. Sin embargo, aún puede usar NumPy en su script TF para cosas como el preprocesamiento de datos para proporcionar las entradas para su modelo.

TensorFlow representa las redes neuronales como un gráfico de cálculo en el que los nodos “núcleos” podrían ubicarse en diferentes dispositivos (formación de GPU múltiple, por ejemplo). Si reemplazó tf.add con numpy add primero, su gráfico no será diferenciable de extremo a extremo, por lo que no puede usar tf.train.optimizer para esa parte del gráfico además de cada vez que use operaciones matemáticas numpy que evaluar ese tensor y transferir su contenido a la máquina maestra.

More Interesting

En R, ¿qué significa elegir lambda por validación cruzada (cresta, lazo)?

¿Por qué podría mejorarse el arrepentimiento del bandido lineal mediante una proyección aleatoria?

Cómo comenzar con el aprendizaje profundo (cosas matemáticas) en Python

¿Puede un autoencoder sobreajustar cuando tiene una cantidad mucho menor de neuronas de capa oculta que la capa de entrada y también se usa la deserción?

¿Los ingenieros de aprendizaje automático en Google tienden a publicar artículos?

¿Dónde puedo encontrar el algoritmo para encontrar los otros nombres de la entidad popular?

Las entidades biológicas inconscientes que simplemente reaccionan automáticamente a su entorno han evolucionado y se han vuelto autoconscientes. ¿Qué impide que AI lo haga?

Cómo crear un sistema de predicción de calificación a partir de los comentarios de los revisores para comentarios 360 dados un comentario del revisor y el conjunto de datos de calificación correspondiente

Conciencia del contexto: ¿Qué es el descubrimiento de noticias anticipatorio?

¿Por qué la probabilidad condicional es más poderosa que la probabilidad conjunta en un nivel intuitivo?

¿Se utiliza el álgebra abstracta y el análisis real en el aprendizaje automático? Si es así, ¿cómo se usan?

¿Será el hardware especializado para el aprendizaje profundo un cambio de juego?

¿Qué tecnologías de IA están disponibles para el reconocimiento del usuario por comportamiento (interacción con el sistema), estilo de escritura, etc. y cómo procedo a hacer una?

¿Cuáles son las consecuencias y desventajas de usar datos agregados? ¿Cómo podemos combatirlos si no hay datos de nivel granular?

¿Cuáles son algunas técnicas de compresión que usan redes neuronales recurrentes?