Deep Learning Software Frameworks

Documentos relacionados
1. Computadores y programación

Introducción a las Redes Neuronales

Sistemas de Información 12/13 Introducción

Andres Felipe Rojas / Nancy Gelvez. UNESCO UNIR ICT & Education Latam Congress 2016

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

Tecnologías de Desarrollo Web I N G. E N R I Q U E M A R T E L O L Ó P E Z U N I V E R S I D A D G E R A R D O B A R R I O S

Tema 2 Introducción a la Programación en C.

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

20483 Programación en C#

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR. Ingeniería Aplicada TEÓRICA SERIACIÓN 100% DE OPTATIVAS DISCIPLINARIAS

INFORMATICA III. Capítulo I: Plataformas

Principios de Computadoras II

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

Cuando el lenguaje si importa

4.1 Conceptos Básicos de Matlab. Matlab es creado por The MathWorks, el cual es un idioma de alto rendimiento

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

USB232. Hoja de datos

Fundamentos de programación JAVA

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

JAVA 7 Los fundamentos del lenguaje Java

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

Cubriendo todas las plataformas del mercado

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

FLAG/C. Una API para computación matricial sobre GPUs. M. Jesús Zafont Alberto Martín Francisco Igual Enrique S. Quintana-Ortí

Sesión VI: Desarrollo de aplicaciones en el entorno MATLAB

SISTEMAS DE DETECCIÓN DE INTRUSOS EN LA PLATAFORMA NETFPGA USANDO RECONOCIMIENTO DE EXPRESIONES REGULARES.

CARRERA DE CIECNIAS DE LA COMPUTACIÓN PROGRAMA DE ESTUDIO. Teóricos: 2 Práctico: 1 Total 3

Ejemplos de uso de Orquestador O2

Curso: 10983A Upgrading Your Skills To Windows Server 2016

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

Algoritmos y Lenguajes de Programación

Deep Learning y Big Data

INFORMATICA III. Capítulo I: Plataformas

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

ios Certification Exam by Omnius

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

Oferta tecnológica: Sistema de control que permite el vuelo autónomo de drones

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Ingeniería de Software y Sistemas Computacionales

Arancha Pintado. Perfiles Big Data.

Especialidades en GII-TI

Programación I. Carrera: ECM Participantes Participantes de las academias de ingeniería electrónica de los Institutos Tecnológicos.

CNCA. Colaboratorio Nacional de Computación Avanzada Centro Nacional de Alta Tecnología. Proyectos de uso de la e-infraestructura en RedCLARA

ESET Secure Authentication

MOC 10983A Actualización de Conocimientos a Windows Server 2016

[Video] Microsoft Azure Opciones de Cómputo para Apps en la Nube

METODOLOGIA PARA LA CONSTRUCCION Y APLICACION DE MODELOS DE SIMULACION DINAMICA A PROCESOS DE IMPORTANCIA AGRÍCOLA

una red de equipos no puede funcionar sin un sistema operativo de red

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Soluciones BYOD para el aula. 24.Febrero.2016

Fundamentos de Programación Visual Basic

Pontificia Universidad Católica del Ecuador

Qué es un programa informático?

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

Tecnología de software para sistemas de tiempo real

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

La plataforma Arduino y su programación en entornos gráficos

Recursos de programación en GNU/Linux

20246C Monitoreo y operación de una nube privada

Sistemas Operativos. Introducción. Tema 6

CURSO: INTRODUCCION A VENSIM MODULO BASICO

Jornadas sobre Gnu/Linex: Uso de Software Libre en las Administraciones públicas. Sonia Pizarro Redondo

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Aprender a desarrollar con JavaScript

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv

Lenguaje de Programación

Curso Implementing and Managing Microsoft Desktop Virtualization (10324)

Reconocimiento visual de ademanes usando MS Kinect Captura de video. Dr. Héctor Avilés Escuela de Invierno de Robótica 2015

CL_55048 No-Code SharePoint 2013 Workflows with SharePoint Designer 2013 and Visio

Objetos de aprendizaje: Computadora

Visual Studio 2010 Guía de ventas

