TensorFlow es una biblioteca de software gratuita y de código abierto para el aprendizaje automático . Se puede usar en una variedad de tareas, pero tiene un enfoque particular en el entrenamiento y la inferencia de redes neuronales profundas . [4] [5]
Desarrollador (es) | Equipo de Google Brain [1] |
---|---|
Versión inicial | 9 de noviembre de 2015 |
Lanzamiento estable | 2.5.0 [2] / 14 de mayo de 2021 |
Repositorio | github |
Escrito en | Python , C ++ , CUDA |
Plataforma | Linux , macOS , Windows , Android , JavaScript [3] |
Tipo | Biblioteca de aprendizaje automático |
Licencia | Licencia Apache 2.0 |
Sitio web | www |
Tensorflow es una biblioteca matemática simbólica basada en el flujo de datos y la programación diferenciable . Se utiliza tanto para investigación como para producción en Google . [6] [7] [8]
TensorFlow fue desarrollado por el equipo de Google Brain para uso interno de Google . Fue lanzado bajo la licencia Apache 2.0 en 2015. [1] [9]
Historia
DistBelief
A partir de 2011, Google Brain creó DistBelief como un sistema de aprendizaje automático patentado basado en redes neuronales de aprendizaje profundo . Su uso creció rápidamente en diversas empresas de Alphabet , tanto en investigación como en aplicaciones comerciales. [10] [11] Google asignó a varios científicos informáticos, incluido Jeff Dean , para simplificar y refactorizar el código base de DistBelief en una biblioteca de grado de aplicación más rápida y robusta, que se convirtió en TensorFlow. [12] En 2009, el equipo, dirigido por Geoffrey Hinton , había implementado retropropagación generalizada y otras mejoras que permitieron la generación de redes neuronales con una precisión sustancialmente mayor, por ejemplo, una reducción del 25% en errores en el reconocimiento de voz . [13]
TensorFlow
TensorFlow es el sistema de segunda generación de Google Brain. La versión 1.0.0 se lanzó el 11 de febrero de 2017. [14] Si bien la implementación de referencia se ejecuta en dispositivos individuales, TensorFlow puede ejecutarse en múltiples CPU y GPU (con extensiones opcionales CUDA y SYCL para computación de propósito general en unidades de procesamiento de gráficos ). [15] TensorFlow está disponible en Linux de 64 bits , macOS , Windows y plataformas informáticas móviles, incluidas Android e iOS .
Su arquitectura flexible permite la implementación fácil de la computación en una variedad de plataformas (CPU, GPU, TPU ) y desde computadoras de escritorio hasta grupos de servidores y dispositivos móviles y de borde.
Los cálculos de TensorFlow se expresan como gráficos de flujo de datos con estado . El nombre TensorFlow se deriva de las operaciones que realizan estas redes neuronales en matrices de datos multidimensionales, que se denominan tensores . Durante la Conferencia de E / S de Google en junio de 2016, Jeff Dean declaró que 1,500 repositorios en GitHub mencionaron TensorFlow, de los cuales solo 5 eran de Google. [dieciséis]
En diciembre de 2017, los desarrolladores de Google, Cisco, RedHat, CoreOS y CaiCloud presentaron Kubeflow en una conferencia. Kubeflow permite el funcionamiento y la implementación de TensorFlow en Kubernetes .
En marzo de 2018, Google anunció la versión 1.0 de TensorFlow.js para el aprendizaje automático en JavaScript . [17]
En enero de 2019, Google anunció TensorFlow 2.0. [18] Se hizo oficialmente disponible en septiembre de 2019. [19]
En mayo de 2019, Google anunció TensorFlow Graphics para el aprendizaje profundo en gráficos por computadora. [20]
Unidad de procesamiento de tensor (TPU)
En mayo de 2016, Google anunció su unidad de procesamiento Tensor (TPU), un circuito integrado específico de la aplicación (ASIC, un chip de hardware) creado específicamente para el aprendizaje automático y diseñado para TensorFlow. Un TPU es un acelerador de IA programable diseñado para proporcionar un alto rendimiento de aritmética de baja precisión (por ejemplo, 8 bits ) y orientado a usar o ejecutar modelos en lugar de entrenarlos . Google anunció que habían estado ejecutando TPU dentro de sus centros de datos durante más de un año, y descubrió que ofrecían un orden de magnitud con un rendimiento mejor optimizado por vatio para el aprendizaje automático. [21]
En mayo de 2017, Google anunció la segunda generación, así como la disponibilidad de las TPU en Google Compute Engine . [22] Las TPU de segunda generación ofrecen hasta 180 teraflops de rendimiento y, cuando se organizan en grupos de 64 TPU, proporcionan hasta 11,5 petaflops.
En mayo de 2018, Google anunció las TPU de tercera generación que ofrecen hasta 420 teraflops de rendimiento y 128 GB de memoria de alto ancho de banda (HBM). Los pods de Cloud TPU v3 ofrecen más de 100 petaflops de rendimiento y 32 TB de HBM. [23]
En febrero de 2018, Google anunció que pondría las TPU a disposición en versión beta en Google Cloud Platform . [24]
TPU de borde
En julio de 2018, se anunció el Edge TPU. Edge TPU es un chip ASIC de Google diseñado específicamente para ejecutar modelos de aprendizaje automático (ML) de TensorFlow Lite en pequeños dispositivos informáticos de clientes, como teléfonos inteligentes [25], conocidos como informática de borde .
TensorFlow Lite
En mayo de 2017, Google anunció una pila de software específicamente para el desarrollo móvil, TensorFlow Lite. [26] En enero de 2019, el equipo de TensorFlow lanzó una vista previa para desarrolladores del motor de inferencia de GPU móvil con OpenGL ES 3.1 Compute Shaders en dispositivos Android y Metal Compute Shaders en dispositivos iOS. [27] En mayo de 2019, Google anunció que su TensorFlow Lite Micro (también conocido como TensorFlow Lite para microcontroladores) y el uTensor de ARM se fusionarían. [28]
TensorFlow Lite usa FlatBuffers como formato de serialización de datos para modelos de red, evitando el formato Protocol Buffers usado por los modelos estándar de TensorFlow.
Pixel Visual Core (PVC)
En octubre de 2017, Google lanzó Google Pixel 2, que presentaba su Pixel Visual Core (PVC), un procesador de imagen , visión e inteligencia artificial totalmente programable para dispositivos móviles. El PVC es compatible con TensorFlow para el aprendizaje automático (y Halide para el procesamiento de imágenes).
Aplicaciones
Google lanzó oficialmente RankBrain el 26 de octubre de 2015, con el respaldo de TensorFlow.
Google también lanzó Colaboratory, que es un entorno de portátil TensorFlow Jupyter que no requiere configuración para su uso. [29]
Curso intensivo de aprendizaje automático (MLCC)
El 1 de marzo de 2018, Google lanzó su Curso intensivo de aprendizaje automático (MLCC). Originalmente diseñado para ayudar a equipar a los empleados de Google con la inteligencia artificial práctica y los fundamentos del aprendizaje automático, Google implementó sus talleres gratuitos de TensorFlow en varias ciudades de todo el mundo antes de finalmente lanzar el curso al público. [30]
TensorFlow 2.0
Como la participación de mercado de TensorFlow entre los trabajos de investigación estaba disminuyendo en beneficio de PyTorch , [31] el equipo de TensorFlow anunció el lanzamiento de una nueva versión principal de la biblioteca en septiembre de 2019. TensorFlow 2.0 introdujo muchos cambios, el más significativo es TensorFlow ansioso, que cambió el esquema de diferenciación automática del gráfico computacional estático, al esquema "Define-by-Run" originalmente popularizado por Chainer y más tarde PyTorch . [32] Otros cambios importantes incluyeron la eliminación de bibliotecas antiguas, compatibilidad cruzada entre modelos entrenados en diferentes versiones de TensorFlow y mejoras significativas en el rendimiento en GPU. [33] [se necesita fuente no primaria ]
Características
TensorFlow proporciona Python estable (para la versión 3.7 en todas las plataformas) [34] y API de C ; [35] y sin garantía de compatibilidad con versiones anteriores de API: C ++ , Go , Java , [36] JavaScript [3] y Swift (archivado y el desarrollo ha cesado). [37] [38] Los paquetes de terceros están disponibles para C # , [39] [40] Haskell , [41] Julia , [42] MATLAB , [43] R , [44] Scala , [45] Rust , [46 ] OCaml , [47] y Crystal . [48]
"El nuevo soporte de lenguaje debe construirse sobre la API de C. Sin embargo, [..] no todas las funciones están disponibles en C todavía". [49] La API de Python proporciona algunas funciones más.
Aplicaciones
Entre las aplicaciones para las que TensorFlow es la base, se encuentran el software de subtítulos de imágenes automatizado , como DeepDream . [50]
Ver también
- Comparación de software de aprendizaje profundo
- Programación diferenciable
Referencias
- ^ a b "Créditos" . TensorFlow.org . Consultado el 10 de noviembre de 2015 .
- ^ "Lanzamiento de TensorFlow" . Consultado el 31 de mayo de 2021 .
- ^ a b "TensorFlow.js" . Consultado el 28 de junio de 2018 .
- ^ Abadi, Martín; Barham, Paul; Chen, Jianmin; Chen, Zhifeng; Davis, Andy; Dean, Jeffrey; Devin, Matthieu; Ghemawat, Sanjay; Irving, Geoffrey; Isard, Michael; Kudlur, Manjunath; Levenberg, Josh; Monga, Rajat; Moore, Jerez; Murray, Derek G .; Steiner, Benoit; Tucker, Paul; Vasudevan, Vijay; Alcaide, Pete; Wicke, Martin; Yu, Yuan; Zheng, Xiaoqiang (2016). "TensorFlow: un sistema para el aprendizaje automático a gran escala" (PDF) . arXiv : 1605.08695 . Cite journal requiere
|journal=
( ayuda ) - ^ Google (2015). TensorFlow: aprendizaje automático de código abierto . "Es un software de aprendizaje automático que se utiliza para varios tipos de tareas de comprensión del lenguaje y la percepción" - Jeffrey Dean, minuto 0:47 / 2:17 del clip de YouTube
- ^ Videoclip de Google sobre TensorFlow 2015 en el minuto 0: 15/2: 17
- ^ Videoclip de Google sobre TensorFlow 2015 en el minuto 0: 26/2: 17
- ^ Dean et al 2015 , p. 2
- ^ Metz, Cade (9 de noviembre de 2015). "Google Just Open Sourced TensorFlow, su motor de inteligencia artificial" . Cableado . Consultado el 10 de noviembre de 2015 .
- ^ Dean, Jeff ; Monga, Rajat; et al. (9 de noviembre de 2015). "TensorFlow: aprendizaje automático a gran escala en sistemas heterogéneos" (PDF) . TensorFlow.org . Investigación de Google . Consultado el 10 de noviembre de 2015 .
- ^ Pérez, Sarah (9 de noviembre de 2015). "Fuentes abiertas de Google, la tecnología de aprendizaje automático detrás de la búsqueda de fotos de Google, respuesta inteligente y más" . TechCrunch . Consultado el 11 de noviembre de 2015 .
- ^ Oremus, Will (9 de noviembre de 2015). "¿Qué es TensorFlow y por qué Google está tan entusiasmado con él?" . Pizarra . Consultado el 11 de noviembre de 2015 .
- ^ Ward-Bailey, Jeff (25 de noviembre de 2015). "Presidente de Google: Estamos haciendo un 'progreso real' en inteligencia artificial" . CSMonitor . Consultado el 25 de noviembre de 2015 .
- ^ "Versión 1.0.0 de Tensorflow" .
- ^ Metz, Cade (10 de noviembre de 2015). "TensorFlow, AI de código abierto de Google, apunta a un mundo de hardware que cambia rápidamente" . Cableado . Consultado el 11 de noviembre de 2015 .
- ^ Aprendizaje automático: Google I / O 2016 Minuto 07: 30/44: 44 fecha de acceso = 2016-06-05
- ^ TensorFlow (30 de marzo de 2018). "Presentación de TensorFlow.js: aprendizaje automático en Javascript" . Medio . Consultado el 24 de mayo de 2019 .
- ^ TensorFlow (14 de enero de 2019). "Lo que viene en TensorFlow 2.0" . Medio . Consultado el 24 de mayo de 2019 .
- ^ TensorFlow (30 de septiembre de 2019). "¡TensorFlow 2.0 ya está disponible!" . Medio . Consultado el 24 de noviembre de 2019 .
- ^ TensorFlow (9 de mayo de 2019). "Presentación de TensorFlow Graphics: gráficos por computadora se encuentra con el aprendizaje profundo" . Medio . Consultado el 24 de mayo de 2019 .
- ^ Jouppi, Norm . "Google sobrealimenta las tareas de aprendizaje automático con un chip personalizado de TPU" . Blog de Google Cloud Platform . Consultado el 19 de mayo de 2016 .
- ^ "Cree y entrene modelos de aprendizaje automático en nuestras nuevas TPU de Google Cloud" . Google . 17 de mayo de 2017 . Consultado el 18 de mayo de 2017 .
- ^ "Cloud TPU" . Google Cloud . Consultado el 24 de mayo de 2019 .
- ^ "Los aceleradores de aprendizaje automático de Cloud TPU ahora están disponibles en versión Beta" . Blog de Google Cloud Platform . Consultado el 12 de febrero de 2018 .
- ^ Kundu, Kishalaya (26 de julio de 2018). "Google anuncia Edge TPU, Cloud IoT Edge en Cloud Next 2018" . Beebom . Consultado el 2 de febrero de 2019 .
- ^ "El nuevo marco de aprendizaje automático de Google pondrá más inteligencia artificial en su teléfono" .
- ^ TensorFlow (16 de enero de 2019). "TensorFlow Lite ahora más rápido con GPU móviles (vista previa del desarrollador)" . Medio . Consultado el 24 de mayo de 2019 .
- ^ "Anuncio de flujo de uTensor y tensor | Mbed" . os.mbed.com . Consultado el 24 de mayo de 2019 .
- ^ "Colaboratory - Google" . research.google.com . Consultado el 10 de noviembre de 2018 .
- ^ "Curso intensivo de aprendizaje automático con API de TensorFlow" .
- ^ Él, Horace (10 de octubre de 2019). "El estado de los marcos de aprendizaje automático en 2019" . El degradado . Consultado el 22 de mayo de 2020 .
- ^ Él, Horace (10 de octubre de 2019). "El estado de los marcos de aprendizaje automático en 2019" . El degradado . Consultado el 6 de julio de 2020 .
- ^ "¡TensorFlow 2.0 ya está disponible!" . Blog de TensorFlow. 30 de septiembre de 2019 . Consultado el 22 de mayo de 2020 .
- ^ "Todos los símbolos en TensorFlow | TensorFlow" . TensorFlow . Consultado el 18 de febrero de 2018 .
- ^ "Compatibilidad de la versión de TensorFlow | TensorFlow" . TensorFlow . Consultado el 10 de mayo de 2018 .
Algunas funciones de API están marcadas explícitamente como "experimentales" y pueden cambiar de formas incompatibles con versiones anteriores entre versiones menores. Estos incluyen otros idiomas
- ^ "Documentación API" . Consultado el 27 de junio de 2018 .
- ^ TensorFlow (26 de abril de 2018). "Presentación de Swift para TensorFlow" . Medio . Consultado el 14 de agosto de 2019 .
no solo un contenedor de API de TensorFlow escrito en Swift
- ^ "Swift para Tensorflow se está archivando y el desarrollo ha cesado" . Consultado el 18 de febrero de 2021 .
A medida que S4TF entra en modo de mantenimiento, es un poco explosivo reflexionar sobre lo mucho que he aprendido.
- ^ Icaza, Miguel de (17 de febrero de 2018). "TensorFlowSharp: API de TensorFlow para lenguajes .NET" . Consultado el 18 de febrero de 2018 .
- ^ Chen, Haiping (11 de diciembre de 2018). "TensorFlow.NET: enlaces estándar de .NET para TensorFlow" . Consultado el 11 de diciembre de 2018 .
- ^ "haskell: enlaces de Haskell para TensorFlow" . tensorflow. 17 de febrero de 2018 . Consultado el 18 de febrero de 2018 .
- ^ Malmaud, Jon (12 de agosto de 2019). "Una envoltura de Julia para TensorFlow" . Consultado el 14 de agosto de 2019 .
operaciones como sin, * (multiplicación de matrices),. * (multiplicación de elementos), etc. [..]. Compare con Python, que requiere aprender funciones especializadas con espacios de nombres como tf.matmul.
- ^ "Un contenedor de MATLAB para TensorFlow Core" . 3 de noviembre de 2019 . Consultado el 13 de febrero de 2020 .
- ^ "tensorflow: TensorFlow para R" . RStudio. 17 de febrero de 2018 . Consultado el 18 de febrero de 2018 .
- ^ Platanios, Anthony (17 de febrero de 2018). "tensorflow_scala: API de TensorFlow para el lenguaje de programación Scala" . Consultado el 18 de febrero de 2018 .
- ^ "rust: enlaces de idioma de Rust para TensorFlow" . tensorflow. 17 de febrero de 2018 . Consultado el 18 de febrero de 2018 .
- ^ Mazare, Laurent (16 de febrero de 2018). "tensorflow-ocaml: enlaces OCaml para TensorFlow" . Consultado el 18 de febrero de 2018 .
- ^ "fazibear / tensorflow.cr" . GitHub . Consultado el 10 de octubre de 2018 .
- ^ "TensorFlow en otros idiomas | TensorFlow Core" . TensorFlow . Consultado el 14 de agosto de 2019 .
- ^ Byrne, Michael (11 de noviembre de 2015). "Google ofrece toda su biblioteca de aprendizaje automático como software de código abierto" . Vice . Consultado el 11 de noviembre de 2015 .
Bibliografía
- Moroney, Laurence (1 de octubre de 2020). Inteligencia artificial y aprendizaje automático para codificadores (1ª ed.). O'Reilly Media . pag. 365. ISBN 9781492078197.
- Géron, Aurélien (15 de octubre de 2019). Aprendizaje automático práctico con Scikit-Learn, Keras y TensorFlow (2.a ed.). O'Reilly Media . pag. 856. ISBN 9781492032632.
- Ramsundar, Bharat; Zadeh, Reza Bosagh (23 de marzo de 2018). TensorFlow para aprendizaje profundo (1ª ed.). O'Reilly Media . pag. 256. ISBN 9781491980446.
- Esperanza, Tom; Resheff, Yehezkel S .; Lieder, Itay (27 de agosto de 2017). Learning TensorFlow: A Guide to Building Deep Learning Systems (1ª ed.). O'Reilly Media . pag. 242. ISBN 9781491978504.
- Shukla, Nishant (12 de febrero de 2018). Aprendizaje automático con TensorFlow (1ª ed.). Publicaciones Manning . pag. 272. ISBN 9781617293870.
enlaces externos
- Página web oficial