Un marco para a aprendizaxe profunda consiste nunha combinación de interfaces, bibliotecas e ferramentas para definir e adestrar modelos de aprendizaxe automática de forma rápida e precisa.
Dado que a aprendizaxe profunda utiliza unha gran cantidade de datos non estruturados e non textuais, necesitas un marco que controle a interacción entre as "capas" e faga que o desenvolvemento do modelo sexa rápido aprendendo dos datos de entrada e tomando decisións autónomas.
Se estás interesado en coñecer a aprendizaxe profunda en 2021, considera usar un dos marcos que se indican a continuación. Lembra escoller un que che axude a alcanzar os teus obxectivos e visión.
1. TensorFlow
Cando se fala de aprendizaxe profunda, TensorFlow adoita ser o primeiro marco mencionado. Moi popular, este marco non só é usado por Google, a empresa responsable da súa creación, senón tamén por outras empresas como Dropbox, eBay, Airbnb, Nvidia e moitas outras.
TensorFlow pódese usar para desenvolver API de alto e baixo nivel, o que lle permite executar aplicacións en case calquera tipo de dispositivo. Aínda que Python é a súa linguaxe principal, pódese acceder á interface de Tensoflow e controlarse mediante outras linguaxes de programación como C++, Java, Julia e JavaScript.
Ao ser de código aberto, TensorFlow permítelle facer varias integracións con outras API e obter soporte rápido e actualizacións da comunidade. A súa dependencia de "gráficos estáticos" para o cálculo permítelle facer cálculos inmediatos ou gardar operacións para acceder noutro momento. Estes motivos, sumados á posibilidade de que poidas "ver" o desenvolvemento da túa rede neuronal a través de TensorBoard, fan de TensorFlow o marco máis popular para a aprendizaxe profunda.
Características
- Código aberto
- Flexibilidade
- Depuración rápida
2. PyTorch
PyTorch é un framework desenvolvido por Facebook para apoiar o funcionamento dos seus servizos. Desde que se converteu en código aberto, este marco foi usado por empresas distintas de Facebook, como Salesforce e Udacity.
Este marco opera gráficos actualizados dinámicamente, o que lle permite facer cambios na arquitectura do seu conxunto de datos mentres o procesa. Con PyTorch é máis sinxelo desenvolver e adestrar unha rede neuronal, aínda que non teña experiencia en aprendizaxe profunda.
Ao ser de código aberto e baseado en Python, podes facer integracións sinxelas e rápidas con PyTorch. Tamén é un marco sinxelo para aprender, usar e depurar. Se tes preguntas, podes contar co gran apoio e actualizacións de ambas as comunidades: a comunidade Python e a comunidade PyTorch.
Características
- Doado de aprender
- Soporta GPU e CPU
- Rico conxunto de API para ampliar as bibliotecas
3. Apache MX Net
Debido á súa alta escalabilidade, alto rendemento, rápida resolución de problemas e compatibilidade avanzada de GPU, este framework foi creado por Apache para o seu uso en grandes proxectos industriais.
MXNet inclúe a interface Gluon que permite aos desenvolvedores de todos os niveis de habilidade comezar coa aprendizaxe profunda na nube, en dispositivos Edge e en aplicacións móbiles. En só unhas poucas liñas de código Gluon, pode construír regresión lineal, redes convolucionais e LSTM recorrentes para detección de obxectos, recoñecemento de voz, recomendación e personalización.
MXNet pódese usar en varios dispositivos e é compatible con varios linguaxes de programación como Java, R, JavaScript, Scala e Go. Aínda que o número de usuarios e membros da súa comunidade é baixo, MXNet ten unha documentación ben escrita e un gran potencial de crecemento, especialmente agora que Amazon seleccionou este marco como a ferramenta principal para a aprendizaxe automática en AWS.
Características
- 8 ligazóns lingüísticas
- Formación distribuída, compatible con sistemas multi-CPU e multi-GPU
- Front-end híbrido, que permite cambiar entre os modos imperativo e simbólico
4. Microsoft Cognitive Toolkit
Se estás a pensar en desenvolver aplicacións ou servizos que se executen en Azure (servizos na nube de Microsoft), o Microsoft Cognitive Toolkit é o marco para seleccionar para os teus proxectos de aprendizaxe profunda. Este é de código aberto e é compatible con linguaxes de programación como Python, C++, C#, Java, entre outros. Este marco está deseñado para "pensar como o cerebro humano", polo que pode procesar grandes cantidades de datos non estruturados, ao tempo que ofrece un adestramento rápido e unha arquitectura intuitiva.
Ao seleccionar este marco, o mesmo que hai detrás de Skype, Xbox e Cortana, obterás un bo rendemento das túas aplicacións, escalabilidade e unha integración sinxela con Azure. Non obstante, en comparación con TensorFlow ou PyTorch, o número de membros da súa comunidade e soporte redúcese.
O seguinte vídeo ofrece unha introdución completa e exemplos de aplicacións:
Características
- Documentación clara
- Soporte do equipo de Microsoft
- Visualización gráfica directa
5. Keras
Do mesmo xeito que PyTorch, Keras é unha biblioteca baseada en Python para proxectos de uso intensivo de datos. A API de keras funciona a un alto nivel e permite integracións con API de baixo nivel como TensorFlow, Theano e Microsoft Cognitive Toolkit.
Algunhas vantaxes do uso de keras son a súa sinxeleza para aprender, sendo o marco recomendado para principiantes na aprendizaxe profunda; a súa velocidade de despregamento; contando con gran apoio da comunidade python e das comunidades dos demais frameworks cos que está integrado.
Keras contén varias implementacións do bloques de construción de redes neuronais como capas, funcións obxectivos, funcións de activación e optimizadores matemáticos. O seu código está aloxado en GitHub e hai foros e unha canle de soporte de Slack. Ademais do soporte para estándar redes neuronales, Keras ofrece soporte para redes neuronais convolucionais e redes neuronais recorrentes.
Keras permite modelos de aprendizaxe profunda para ser xerado en teléfonos intelixentes tanto en iOS como en Android, nunha máquina virtual Java ou na web. Tamén permite o uso de adestramento distribuído de modelos de aprendizaxe profunda en clústeres de unidades de procesamento de gráficos (GPU) e unidades de procesamento de tensor (TPU).
Características
- Modelos pre-adestrados
- Soporte de backend múltiple
- Soporte amigable e grande da comunidade
6. Apple Core ML
Core ML foi desenvolvido por Apple para soportar o seu ecosistema: IOS, Mac OS e iPad OS. A súa API funciona a un nivel baixo, facendo un bo uso dos recursos da CPU e da GPU, o que permite que os modelos e aplicacións creadas sigan funcionando aínda sen conexión a internet, o que reduce a “pegada de memoria” e o consumo de enerxía do dispositivo.
A forma en que Core ML consegue isto non é exactamente facendo outra biblioteca de aprendizaxe automática que está optimizada para funcionar en iPhones/ipads. Pola contra, Core ML é máis parecido a un compilador que toma especificacións do modelo e parámetros adestrados expresados con outro software de aprendizaxe automática e convérteo nun ficheiro que se converte nun recurso para unha aplicación de iOS. Esta conversión a un modelo Core ML ocorre durante o desenvolvemento da aplicación, non en tempo real mentres se está a usar a aplicación, e é facilitada pola biblioteca de Python coremltools.
Core ML ofrece un rendemento rápido cunha fácil integración de aprendizaxe de máquina modelos en aplicacións. Admite a aprendizaxe profunda con máis de 30 tipos de capas, así como árbores de decisión, máquinas vectoriais de apoio e métodos de regresión lineal, todos construídos sobre tecnoloxías de baixo nivel como Metal e Accelerate.
Características
- Fácil de integrar en aplicacións
- Uso óptimo dos recursos locais, sen necesidade de acceso a internet
- Privacidade: os datos non teñen que saír do dispositivo
7. ONNX
O último cadro da nosa lista é ONNX. Este framework xurdiu dunha colaboración entre Microsoft e Facebook, co obxectivo de simplificar o proceso de transferencia e construción de modelos entre diferentes frameworks, ferramentas, tempos de execución e compiladores.
ONNX define un tipo de ficheiro común que se pode executar en varias plataformas, ao tempo que fai uso das vantaxes das API de baixo nivel, como as de Microsoft Cognitive Toolkit, MXNet, Caffe e (utilizando conversores) Tensorflow e Core ML. O principio detrás de ONNX é adestrar un modelo nunha pila e implementalo mediante outras inferencias e predicións.
A Fundación LF AI, unha suborganización da Fundación Linux, é unha organización dedicada a construír un ecosistema para apoiar open-source innovación en intelixencia artificial (IA), aprendizaxe automática (ML) e aprendizaxe profunda (DL). Engadiu ONNX como proxecto de posgrao o 14 de novembro de 2019. Este movemento de ONNX baixo o paraugas da Fundación LF AI foi visto como un fito importante para establecer ONNX como un estándar de formato aberto neutral para provedores.
O ONNX Model Zoo é unha colección de modelos preadestrados en Deep Learning dispoñibles en formato ONNX. Para cada modelo hai Cadernos Jupyter para adestramento do modelo e realizar inferencias co modelo adestrado. Os cadernos están escritos en Python e conteñen ligazóns ao conxunto de datos de formación e referencias ao documento científico orixinal que describe a arquitectura do modelo.
Características
- Interoperabilidade do marco
- Optimización de hardware
Conclusión
Este é un resumo dos mellores frameworks para aprendizaxe profunda. Existen varios marcos para este fin, gratuítos ou de pago. Para seleccionar o mellor para o teu proxecto, primeiro debes saber para que plataforma desenvolverás a túa aplicación.
Os marcos xerais como TensorFlow e Keras son as mellores opcións para comezar. Pero se precisas usar vantaxes específicas do sistema operativo ou do dispositivo, entón Core ML e Microsoft Cognitive Toolkit poden ser as mellores opcións.
Hai outros frameworks dirixidos a dispositivos Android, outras máquinas e fins específicos que non se mencionaron nesta lista. Se este último grupo che interesa, suxerímosche que busques a súa información en Google ou noutros sitios de aprendizaxe automática.
Deixe unha resposta