Introducción a Maxima: Haciendo Matemáticas con Software Libre (2 a Edición)

Herramienta de distribución libre para Cómputo Científico como. Científico como opción viable en la investigación científica y tecnológica

Gestionando sus Cotizaciones Eficientemente

online Itinerario Adobe CS6 para Diseñadores

Programación Orientada a Objetos en Java

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Universidad Autónoma del Estado de México Licenciatura en Ingeniería en Sistemas Energéticos Sustentables

LENGUAJES JÓVENES PROGRAMADORES

Arquitectura de Aplicaciones. Introducción AFC. Área de Soluciones, Aplicaciones Especiales y Arquitectura de Software.

FUNCIONAMIENTO DEL ORDENADOR

Presentación del simulador Simbad. March 27, 2016

Selección del Hardware y Software Administración del proceso de desarrollo de Sistemas de Información.

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

R, R-Commander y R-Excel

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

Lenguajes de marcado para presentación de Páginas web.

UNIVERSIDAD NACIONAL DEL CALLAO

Curso Querying Microsoft SQL Server 2014 (20461)

PROGRAMA DE ESTÍMULOS A LA INNOVACIÓN

La importancia de Big Data en finanzas

BVS Cisco Powered IaaS

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

MS_10962 Advanced Automated Administration with Windows PowerShell

Programador ABAP Nivel Avanzado

SMB, Professional and Enterprise Edition Versión 2.0

Diplomado en Tecnologías Móviles y Procesamiento de datos

Transcripción:

Deep Learning Software Frameworks Deep Learning interest Group, CCC, INAOE Leonardo Chang, Nelson Méndez y Leyanis López Centro de Aplicaciones de Tecnologías de Avanzada (CENATAV), La Habana, Cuba Mayo de 2016 1

Librerías más utilizadas Eblearn.lsh LUSH neuralnetworks Lasagne MatConvNet RNNLIB CUV Library Elektronn NeuralDesigner deepmat Caffe Nengo OpenNN cudamat Theano Generalized Hebbian Learning Theano CNTK Learning Deep Boltzmann Machines mcrbm RNNLM Tensorflow mpot MXNet Deep Learning Tutorials Blocks Pylearn2 MShadow Deep Belief Networks Torch Cuda-Convnet deeplearning4j DeepLearnToolbox Estimating Partition Functions of RBM s CXXNET 3-way factored RBM Eblearn Keras matrbm 2

: es uno de los framework de Deep Learning más populares y ampliamente utilizados. Implementa eficientemente redes de convolución para imágenes en C/C++. No está diseñada para otras aplicaciones como texto, sonido o series de tiempo. Ventajas: Bueno para redes de feedforward y de procesamientos imágenes. Permite de manera sencilla el uso del entrenamiento del GPU usando todas sus potencialidades. Entrenamiento de modelos sin necesidad de escribir código. Interfaz en Python, Matlab, C/C++ para el manejo a alto nivel. Limitantes: No es eficiente para redes neuronales recurrentes (RNN). Engorroso uso para el trabajo con redes de grandes dimensiones. Desarrollada solo para Linux, aunque existe una versión no mantenida por ellos para Windows. 3

: es una biblioteca de Python que permite definir, optimizar y evaluar expresiones matemáticas que implican matrices multidimensionales, de manera eficiente. Ventajas: Cuenta con APIs de alto nivel (Keras, Lasagne y Blocks) que mejoran su engorroso uso directo. Uso de Python mediante numpy que permite facilidad del uso del lenguaje. Transparencia en el uso del GPU. Realiza cálculos intensivos de datos hasta 140 veces más rápido que con la CPU (sólo con float32). El uso de diagramas de flujos permite una abstracción más agradable, además de que las Redes Neuronales Recurrentes (RNN) se engranan muy bien con estos. Evaluador de expresiones rápido mediante la generación de código dinámico en C. Limitantes: Theano en su manera básica es de muy bajo nivel, lo que hace su uso directo muy engorroso. Los mensajes de errores son de muy poca ayuda. En el modelado de grandes dimensiones se puede tomar tiempos largos en compilar. Solamente soporta un GPU. 4

