domingo, 30 de junio de 2019

Implementar Inteligencia artificias fácil en las aplicaciones


Como desarrolladores en muchos casos ocupamos hacer tareas de Inteligencia Artificial (AI) y no tenemos ni la experiencia o el conocimiento para hacer estas tareas. Pero podemos investigar un poco sobre los servicios de Azure para hacer algunas tareas de Machine Learning (ML), Deep Learning (DL), etc. Los servicios cognitive nos permiten por medio de un API utilizar todo el poder Azure AI.

Existen servicios para hacer muchas tareas como, por ejemplo, podemos hacer tareas de reconocimiento de imágenes, para reconocer idioma, podemos reconocer texto en fotos, corrector de ortografía, etc.

Estos APIs tienen una cantidad de llamadas gratis con las que podemos iniciar hacer pruebas y esta cantidad de transacciones gratuitas serán por siempre, es decir, que iniciamos a pagar después de gastar este limite gratuito. Vamos a poder usar 5000 transacciones gratuitas por mes.

Otra gran ventaja es que no importa cual lenguaje de programación usamos o queremos usar para las tareas a resolver ya que todo lo podemos configurar en Azure y simplemente haciendo la llamada al API podemos tener los resultados necesarios.

Para el ejemplo que queremos hacer lo vamos a desarrollar con javascript.
  • Lo primero que tenemos que hacer es ir al portar de Azure.
  • En el Marketplace buscamos los Cognitive Services
  • Buscamos el que deseamos usar
  • Seleccionamos nuestro servicio y damos clic en create


Después de dar clic en Create vamos a tener la siguiente pantalla


Aquí vamos a crear nuestro servicio podemos usar el gratuito. Cuando se crea el recurso nuevo vamos a buscar el API y los keys

En Overview tenemos el endpoint que vamos a utilizar para hacer los llamados. Para poder hacer esto vamos a ocupar dos pasos.

Lo primero es llamar al API que nos permite autenticarnos

Como podemos ver en el momento de dar clic al botón que dice enviar llamamos una función de Ajax con jquery que nos permite llamar el token de seguridad. En el url debemos pasar el endpoint que sale en la ventana de overview. El key que podemos obtener de azure lo tenemos que pasar como header en el Ocp-Apim-Subscription-Key pasamos nuestro key el resultado de la función done nos retorna el token. Luego de esto llamamos la función detectLanguage y espera el token de autorización.


Debemos pasar en ese segundo paso el token con la palabra Bearer en el campo que se llama Authorization. En el url llamamos el API de congnitive services para detectar el idioma junto con su versión. Enviamos el texto que escribimos en la caja de texto en el espacio de data. Cuando el API nos responder podemos ver el resultado en el console imprimiendo la variable de data.



De esta manera podemos usar los APIs de Azure donde se pueden implementar tecnología de AI en nuestras apps.

Tenemos que recordar que se puede manipular imágenes, texto, audio, etc. para poder desarrollar aplicaciones más flexibles y con alta tecnóloga.


Etiquetas: , , ,

miércoles, 19 de junio de 2019

Gmail y Netbeans 11


En muchos casos queremos enviar correos con nuestras apps y no tenemos ningún servidor de smtp disponible por lo que podemos usar alguna cuenta de Gmail como servidor de smtp.

Vamos a ver un paso a paso como crear una pequeña aplicación con java para enviar correos usando Gmail.

Primero vamos a crear un proyecto nuevo con Netbeans 11.0

Podemos crear el proyecto con Maven o sin Maven. La diferencia seria que al crearlo sin Maven tenemos que descargar un jar que vamos a necesitar e instalarlo. Con Maven lo podemos agregar usando la herramienta.

Yo lo voy hacer con Maven de esta manera

Damos clic en Next
Después nos va a salir la siguiente ventana donde le vamos a dar el nombre que deseamos al proyecto. En mi caso se llama JavaEmail.

Agregamos la clase Main para poder ejecutar nuestro proyecto.
Cuando ya tenemos todo esto listo vamos a agregar la dependencia de JavaMail 

