Revisión: Microsoft se enfrenta a TensorFlow

Cognitive Toolkit (CNTK) de Microsoft en comparación con TensorFlow de Google, centrándose en sus capacidades y características dentro del contexto del aprendizaje automático y el aprendizaje profundo. Analiza varios aspectos de CNTK, incluidas sus características, facilidad de uso, rendimiento y aplicabilidad.

1. **Comparación del enfoque de Microsoft y Google:**
– Tanto Microsoft como Google han incorporado funciones de aprendizaje automático en sus productos, como Cortana y Bing.
– TensorFlow es la tecnología de aprendizaje automático subyacente de Google, mientras que la contraparte de Microsoft es Cognitive Toolkit (CNTK).
– Tanto TensorFlow como CNTK se han lanzado como marcos de trabajo de código abierto y ofrecen varios algoritmos de redes neuronales y aprendizaje profundo.
2. **Usabilidad y facilidad de implementación:**
– CNTK se ha vuelto más fácil de instalar e implementar debido a un script de instalación automática.
– La API de Python en CNTK facilita su uso entre los principales investigadores de aprendizaje profundo que escriben en Python.
– CNTK ofrece abstracciones para la definición y el cálculo de modelos, algoritmos de aprendizaje, lectura de datos y capacitación distribuida a través de su API de Python.
3. **Características principales y mejoras de CNTK 2:**
– CNTK 2.0 Beta 1 presenta nuevas API de C ++ y Python, lo que lo hace accesible como biblioteca.
– Conserva BrainScript como su lenguaje de configuración para modelos y tiene sus bibliotecas principales escritas en C++
.
– CNTK 2 es compatible con el algoritmo Fast R-CNN para la detección de objetos e incluye mejoras en la biblioteca de evaluación, subprocesos múltiples y evaluación de GPU.
4. **Aplicación y Alcance de CNTK:**
– CNTK es un conjunto de herramientas de código abierto con calidad de producción adecuado para diversas tareas, incluido el reconocimiento de voz, la clasificación de imágenes y el análisis de texto.
– Admite una amplia gama de tipos de redes neuronales, como FeedForward, Convolucional, Recurrente/Memoria a largo plazo, Normalización por lotes y Secuencia a secuencia con atención.
– CNTK se usa en aplicaciones como Cortana, traducción en vivo de Skype, Bing y características de Xbox.
5. **Rendimiento y escalabilidad:**
– CNTK puede manejar datos densos o dispersos de Python, C++ o BrainScript.
– Admite el aprendizaje por refuerzo, las redes antagónicas generativas, el aprendizaje supervisado y no supervisado y el ajuste automático de hiperparámetros.
– CNTK ofrece paralelismo y puede ejecutarse en múltiples GPU y máquinas mientras utiliza eficientemente la memoria GPU.
En general, la revisión destaca las capacidades y los avances del Cognitive Toolkit de Microsoft, posicionándolo como una herramienta versátil y poderosa para diversas tareas de aprendizaje automático y aprendizaje profundo. También reconoce la competencia que plantea TensorFlow de Google, enfatizando las fortalezas y beneficios de cada marco.
1. **API y definición de red:**
– Las API de CNTK 2 admiten definiciones de red, alumno, lector, capacitación y evaluación de varios lenguajes de programación: Python, C ++, BrainScript e incluso C # para evaluación.
– La API de Python interactúa con NumPy y ofrece una biblioteca de capas de alto nivel para definiciones de redes neuronales concisas, incluidas las recurrencias.
– CNTK admite la representación de modelos recurrentes como ciclos en la red neuronal, lo que evita la necesidad de desenrollar estáticamente los pasos de recurrencia.
2. **Compatibilidad con GPU y Azure:**
– CNTK 2 teóricamente permite entrenar modelos en redes Azure y GPU.
– La compatibilidad con GPU requiere las máquinas virtuales de Azure de la serie N, que pueden necesitar activación y todavía están en versión preliminar.
– El autor tuvo que solicitar soporte de GPU para su cuenta, que tardó aproximadamente un día en habilitarse.
3. **Proceso de instalación:**
– CNTK 2 ofrece procedimientos de instalación automatizados para contenedores Docker de Windows, Linux y Linux.
– La instalación binaria de Windows fue más rápida y sencilla en comparación con las instalaciones manuales anteriores.
– A pesar de los pasos de aprobación de seguridad, el proceso de instalación fue sencillo.
4. **Compatibilidad y limitaciones de GPU:**
– El autor intentó probar CNTK con compatibilidad con GPU, pero su anterior GPU compatible con CUDA (Nvidia GeForce GTX 260) no se reconoció como lo suficientemente potente.
– Otros kits de herramientas de redes neuronales como TensorFlow generalmente requieren GPU como GeForce GTX 650 o superior para un entrenamiento eficiente.
– Se enfrentaron problemas de compatibilidad al intentar usar una Mac con una GPU compatible, ya que CNTK 2 no era compatible con MacOS y el uso de la GPU no se transfirió con éxito a las máquinas virtuales Windows o Linux en VMware Fusion.
En resumen, el texto proporciona información sobre las capacidades de la API de CNTK 2, la facilidad de instalación, los desafíos de soporte de GPU y cómo se compara con otros kits de herramientas de redes neuronales como TensorFlow. Enfatiza los requisitos de GPU para un entrenamiento eficiente y destaca los problemas de compatibilidad que enfrentó el autor durante las pruebas, particularmente en sistemas más antiguos o que no son de Windows.