#MLNET – Write and Load models using Machine Learning .Net

Hi !

Today post fast that the code is self explanatory.

First, based on the previous posts, the process of defining and training the model. The important thing happens on lines 15 and 16, where the model is recorded.

And then another project, where the engraved model is used. Attention to lines 18 to 21, from there the way to use the model is the same

Happy Coding!

Greetings @ Toronto

El Bruno

References

My Posts

Advertisements

#MLNET – Guardando y reutilizando modelos con Machine Learning .Net

Buenas!

Hoy post rápido que el código se explica por si solo.

En primer lugar, basado en los posts anteriores, el proceso de definir y entrenar el modelo. Lo importante sucede en líneas 15 y 16, donde se graba el modelo.

Y luego otro proyecto, donde se utiliza el modelo grabado. Atención a las líneas 18 a 21, a partir de allí la forma de utilizar el modelo es el mismo.

Happy Coding!

Greetings @ Toronto

El Bruno

References

My Posts

#MLNET – Understanding the step by step of Hello World

Hi!

Today while we were recording a a podcast on ML.Net, one question arose about how the data is processed in Machine Learning .Net. Well, let’s go back to my previous example that believes in the past post and let’s see step by step this.

In short, these are the steps to train a model and make a prediction:

  • We created a Machine Learning Pipeline
  • We load in memory a data file that we will use to train our model
  • We work on the columns, defining Labels and Features
  • We train the modelUsing the model we make a prediction about a new data set

As well, to know a little what happens in each of these steps let’s see the following debugging points in Visual Studio 2017.

Once we have created the Pipeline and loaded the initial data file, we can see that it has a series of columns and rows. In this case, the definition of the columns is obtained from the class [AgeRangeData] which is the type that we define for the data load

.

I1

In the rows, we can see that we have the values ​​separated by a [|], with the data of the original CSV.

In the next step, we define that the Label work column will be treated as a dictionary. This step converts all the values ​​of this column into numeric and then work with them.

I2

Line, 17, in this step the Features are defined. In this case, it is an aggregation of the [AgeStart] and [AgeEnd] columns. In the following image we can see how the Pipeline, adds these values ​​at the end of each row and is also added as a new column.

I3

At this point we have all the data ready to choose a learning algorithm and train our model.

I4

In subsequent posts I will comment on other scenarios in which we can use ML.Net.

Happy Coding!

Greetings @ Toronto

El Bruno

References

My Posts

#MLNET – Entendiendo el paso a paso del Hola Mundo

Buenas!

Hoy mientras grabábamos un podcast sobre ML.Net, surgió la pregunta sobre cómo se procesan los datos en Machine Learning .Net. Pues bien, volvamos al ejemplo anterior que cree en el post pasado y veamos el paso a paso de este.

Resumiendo, y mucho, estos son los pasos para entrenar un modelo y realizar una predicción:

  • Creamos una Machine Learning Pipeline
  • Cargamos en memoria un archivo de datos que utilizaremos para entrenar nuestro modelo
  • Trabajamos sobre las columnas, definiendo Labels y Features
  • Entrenamos el modelo
  • Utilizando el modelo realizamos una predicción sobre un nuevo set de datos

Pues bien, para conocer un poco lo que sucede en cada uno de estos pasos veamos los siguientes puntos de depuración

Una vez que tenemos creado el Pipeline y cargado el archivo de datos inicial, podemos ver que el mismo posee una serie de columnas y filas. En este caso, la definición de las columnas se obtiene de la clase [AgeRangeData] que es el tipo que definimos para la carga de datos.

I1

En las filas, podemos ver que tenemos los valores separados por un [|], con los datos del CSV original.

En el siguiente paso, definimos que la columna de trabajo Label será tratada como un diccionario. Este paso convierte todos los valores de esta columna en numéricos para luego poder trabajar con los mismos.

I2

Linea, 17, en este paso se definen las Features. En este caso, es una agregación de las columnas [AgeStart] y [AgeEnd]. En la siguiente imagen podemos ver como el Pipeline, agrega estos valores al final de cada fila y se agregan también como una nueva columna.

I3

En este punto ya tenemos todos los datos preparados para elegir un algoritmo de aprendizaje y entrenar nuestro modelo.

I4

En siguientes posts comentare otros escenarios en los que podemos utilizar ML.Net.

Happy Coding!

Saludos @ Toronto

El Bruno

References

My Posts

#MLNET – Hello World in ML.Net, Machine Learning for .Net !

Hi!

I can not wait to start writing a little more about ML.Net. For now just a couple of code snippets to show how simple and fast it can be

Starting with a set of data with ages to classify babies and kids, in a CSV file. All based on my personal criteria

And now a little magic with ML. A .Net Core Console application where we create a LearningPipeline and train it with the previous CSV information

Below we check a couple of predictions with Age Ranges that are not part of the original CSV

I1

Happy coding!

Greetings @ Burlington

El Bruno

References

 

#MLNET – Hola Mundo con ML.Net, Machine Learning for .Net !

Buenas!

No puedo esperar a empezar a escribir un poco mas al respecto sobre ML.Net. Por ahora solo un par de code snippets para demostrar lo simple y rápido que puede ser