Damos clic derecho sobre el folder que dice dependencias con lo que nos aparecerá una ventana con opciones. Damos clic a Add Dependency.

En la siguiente ventana donde tenemos que buscar la librería vamos a agregar la siguiente 

  • Información. Group Id: javax.mail
  • Artifact Id: Mail
  • Version: 1.4


Damos clic en add y estamos listos para escribir nuestro código.

Antes de ir a escribir nuestro código debemos ir ingresar a la cuenta de correo que deseamos usar y dar clic al siguiente link https://myaccount.google.com/lesssecureapps que nos permite indicar a la cuenta de correo que va a ser usada por aplicaciones externas.


Damos clic al button que tenemos junto a “Allow les secure apps: Off”  este debería cambia a on y ya con esto vamos a poder usar Gmail como nuestro servidor de correo.

Yo todo lo desarrolle en el main pero lo pueden hacer en cualquier clase.

Como vemos vamos importar las siguientes librerías para utilizar el correo.

Ahora tenemos que declarar algunas variables necesarias para poder ejecutar el envió del correo.

Algunos variables no van a cambiar como el puerto y el servidor de Gmail. Pero tenemos que agregar nuestra cuenta de correo en la variable userEmail y el password para esta cuenta en la variable userPassword. Por último, toPerson es a quien le queremos enviar el correo. Se podría enviar a múltiples cuentas si se desea.


Luego agregamos algunas propiedades necesarias para poder establecer la comunicación con el servidor

Ahora nos toca agregar el correo del destino, el cuerpo del email y el subject.

Tenemos que crear una variable de tipo session que nos va a permitir hacer la interacción con el servidor de correo electrónico.



Y ya finalmente crear el método que nos permite enviar el correo.

En el message que vamos a enviar agregamos el formato del texto que seria text/html junto con el cuerpo y el subject. Para que nos funcione en el método connect de Transport debemos agregar el servidor, cuanta de correo y la contraseña de nuestra cuenta de correo. Con esto podemos enviar el mensaje usando el método sendMessage de Transport.


Puedes descargar el ejemplo aquí

¿Quieres aprender java y C#?



Etiquetas: , , ,

martes, 18 de junio de 2019

Devintersection Jueves 13 junio 2019


Jueves 13 de junio del 2019 ultimo día de la conferencia dev intersection. Realmente fue super interesante todo lo que vimos en tan corto tiempo

Key Note
Con Brad Green



Iniciamos con un key note sobre angular con las nuevas herramientas que tiene y la gran cantidad de aplicaciones que se han desarrollado con esta tecnología. Es simplemente increíble. Cosas super interesantes el comando de ng update en el CLI que nos permite actualizar la aplicación de una manera fácil y sin que tengamos que hacer nada. Esto permite fácilmente la continuidad de nuestra aplicación con una migración limpia y simple.

Otra característica muy importante es que la nueva versión de angular 8 permite crear aplicaciones más pequeñas. Haciendo que se carguen más rápido para el usuario.

El framework es un OpenSource que vive en github el cual el equipo de Google lo clona a G3 antes de trabajar en las nuevas versiones, en este punto se hacen todas las pruebas necesarias para que la versión que liberen este en las mejores condiciones para producción.

Ya esta por salir la versión Angular 9 con muchas nuevas características para que las apps sean mejores.

Increase your .net productivity and streamline Azure development with Visual Studio 2019
Con Allison Buchholtz y Kendra Havens


Cosas que están saliendo nuevas para el VS2019 son refactor en los ciclos de foreach para mejorar estas estructuras.

Los if son otras estructuras con las que están implementando mejoras.

Las interfaces vienen con mejoras para fácilmente mover propiedades de una clase a una interfaz. Además, si esta no existe se crea de manera automática.

Las expresiones regulares vienen con colores nuevos para poder visualizarlas con mayor facilidad. Con esto se pueden evaluar las expresiones regulares y mostrar posibles errores.

Vienen nuevas características como la capacidad de editar el archivo de configuración más fácil, se puede agregar validaciones de compilación propias como en que orden se quieren crear las clases. Por ejemplo, abstract public class.

