Tag: Python

  • Un año más, durante el próximo curso académico 2020/2021 ITELLIGENT será la empresa colaboradora que participe en la IV Edición del Curso «Python: Machine Learning, Optimización y Aplicaciones» de la Universidad de Sevilla.
  • El plazo de prescripción termina el 20 de septiembre de 2020.

Si eres graduado o alumno de Máster y/o Doctorado y quieres seguir formándote, te invitamos a que prestes atención a las oportunidades que te puede brindar este Curso de Formación Permanente del Vicerrectorado de Ordenación Académica de la Universidad de Sevilla. También, pueden inscribirse cualquier persona interesada con conocimientos previos de programación ni tampoco es necesario en Python.

ITELLIGENT, como empresa colaboradora, participa activamente con la impartición de algunas sesiones formativas a lo largo del curso. Los encargados de ello son: Jaime Martel, CTO de ITELLIGENT y Mario Rivas, Ingeniero de I+D+i. Entre el resto de profesorado se encuentran docentes de la Universidad de Sevilla especialistas en diversos disciplinas: Ingeniería Electrónica, Geografía Física y Análisis Geográfico Regional y Administración de Empresas y Marketing. Por último, cabe destacar la figura de Sergio Luis Toral (Departamento Ingeniería Electrónica) como Director de los estudios a quien los interesados en el curso pueden dirigirse a través del mail y teléfono de la siguiente imagen.

Python iv edicion

Los principales objetivos del curso son:

  1. Proporcionar una introducción al lenguaje de programación Python y a sus principales módulos (Numpy, Scipy y Matplotlib)
  2. Introducir desde un perspectiva teórico-práctica técnicas de machine learning de regresión, clasificación y clustering, utilizando el módulo scikit-learn en Python
  3. Introducir desde un perspectiva teórico-práctica técnicas de optimización metaheurísticas basadas en trayectoria y en población, utilizando el módulo DEAP en Python
  4. Introducir desde un perspectiva teórico-práctica técnicas de deep learning, incluyendo las Fully Connected Networks, Convolutional Neural etworks (CNNs) y Recurrent Neural Networks (RNNs)
  5. Aplicaciones comerciales

Para más información visita la web del curso o descárgate este folleto.

PyTorch es un framework de Machine Learning de código abierto creado para ser flexible y modular para la investigación, con la estabilidad y el soporte necesarios para el despliegue de producción. PyTorch proporciona un paquete de Python para funciones de alto nivel como el cálculo de tensor (como NumPy) con una fuerte aceleración de GPU y TorchScript para una transición fácil entre el modo «eager» y el modo gráfico. Con la última versión de PyTorch, el framework proporciona ejecución basada en gráficos, capacitación distribuida, implementación móvil y cuantización. La sencillez de su interfaz, y su capacidad para ejecutarse en GPUs (lo que acelera el entrenamiento de los modelos), lo convierten en la opción más asequible para crear redes neuronales artificiales.

Originalmente desarrollado por Facebook AI Research, PyTorch ha sido a su vez una pieza fundamental en el desarrollo de relevantes aplicaciones de Inteligencia Artificial, como el Autopilot de Tesla y el Pyro de Uber. Gracias a su facilidad de uso, PyTorch se ha convertido en uno de los frameworks de Deep Learning más populares del mundo, al que sólo hacen sombra Tensorflow y Keras, ambos respaldados por el patrocinio de Google. En este artículo (en inglés), puedes descubrir las diferencias entre PyTorch y TensorFlow.

¿Por qué PyTorch es el framework de Deep Learning del futuro?

A continuación, te exponemos las diez razones por las que PyTorch es uno de los framework de aprendizaje profucndo más populares a nivel mundial:

1. Python es uno de los lenguajes de programación más populares utilizados por los científicos de datos, para construir modelos de Machine Learning. PyTorch está diseñado para integrarse perfectamente con Python y sus bibliotecas populares como NumPy.