Comenzando con un set de datos con edades para clasificar babies y kids, en un archivo CSV. Todo basado en mi criterio personal

Y ahora un poco de magia con ML. Una aplicación de Consola en donde creamos un LEarningPipeline y lo entrenamos con la información de CSV

A continuación verificamos un par de predicciones con Age Ranges que no son parte del CSV original

I1

Happy coding!

Saludos @ Burlington

El Bruno

References

 

#Net – Learning C # using only a browser

Hi!

A few days ago, at a university, one of the attendees in a session asked me what was the best way to learn C#. As always, this question depends on the level of the person who wants to learn, although it has served as an excuse to see what’s new in the .Net ecosystem.

Well, in addition to the (now) classic Microsoft Docs, I found a resource that is rather interesting

.NET In Browser tutorial

The format is rather simple, a small tutorial on basic concepts of C #, a web code editor and the chance to compile and see the result on the same web.

I1

As entry point for concepts such as handling of strings, arrays, etc. it seems like a good starting point to start.

Greetings @ Burlington

El Bruno

References

#Net – Aprendiendo C# utilizando solo un navegador

Buenas!

Hace unos días, en una universidad, uno de los asistentes en una sesión me pregunto cual era la mejor forma de aprender C#. Como siempre esta pregunta depende del nivel de la persona que quiere aprender, aunque me ha servido de excusa para ver que hay de nuevo en el ecosistema .Net.

Pues bien, además de los clásicos Docs, he encontrado un recurso que es más bien interesante

.NET In Browser tutorial

El formato es mas bien simple, un pequeño tutorial sobre conceptos básicos de C#, un editor web de código y la capacidad de compilar y ver el resultado en la misma web.

I1

Como punto de entrada para conceptos como manejo de strings, arrays, etc. me parece un buen punto de partida para comenzar.

Saludos @ Burlington

El Bruno

References

#Net -.NET Standard, a single Library to rule them all !

 

Hello!

A few days ago, I was listening a .NET Rocks  podcast and the guest commented the different flavors (pain?) we have today.for  NET. When we think in. NET, we always think in .NET Framework, but is easy get five or more different versions of. NET.: Xamarin, Mono, Silverlight, .NET Core, .NET Compact Framework and others. Those are different versions of what initially was thought in a single platform.

So today, when the product team announced .NET Standard they presented this scenario with this amazing picture:

dotnet-today.png

This is the main reason to create .NET Standard as a single set of APIS which must be implemented in all the .NET platforms. Another view of this is to think in a base class library with the basic features we need when we build an application. Regardless of whether it is for cloud, desktop, mobile, etc.

dotnet-tomorrow.png

I think that this gives a good idea of what you can expect from .NET Standard in the future. While the points that are discussed in the post are also interesting:

  • .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.
  • .NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.
  • .NET Standard 2.0 includes a compatibility shim for .NET Framework binaries, significantly increasing the set of libraries that you can reference from your .NET Standard libraries.
  • .NET Standard will replace Portable Class Libraries (PCLs) as the tooling story for building multi-platform .NET libraries.
  • You can see the .NET Standard API definition in the dotnet/standard repo on GitHub.

Greetings @ Toronto

El Bruno

References

#Net -.NET Standard, una única Library para gobernarlos a todos !

Hola !

Hace unos días, escuchaba un podcast de .NET Rocks donde el invitado comentaba los diferentes flavors que tenemos hoy de .NET.

Por ejemplo, cuando pensamos en .NET, siempre pensamos en .NET Framework, pero es fácil llegar a cinco o más implementaciones diferentes de .NET. Xamarin, Mono, Silverlight, .NET Core, .NET Compact Framework y muchas otras, son diferentes versiones de lo que inicialmente se pensó en una única plataforma. En el post donde se anuncia .NET Standard lo presentan así:

dotnet-today.png

Es por este motivo que nace .NET Standard como un unico set de APIS que deben ser implementadas en todas las plataformas. Dicho de otra manera, es una clase base con las funcionalidades básicas que podemos necesitar cuando creemos una aplicacion. Sin tener en cuenta si la misma es para cloud, desktop, mobile, etc.

dotnet-tomorrow.png

Creo que esto da una buena idea de lo que podemos esperar de .NET Standard en el futuro. Aunque los puntos que se comentan en el post son también interesantes:

  • Estándar de .NET es un conjunto de APIs que todas las plataformas .NET tienen que implementar. Esto unifica las plataformas .NET y previene la fragmentación futura.
  • .NET 2.0 estándar se implementarán por .NET Framework, .NET base y Xamarin. Para la base. net, esto añadirá muchas de las API existentes que han sido solicitadas.
  • Estándar de .NET 2.0 incluye una cuña de compatibilidad de binarios de .NET Framework, aumentando significativamente el conjunto de bibliotecas que se pueden hacer referencia de las bibliotecas .NET estándar.
  • Estándar de .NET reemplazará a bibliotecas de clases portables (PCLs) como la historia de herramientas para la construcción de las bibliotecas de .NET multiplataformas.
  • Puedes ver la definición de la API estándar de .NET en el repositorio estándar de dotnet en GitHub.

Saludos @ Toronto

El Bruno

References