Con más y nuevos colores para la sintaxis. Además de nuevas opciones para unit testing.

Cognitive services - Machine Learning for developers
Chris Noring



Con los servicios de machine learning de Azure cualquier desarrollador puede crear aplicaciones con implementaciones de ML.

Por medio de servicios de Rest podemos crear ejecutar las tareas de ML y obtener una respuesta. Existen algunos límites para uso gratuito, pero sigue siendo más cómodo usar estos servicios que desarrollarlos, buscar el equipo de especialistas, hospedar los servicios, etc.

Podemos usar los servicios tal cual están, pero si se requiere de algunas cosas diferentes se pueden mejorar por nosotros mismos. Lo primero que debemos hacer es tratar de ver si lo que ya tenemos nos funciona y usarlo ya después si requerimos algo más se pueden adaptar.

Key note
John Papa

En el Keynote final lo que podemos rescatar es que tenemos herramientas para trabajar de manera colaborativa con VS2019 y trabajar dos o mas al mismo tiempo sobre el mismo archivo.

Todas las herramientas de git están integradas con VS2019 y permite hacer todas las tareas desde el IDE.

Y finalmente super importante es que se requieren muchos especialistas en el área de IA. Al parecer un campo que no requiere de mucha preparación si la persona es desarrolladora. Conocimiento que se puede aprender fácilmente. Esperando que el futuro sea Quantum Computer….

¿Quieres aprender java y C#?

Etiquetas: , , , , , ,

jueves, 13 de junio de 2019

Devintersection Miércoles 12 junio 2019



Key note
Steven Murawski

El día inicio con una charla sobre DevOps y todas las herramientas que tiene Azure para mejorar el proceso de automatización.

Una de las primeras sugerencias es publicar software a niveles pequeños con esto podemos introducir menos errores que haciendo grandes publicaciones. Cuando se hacen publicaciones grandes tenemos el riesgo de ingresas muchos errores y con esto se hace mas grande la complejidad de encontrar y corregir el problema.

Las herramientas de Azure se pueden integrar a diferentes plataformas, lenguajes o nubes. Por ejemplo, se puede crear un proceso que publique a AWS o que publique dentro de la empresa en cualquier servidor.

Se puede usar para publicar muchas diferentes tecnologías de una forma fácil.

El panel de Azure DevOps se puede configurar con solo las herramientas que se requieren o que uno necesita para el negocio.

Blazor
Ryan Nowak

Lo primero que voy a decir de esto es que ya esta listo para ser utilizado en producción. Va a salir con la nueva versión de .netcore. va a contar con soporte y esta integrado a Visual Studio.

Con este framework se pueden hacer aplicaciones web usando c# tanto para el servidor como para el cliente. Esto ayuda a la gente que no le gusta o no quiere aprender javascript hacer aplicaciones modernas. Incluso se habla que esto podría ser la nueva generación para desarrollar aplicaciones web.
Blazor usa tecnología WA (Web Assembly) para poder ejecutarse en el navegador. La mayoría de los navegadores modernos soportan WA en el caso de los navegadores que no aceptan WA se usa unas librerías de javascritp para que puedan ser compatibles.

WA parece ser la generación que continua después de los frameworks modernos que tenemos actualmente como Angular, React, Vuejs. Tenemos que ver que nos espera el futuro sobre este tema, pero WA viene a mejorar por mucho el rendimiento de las aplicaciones web.

Blazor funciona sobre WA y mono. Lo que hace es que envia los dlls al lado del cliente para que puedan ser ejecutados. Ya no vemos javascript al lado del cliente.

Con la nueva versión de Blazor se tienen 3 tipos de proyectos para usar. Estos tres van a estar disponible con .netcore 5.

Una característica muy interesante que tenemos con este nuevo framework es que no se hace postback mientras se navega por el sitio web.

Tenemos la opción de crear un proyecto llama Blazor Client-Side que envía todos los dlls al cliente para que puedan ser utilizados al lado del cliente y tenemos la opción Blazor Server-Side donde vamos a tener toda la información que se requiere para navegar en el sitio y por medio de un websocket se ha la interacción entre cliente servidor. Este último nos permite dejar los dlls y toda la información sensible en el server, no exponemos el código ni otra información al lado del cliente.