2. Fácil de aprender. PyTorch es más fácil de aprender que otros frameworks de Deep Learning. Esto se debe a que su sintaxis y aplicación son similares a muchos lenguajes de programación convencionales como Python.La documentación de PyTorch también es muy organizada y útil para principiantes. Más adelante os mostraremos recursos para aprender PyTorch.

3. Mayor productividad del desarrollador. PyTorch es muy simple de usar, lo que también significa que la curva de aprendizaje para los desarrolladores es relativamente corta. PyTorch tiene una interfaz Python simple y proporciona una API simple pero potente. PyTorch también se puede implementar fácilmente en Windows y Linux.

4. Debugging (depuración) fácil. Como PyTorch está profundamente integrado con Python, muchas herramientas de depuración de Python también se pueden usar en el código PyTorch. Específicamente, las herramientas pdb e ipdb de Python se pueden usar para este tipo de depuración en PyTorch.

5. Data Parallelism. PyTorch tiene una característica muy útil conocida como paralelismo de datos. Con esta función, PyTorch puede distribuir el trabajo computacional entre múltiples núcleos de CPU o GPU

6. Support de gráfico dinámico. PyTorch admite gráficos computacionales dinámicos, lo que significa que el comportamiento de la red se puede cambiar mediante programación en tiempo de ejecución. Esto facilita una optimización de modelo más eficiente y le da a PyTorch una gran ventaja sobre otros frameworks de aprendizaje automático, que tratan las redes neuronales como objetos estáticos. Con este enfoque dinámico, podemos ver todos y cada uno de los cálculos y saber exactamente lo que está sucediendo. Cuando el flujo de datos y las operaciones correspondientes se definen en tiempo de ejecución, la construcción del gráfico computacional ocurre dinámicamente. Esto se hace con la ayuda de la clase de autogrado implícitamente.

7. PyTorch también proporciona un nuevo front-end híbrido. Esto significa que tenemos dos modos de operación, a saber, el modo «eager» y el modo gráfico. Generalmente utilizamos el modo «eager» para la investigación y el desarrollo, ya que este modo proporciona flexibilidad y facilidad de uso. Y generalmente utilizamos el modo gráfico para la producción, ya que esto proporciona una mejor velocidad, optimización y funcionalidad en un entorno de tiempo de ejecución C ++.

8. Bibliotecas útiles. Una gran comunidad de desarrolladores ha creado muchas herramientas y bibliotecas para extender PyTorch. La comunidad también está apoyando el desarrollo en visión por computadora, aprendizaje de refuerzo y mucho más.

9. PyTorch tiene soporte nativo de ONNX y puede exportar modelos en el formato estándar de intercambio de red neuronal abierta. Esto permitirá que los modelos basados ​​en PyTorch accedan directamente a las plataformas y tiempos de ejecución compatibles con ONNX.

10. PyTorch también es bien recibido por las principales plataformas en la nube, lo que permite a los desarrolladores e ingenieros realizar trabajos de capacitación a gran escala en GPU con PyTorch. El soporte en la nube de PyTorch también proporciona la capacidad de ejecutar modelos en un entorno de producción.

learning pytorch

Recursos para aprender PyTorch

Gracias a Internet, podemos acceder a un gran numero de recursos gratuitos para aprender PyTorch. La propia web de PyTorch ofrece una serie de herramientas -en inglés- como son:

  • La guía de referencia de la API: https://pytorch.org/docs/stable/index.html
  • Videotutoriales de 60 minutos: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
  • Tutoriales: https://pytorch.org/tutorials/
  • Recetas de ejemplos de códigos: https://pytorch.org/tutorials/recipes/recipes_index.html
  • Manual: Deep Learning with PyTorch

Sin embargo si necesitas mejor videotutoriales en español, existe el canal de YouTube Not CSV el cual posee una interesante introducción a PyTorch dividida en dos vídeos de una hora cada uno.

Por otro lado, existen otros recursos formativos muy útiles fuera de la web de PyTorch como:

python que es para que sirve

Qué es Python