: es un framework con un amplio soporte para los algoritmos de aprendizaje de máquinas que prioriza el uso del GPU. Es muy fácil de usar y muy eficiente gracias a la sencillez de las líneas de comando LuaJIT y una implementación subyacente de C/CUDA. Ventajas: Varios modelos pre-entrenados. Es sencillo escribir tus propios tipos de capas Limitantes: Es con código Lua (su uso está poco extendido). No es bueno para redes neuronales recurrentes Soporte de GPU, de manera eficiente y rápida. Trabajo eficiente con arreglos N-dimensionales. Integrable con ios, Android y FPGA. Excelente interfaz con C, mediante Lua. 5

: es una biblioteca de software de código abierto para el cálculo numérico usando diagramas de flujo de datos. Desarrollado originalmente por investigadores de Google's Machine Intelligence, para facilitar la integración rápida y sencilla de prototipos de investigación al sistema de producción. Ventajas: Uso de Python mediante numpy que permite facilidad del uso del lenguaje. El uso de diagramas de flujo permite una abstracción más agradable y compatible con Theano. Muy rápido en los tiempos de compilación de grandes modelos (en comparación con Theano). Cuenta con una herramienta de visualización (TensorBoard). Cuenta con un fuerte modelo de uso del paralelismo. Limitantes: A pesar de sus optimizaciones suele ser más lento que otros frameworks. Por el momento, TensorFlow no es compatible con las llamadas operaciones de matriz "inline. No contiene muchos modelos pre entrenados. 6

: Computational Network ToolKit. CNTK es un framework de código abierto de Microsoft, que describe redes neuronales profundas como una serie de pasos de cálculo a través de un grafo dirigido. La biblioteca incluye Feed-Forward DNNs, Redes Convolucionales y Redes Recurrentes. CNTK ofrece un Python-API sobre código C++. Puede ser utilizado con varios GPUs en diferentes máquinas gracias a su composición tan distribuida. El permiso de licencia de CNTK no adopta las licencias más convencionales de código abierto tales como ASF 2.0, MIT o BSD, esta última es la adoptada por Theano, Torch y la Caffe. 7

: desarrollada por Oxford Visual Geometry Group, como una plataforma educativa y de investigación para el desarrollo de prototipos de redes neuronales de convolución. Sus principales características son: Flexibilidad: Las capas de redes neuronales se implementan de una manera directa, por lo que son fáciles de modificar, ampliar o integrarse con otras nuevas. Poder. La aplicación puede ejecutar modelos de gran tamaño. Se proporcionan varios modelos pre-formados. Eficiencia. La puesta en práctica es bastante eficiente, apoyando tanto CPU como GPU. Los prototipos entrenados son de fácil integración con otros framework. 8

DL4J es una biblioteca de aprendizaje profundo de código abierto escrito en Java y la máquina virtual de java y un framework con un amplio apoyo para los algoritmos de aprendizaje profundo. DL4J incluye implementaciones de la máquina de Boltzmann restringida, redes de recurrencias profundas, autoencoders profundos, stacked de autoencoder eliminadores de ruido y recursive neural tensor network, entre otros. Todos estos algoritmos incluyen versiones paralelas distribuidas que se integran con Hadoop y Spark, que trabajan lo mismo con CPU, que con GPU. DL4J incluye arreglos N-dimensionales usando la clase ND4J, es similar a la funcionalidad que ofrece Numpy a Python. 9

CONCLUSIONES Son muchas las consideraciones de diseño y de equilibrio entre el rendimiento computacional y la flexibilidad. Cada conjunto de herramientas tiene sus fortalezas únicas: Caffe es popular entre los investigadores de visión por computadora debido a su desempeño eficiente. TensorFlow es operable mediante diagramas de flujo. Theano es único con su operación simbólica, tiempos de ejecución muy cortos. Torch utiliza el lenguaje de programación Lua. CNTK proporciona un rendimiento computacional distribuido muy eficiente. MatConvNet es simple y de fácil uso para la creación y prueba de prototipos. 10