Otra pequeña desventaja del client-side es que se tiene que descargar más ya que se envían todos los dlls para que puedan ser utilizados en el navegador.

Los archivos que se van a crear son la extensión razor. Son archivos nuevos que se implementaran en .netcore 3.

Los eventos se van a llamar en métodos de c# o cualquier otro lenguaje de .net.  

Podemos separar el código en componentes que pueden ser utilizados en cualquier parte de las páginas que estamos desarrollando.

La versión client-side estará disponible con la versión .netcore3 y la Server-Side estará disponible hasta la versión .netcode5


Write once run anywhere
Joe Guadgno

En esta charla se hablo de ionic un framework que funciona para hacer aplicaciones que pueden corer tanto en navegador como en dispositivos mobiles.

Podemos crear aplicaciones usando Angular con ionic se puede escribir con cualquier IDE per Visual Studio Code tiene unas extensiones que hacen el trabajo simple.

ML.Net
Adnan Masood

Me encanto este framework para trabajar en modelos de ML (machine learning) con C#. Es un framework open source basado en C# que se puede integrar a Visual Studio. Los modelos se pueden escribir tanto con C# o F#.

Lo que se ocupa es seleccionar los datos que deseamos usar o que tenemos. Luego de esto con una pantalla muy sencilla podemos seleccionar el modelo que pensamos que nos funciona mejor y es nada mas de entrenar al modelo.

También cuenta con una herramienta en caso de no estar seguros cual modelo usar podemos simplemente ejecutarla sobre los datos y nos ayuda a seleccionar cual modelo se adapta más a lo que deseamos. La herramienta la podemos encontrar como ML CLI.

Ya el modulo de ML.NET ya esta listo para ser utilizando con Visual Studio 2019 y poder generar modelos para nuestras aplicaciones ya que al final genere código de C# que se puede integrar super fácil a cualquier aplicación que deseamos desarrollar.

Spark C#
Ankit Asthana & Paranav Rastogi

Un nuevo framework que podemos usar ahora para conectarnos con Spark desde c#. Usa una sintaxis muy similar a la de SCALA.

Lo que abre la posibilidad de los desarrolladores de C# interactuar con Spark con mejor rendimiento que otros lenguajes.

Creo que debemos iniciar a estudiar mas sobre Blazor me parece que tiene mucho potencial.
Recursos

¿Quieres aprender java y C#?

Etiquetas: , , , ,

miércoles, 12 de junio de 2019

Devintersection martes 11 de junio 2019


Para iniciar el martes en devintersection tenemos una serie de charlas super interesantes sobre tecnología y que nos espera el futuro. Vamos a ver que tenemos en el key note

Key Note
Con Scott Hanselman


Podemos tener varias versiones del. netcore en la misma maquina y utilizar la que requerimos actualizando cmd para actualizar .net globa json.

Tenemos una nueva versión de blazor que nos permite ejecutar WA (web assembly) utilizando código de Windows forms que se pueden compartir en el web o en el desktop sin tener que instalar plugins o cualquier otra cosa en el navegador.

Todo el código que se porta al navegador son dlls y se puede dejar de usar javascript para aplicaciones de cliente. Toda la lógica se puede manejar con C#.

Otra gran ventaja que tenemos usando Blazor es que podríamos tener eventos desde el lado del cliente que disparan código en el servidor directamente. La idea principal de esto es dejar la complejidad de javascript y aumentar la velocidad de las aplicaciones web por medio del código WA.
Otra de las nuevas características que vienen con la nueva versión de .netcore es que podemos compilar aplicaciones viejas y reducir el tamaño de estas aplicaciones de manera increíbles. El nuevo .netcore encuentras las dependencias o métodos que no se ocupan y los elimina del sistema que se compila.

Se tiene una nueva plataforma que es capaz de correr cualquier versión de .net de una nueva forma y estándar para que puedan funcionar todas las aplicaciones.  

Going from developer to AI Rock Star
Con Zoiner Tejada