Se trata de un lenguaje de programación creado en 1991 por Guindo Van Rossum (1956, Holanda). Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Está orientado a objetos y preparado para realizar cualquier tipo de programa, con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para inteligencia artificial, para automatización de tareas y por supuesto, para programación web.

Python es uno de los lenguajes de programación más utilizados, encargado de asegurarse de que la sintaxis haga posible que el código sea legible. Está considerado un lenguaje multiparadigma, al poder ser enfocado a varios estilos, y posee la ventaja de ser de código abierto, lo que permite que cualquiera pueda acceder a él. Desde que en 1991 se publicó el código, han ido evolucionando sus características, las cuales van siendo planteadas desde su filosofía de transparencia y legibilidad:

  • Python puede ser fácil de aprender si eres programador o si tienes experiencia con otros lenguajes programación.
  • Friendly & fácil de aprender. La comunidad organiza conferencias y reuniones, colabora en el código entre otras actividades.
  • Aplicaciones. El Índice de paquetes de Python (PyPI) alberga miles de módulos de terceros para Python. Tanto la biblioteca estándar de Python como los módulos aportados por la comunidad permiten infinitas posibilidades.
  • Open Source. Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que se puede usar y distribuir libremente, incluso para uso comercial. La licencia de Python es administrada por Python Software Foundation.

Para qué sirve

Uno de los principales objetivos del uso de Python es conseguir evitar complicaciones y ahorrar tiempo. Además, es muy útil para trabajar con grandes volúmenes de datos, ya que nos favorece los procesos de extracción y procesamiento de estos. Por este motivo, cuando se habla de Big Data también suele mencionarse Python. Algunos de los usos más comunes para los que sirve Python son:

  • Realizar cálculos científicos y de ingeniería.
  • Desarrollo web.
  • Programación de videojuegos.
  • Ejecutar programas gráficos.
  • Creación de efectos especiales.

Características y ventajas que ofrece Python:

  1. Sistema multiplataforma. No fuerza a los programadores a aprender un estilo especial sino que permite poder implementar varios estilos de programación enfocados a distintos aspectos. Entre dichos estilos podemos encontrar: programación imperativa, programación orientada a objetos y programación funcional.
  2. Orientado a objetos. Una de las características de un lenguaje de programación orientado a objetos es la capacidad de permitir a un programador crear nuevas clases que modelen los datos necesarios para resolver un problema. Con Python, nos encontramos ante un paradigma que propone modelar todo en función a clases y a objetos. Esto nos ofrece un uso de conceptos de cohesión, polimorfismo, abstracción y mucho más.
  3. Código abierto y libre. Posee una licencia de código abierto denominada Python Software Foundation Licence.  Toda la información relativa a este lenguaje de programación es libre por lo que, como hemos mencionado anteriormente, cualquier persona puede acceder a él.
  4. Frameworks. Python cuenta con frameworks de gran calibre para auxiliar el desarrollo web, el desarrollo de juegos o algoritmos avanzados.  Son estructuras o espacios de trabajo en base a las cuales se pueden organizar y desarrollar los softwares. Python posee algunos de los más poderosos (como son por ejemplo Django, Flask, Pyramid y Web2py), destacando todos ellos por su gran utilidad, puesto que facilitan en gran medida trabajo de los desarrolladores.
  5. Tipado dinámico. En Python, una misma variable puede tomar valores de distinto tipo en distintos momentos y en cualquier lugar de su código fuente.
  6. Calidad en la sintaxis. Esta es una de las ventajas de Python.  Este lenguaje de programación nos ofrece una sintaxis clara y limpia que facilita su aprendizaje y enseñanza. Se caracteriza por sustituir las delimitaciones y elementos de alto nivel por sangrías y tokens, componentes lexicográficos elementales que facilitan la escritura y lectura del código. También, otra de las funciones es la de reducir el uso de caracteres y escribir un formato que testee una secuencia determinada.

¿Quieres aprender Pyhton?

En la web se pueden encontrar diversos sites en los que se ofrece información y tutoriales detallados para aprender Python desde cero. Asimismo, el sitio pyhton.org cuenta con una guía para principiantes