Lo primero que témenos que tener en cuanta que DL (Deep Learning) y ML (Machine Learning) tienen dos enfoques diferentes para lograr su cometido. Pero podríamos resolver problemas similares.
No debemos estar preocupados por el nivel de matemáticas que se requiere para trabajar con DL ya que con el nivel básico que ya conocemos podemos resolver los problemas que nos salgan.

Actualmente para trabajar con ML se utiliza Python por eso es importante aprender un poco de Python.

Azure cuenta con una plataforma muy complete y poderosa para poder trabajar con ML. Tiene servicios que se pueden usar para que no tengamos que crear los modelos ni pasar por todo el proceso complicado. Seria solo de usarlos. Tienen mucho potencial y nos pueden solucionar muchos problemas sin tener que hacer la parte pesada del trabajo.

Un ejemplo de esto es Azure Search que nos permite extraer el texto de los documentos para poder interpretar los datos que se requieren. Otro servicio muy poderos es el diseñado para las imágenes que nos permite hacer un montón de tareas sobre imágenes sin tener que pasar por el proceso complicado. Solo tenemos que entrenar los modelos ya existentes con los datos que deseamos para que puedan generar los resultados esperados.

Este proceso requiere de mucho CPU y poder de computo en general por eso una opción es usar la nube para poder escalar como se ocupa durante el proceso.

.Net present and future
Con Scott Hunter


.netcore esta creciendo a pasos gigantes. Muchos desarrolladores están iniciando a trabajar con esta nueva plataforma y todas las herramientas que están saliendo gracias a los esfuerzos de la comunidad. Un millón de desarrolladores por mes el año pasado descargaron .netcore.

Vienen nuevas herramientas como .netcore para Apache Spark que va permitir a los desarrolladores de .net trabajar con bigdata sobre Apache Spark.

ML.net 1.0 un proyecto Open Source que viene a permitir que los programados de c# puedan continuar trabajando en el lenguaje que les gusta haciendo modelos de ML. El framework viene con muchas características y muy fácil de usar. Es un plugin que se puede incluir dentro de Visual Studio.
Ya está el Visual Studio 2019 que cuenta con mayor rendimiento para que las versiones anteriores. Compila las aplicaciones mucho mas rápido. En general es dos veces más rápido que las versiones anteriores.  

Viene la versión nueva de .netcore 3 preview 5 con mejor rendimiento para las aplicaciones. Y ya se esta hablando de la versión .netcore 5. Se espera liberar una versión nueva cada año. .netcore puede correr en cualquier lugar.

Viene una nueva herramienta para que hacer que la compilación pueda utilizar únicamente lo que necesita y de esta manera reducir los tamaños de las aplicaciones.

Ya viene la versión nueva de c# 8.0 con un montón de nuevas herramientas y características que hacen el lenguaje mucho más amigable y fácil de usar. Entre esas características viene el async sobre streams.

Detalles importantes para la versión nueva de .netcore 5.0 no se le va a dar soporte a web forms, WCF Server, Windows Workflow.

Docker and Kubernetes for Developers
Con Dan Wahlin


Primero debemos saber que un contenedor de Docker no es lo mismo que una VM (Virtual Machine). El sistema operativo donde se corre los contenedores es el único sistema operativo. Ahora en un contenedor podemos tener casi cualquier cosa como un servidor de internet, un motor de base de datos, etc.

Para poder correr Docker se requiere la instalación de Docker Desktop y con esto podemos iniciar a crear los contenedores. Entre algunas de las ventajas que podemos tener es que en el momento que no se ocupa el contenedor simplemente se borra y listo. Instalar una imagen de un contenedor es muy fácil y rápido. Las imágenes son las que tienen lo que necesitamos como el motor de base de datos, etc.

Podemos usar las imágenes existentes o podemos crear nuestras propias imágenes. Las instalaciones de las imágenes se hacen en capas por lo que podemos borrar cualquier capa que ya no nos gusta o que quedo algo mal.

Para trabajar con los contenedores podemos crear los puertos internos y externos por donde se van a comunicar nuestras aplicaciones con el contenedor y lo que está dentro del contenedor. También se puede configurar para que los contenedores puedan tener comunicación entre sí.

Podemos usar contenedores para instalar nuestras aplicaciones en los diferentes ambientes incluyendo la nube.

Utilizando un archivo de configuración se pueden correr varias transacciones a la vez para configurar uno o varios contenedores.

Los contenedores cuando se caen no tienen memoria persistente por si mismo para poder guardar datos o otros estados de manera permanente se deben crear volúmenes que si permiten guardar la información en donde nosotros decidamos.

Con Kubernetes podemos olvidar el trabajo de complicado de mantenimiento ya que el trabajo de organizar todo lo relacionado a balance de cargas, problemas de contenedores, crear otro contenedor, etc. lo pude hacer Kubernetes. Se encarga de orquestar todo lo relacionado a los contenedores.

Una gran ventaja de usar los contenedores es que vamos a garantizar que donde se use el contendor vamos a tener la misma configuración en todos los ambientes.

Siguiente

Etiquetas: , , , , , ,

Devintersection lunes 10 de junio


En esta charla lo que vimos fue todo el día sobre vuejs que es un framework muy poderos y muy fácil de usar. Este ganado terreno sobre algunos otros frameworks basados en javascript.  Esta fue impartida por John Papa y Dan Wahlin.

Para poder crear una pagina web se requiere de componentes que van a trabajar juntos y se deben ir armando como legos. Estos componentes deben ser capaces de ser independientes y trabajar en conjunto para brindar una gran flexibilidad a la hora de diseñar la pagina web. Esto lo podemos obtener con vuejs.

Separar un proyecto en componentes nos da mucha flexibilidad y además es más fácil para crecer y dar soporte a la aplicación. Lo que no debemos olvidar a la hora de desarrollar el proyecto es la organización.

Podríamos ver vuejs como un framework intermedio entre Angular y React ya que tiene una guía de desarrollo muy similar a la de Angular, pero se pueden hacer cosas también igual que React.

Una gran ventaja que tenemos con vuejs es que podemos implementarlo de dos maneras una usando el script directamente del CDN o descargándolo a nuestra maquina y esto no requiere de ninguna configuración adicional, fácil y simple. También se puede hacer por medio del npm. En el caso de Angular y React es que siempre requiere de una configuración inicial para trabajar.

Para crear un proyecto con npmp se puede usar el CLI.

Existe una herramienta que se puede usar para monitorear el rendimiento de los scripts entre otras cosas que se llama Vue CLI UI.

Con vuejs se pueden tener múltiples apps corriendo en la misma pagina web. Estos pueden ser independientes y tener comunicación entre ellos.

Algunas recomendaciones:
  • Una muy buena recomendación para la creación de los componentes es utilizar archivos separados, con esto podemos organizar mucho mejor nuestro código.
  • Es agregarle nombre siempre a la app ya que a la hora de ver los errores vamos a poder ver exactamente cuál es la app que está dando errores.
  • Podemos usar typescript para generar nuestro código de vuejs.
  • v-once es una función que nos permite indicar que los datos que estamos cargando en pantalla no van a cambiar por lo tanto no requieren de monitoreo, esto nos ayuda en el rendimiento de nuestra app.
  • Podemos usar v-bind que nos permite cambiar propiedad de componentes del DOM fácilmente.
  • Entre otras funciones que nos hacen la vida fácil tenemos @click, @keyup.enter. esta ultimo tiene el evento del enter con el que podemos llamar alguna función.
  • Las variables es importante declararlas como undefine si no le agregamos ningún valor o tipo.


Un aspecto importante que vimos durante la conferencia es que Angular toma más tiempo para compilar ya que hace más trabajo para reducir los bundles que se envían al cliente. Lo cual al final es una ventaja.


Aquí podemos ver el ciclo de vida de vuejs. En el evento de create podemos pedir los datos al servidor si se requieren para tenerlos listos en el momento que esté listo el DOM. Ya con los datos listos y en el momento se cree el DOM vamos a poder mostrarlos sin problema.

En el evento de mounted podemos cargar las librerías de terceros que necesitamos para que esten listas para usarlas también.

Entre otras propiedades tenemos computed que nos permite monitoreas cambios en variables, es más eficiente que hacerlo por medio de wathcers.

Otra propiedad que podemos usar son los filtros para modificar como se ven los datos.

Tenemos varias opciones para hacer llamados de Ajax. Dentro del framework. Podemos usar fetch o axios. Para usar axios podemos instalar la librería con npm esta librería funciona sobre fetch pero es un poco más simple de usar.

Tenemos también librerías para poder hacer el ruteo de las páginas que se pueden instalar desde el npm.

Otros conceptos que se hablaron fueron sobre los lazy loading para mejorar el rendimiento de la carga de las páginas. Ya que permite cargar los bundles de únicamente lo que el usuario necesita.

Algunos recursos

Etiquetas: , , ,

martes, 11 de junio de 2019

DevIntersection 2019 Orlando. Domingo 19 de junio

La primera charla que fui a ver en devintersection me pareció muy interesante. El tema ere “Deep learning for developers” con Zoiner Tejara y Ciprian Jichici. Lo que voy a escribir son las ideas que me parecieron mas importantes documentos o links que se presentaron que pueden ser de utilidad para todos.

Lo primero que definieron fue el concepto de Machine learning de una manera muy simple el cual es la capacidad de aprender de las computadoras sin tener que explicarle de manera explicita con un programa. Es decir, que la computara después de datos, un modelo y entrenamiento de los datos ya puede generar sus propios resultados.

Detalles importantes es que el Deep learnig no requiere mucho conocimiento matemático para usarlo. Es una actitud más orientado a la ingeniería. Lo que se requiere es iniciar, probar y probar hasta lograr el resultado esperado.

Debemos de pensar diferente para entrar a este tipo de desarrollo ya que es un nuevo paradigma de hacer las cosas. Ya que primero iniciamos con los datos y las respuestas, luego el modelo debe de entender como hacer para encontrar las respuestas futuras.

Actualmente para trabajar con machine learning (ML) o Deep learning (DL) ocupamos conocimientos en Python.

Aquí algunas de las tecnologías que podemos usar para trabajar DP o ML
  • Python
  • Azure compute
  • Azure storage
  • Azure machine learning



El proceso de DL requiere que iniciemos recolectando los datos y preparándolos. Después vamos a tener que entrenar al modelo y evaluarlo. Finalmente se puede publicar el modelo y dependiendo de las necesidades y cambios en los datos se puede regresar a entrenar nuevamente al modelo para mejorar los resultados.



El cambio de los datos puede requerir nuevos entrenamientos para la mejora.

Detalle importante es que podemos usar muchos de los servicios ya existentes para hacer el proceso de DL o ML que existen. Por ejemplo, en Azure ya existen servicios que podemos usar para el reconocimiento y trabajo con las imágenes. Otro servicio que se puede usar es el de texto para evaluar y buscar datos que se requieren.


Si lo que deseamos no está disponible podemos hacer nuestros propios modelos o algoritmos para lograr los resultados, pero lo mejor seria primero investigar que podemos usar y de esta manera ahorra tiempo y dinero. Ahora no tenemos que olvidar que los modelos que ya existen también debemos entrenarlos.

Un 85% del tiempo para este tipo de tareas se va a estar usando en la recolección de datos y la preparación.

Otra herramienta que vamos a usar o podemos usar para nuestro proyecto de DL y ML es Jupyter Notebook. Esta herramienta nos permite escribir código en el browser que se restar ejecutando en el servidor donde tenemos nuestras herramientas de ML. Se puede correr Python, R o SQL. Se pueden hacer ejecuciones paso a paso usando las celdas que son text box en el navegador.

El mundo está buscando más personas que puedan realizar trabajos de ML o DP para las nuevas aplicaciones que se están desarrollando. Por eso es bueno que iniciemos a estudiar más sobre estas herramientas y mejorar nuestras habilidades en este campo.

Pueden visitar la pagina de Solliance donde van a tener mas contenido sobre este tema e información relevante

Etiquetas: , , ,