#MLNET – Error ‘Entry point ‘Trainers.LightGbmClassifier’ not found’ and how to fix it

Hi!

Monday Tip hoping to save you some time if someone finds this error

I1

System.InvalidOperationException: ‘Entry point ‘Trainers.LightGbmClassifier’ not found’

Before going on, let me share a little context. In the current version of Machine Learning.Net [0.3.0] we have a couple of new Trainers. One of them is LightGBM. This Framework allows us to perform supervised sorting tasks in binary mode, multiple categories and more. In the MSDN blog post for the version 0.3.0 of ML.Net, this framework is well described, with also a very interesting definition

The definition for LightGBM in ‘Machine Learning lingo’ is: A high-performance gradient boosting framework based on decision tree algorithms.

Well after choosing a test data set which I know well, I decided to move on and try this new Trainer. Once I had created all the infrastructure necessary to use the Framework, I found the error I mentioned at the beginning of the post. And I didn’t like it at all. If you know a little bit of Windows, you know that type errors [Entry Point] never predict anything good.

Well, it was time to start investigating what was going on. I will not enumerate all the steps and tests I did, but only comment that I get to download and debug the source code of Machine Learning.Net. Although as usually happens in these cases, the solution was much simpler. Just look at the following lines of code

I2

You have to download a NuGet package to use LightBGM!

15 seconds later I had everything up and running to try the new Trainer!

I3

Happy Coding!

Greetings @ Toronto

El Bruno

References

My Posts

Advertisements

#MLNET – Error ‘Entry point ‘Trainers.LightGbmClassifier’ not found’ y como solucionarlo

Buenas!

Tip de lunes con la esperanza de ahorrarle un poco de tiempo si alguien se encuentra este error

I1

System.InvalidOperationException: ‘Entry point ‘Trainers.LightGbmClassifier’ not found’

Antes de seguir un poco de contexto. En la version actual de Machine Learning.Net [0.3.0] tenemos varios nuevos trainers y uno de ellos es LightGBM. Este framework nos permite realizar tareas supervisadas de clasificación en modo binario, multiples categorías y varias opciones mas. En el post de introducción a la version 0.3.0 de ML.Net se presenta el mismo, y además con una definición bastante interesante

The definition for LightGBM in ‘Machine Learning lingo’ is: A high-performance gradient boosting framework based on decision tree algorithms.

Pues bien, después de elegir un set de datos de prueba que conozco bastante bien, me decidi a probar este trainer. Una vez que hube creado toda la infraestructura necesaria para utilizar el framework, me encontré con el error que menciono al principio del post. Y no me gusto nada. Si conoces un poco de Windows, sabes que los errores de tipo [Entry point], nunca auguran nada bueno.

Pues bien, fue el momento de comenzar a investigar que pasaba. No voy a enumerar todos los pasos y pruebas que hice, pero solo comentare que llegue a descargar y depurar el source code de Machine Learning.Net. Aunque como suele suceder en estos casos, la solución era mucho más simple. Solo hay que ver las siguientes líneas de código

I2

Hay que descargar un paquete NuGet para utilizar LightBGM!

15 segundos después ya tenia todo up and running para probar el nuevo trainer!

I3

Happy Coding!

Greetings @ Toronto

El Bruno

References

My Posts

#VS2017– Azure WebApi App, Amazon Alexa Skills and the error “I’m not sure what went wrong” (you get tired of listening!)

Hi!

Just over a month ago Amazon officially launched its Amazon Echo line in Canada. In Avanade we will host an event specially dedicated to Artificial Intelligence and Voice Interfaces. And now that the holiday season has finished, it’s time to share some of the lessons learned over the last few months working with Alexa Skills.

Using simple words to describe how an Alexa Skill works, we could say that the Skill allows us to connect the audio processing of Amazon Echo with an HTTP service. By default, Amazon proposes us to use an AWS Lambda. If we switch to the Azure world, we have several options, for example, Use a Azure Function or a website in a AppService.

I1

I choose the 2nd option and then it was time to configure my controllers to be compatible with the POST requests made by my Amazon Skill.

Note: If you work with .net there is a NuGet package for this, AlexaSkillsKit.Net

After configuring my Intents, Slots and the operation of my Skill, it’s time to test it. In the most minimalist tester in the history of the Internet, everything worked OK.

I2

The HTTP requests my Alexa skills performed communicated correctly with my App Service in Azure. Even in the new Test Simulator (Beta) everything worked properly.

I3

Note: The 2nd one is a really good Test environment. The default test interface is, like saying it without offending anyone, “very simple”.

Well, everything is working perfectly until the time to try it on the Amazon Echo. Every time I tested it, Alexa told me the following phrase:

“I’m not sure what went wrong”

I4

I spent a lot of time trying to find the error. I enabled all kinds of traces, both in Azure and in the Alexa Skills, and I could not find anything that works bad. At those moments I usually take advantage to go running and to clear my mind a little bit, but with the weather these days, I had to relax in other ways.

I5

The solution arrived to me when I was showing my girl and my children, how to program an Alexa Skill. I was thinking of creating something with Scratch so that my children can create their own conversations/skills with Alexa, when I realized that:

I had configured my device with Language English (Canada) and when you create a Skill, by default it is created in English (U. S).

I6

Note: It is still English, but you see that Amazon friends are sensitive about it 😀 Really, there are very clear reasons why skills have to be identified by country, legal issues, copyright and more.

Well, right now I have 2 solutions for my skills to work

  • Change the location of the device to United States
  • Add a new Language to my Alexa Skill

I7

Obviously the best is the 2nd option. And, while it is not as trivial as it seems, once my skill supports the new language, I no longer have to deal with the beautiful phrase

“I’m not sure what went wrong”

And finally I was able to continue testing my skills in the device!

In next posts I will comment on the quick way in which I have learned to have a Skill with multiple languages.

Happy Coding!

Greetings @ Toronto

El Bruno

References

#VS2017– Azure WebApi App, Amazon Alexa Skills y el error “I’m not sure what went wrong” (te cansas de escucharlo!)

Buenas!

Hace poco mas de un mes Amazon lanzo oficialmente su línea de Amazon Echo en Canada. En Avanade tendremos un evento especialmente dedicado a temas de Artificial Intelligence y Voice Interfaces. Y, ahora que ya ha pasado la época de fiestas, creo que es momento para compartir algunas de las lecciones aprendidas durante los últimos meses trabajando con Alexa Skills.

Simplificando mucho el funcionamiento de una Skill, podríamos decir que la misma es la que nos permite conectar el procesamiento de audio de Amazon Echo con un servicio HTTP. Por defecto Amazon nos propone utilizar una AWS Lambda. Si cambiamos al mundo de Azure, tenemos varias opciones, por ejemplo, utilizar una Azure Function o un website en una AppService.

I1

Yo opte por esta 2da opción y luego llegó el momento de configurar mis Controllers para que sean compatibles con las peticiones POST que realiza mi Amazon Skill.

Nota: Si trabajas con .Net hay un NuGet package para esto, AlexaSkillsKit.Net

Luego de configurar mis Intents, Slots y cerrar el funcionamiento de mi Skill, llego el momento de probarlo. En el tester mas minimalista de la historia de internet todo funcionaba OK.

I2

Las peticiones que realizaba mi Alexa Skills se comunicaban correctamente con mi App Service en Azure. Inclusive en el nuevo Test Simulator (Beta) todo funcionaba correctamente.

I3

Nota: El 2do es un simulador de test serio. La interfaz por defecto de test es, como decirlo sin ofender a nadie, “muy simple”.

Pues bien, todo funcionando perfectamente hasta el momento de probarlo en el Amazon Echo. Cada vez que lo probaba, Alexa me decía la siguiente frase:

“I’m not sure what went wrong”

I4

Estuve bastante tiempo intentando encontrar el error. Habilite todo tipo de trazas, tanto en Azure como en las Skills, y no pude encontrar nada que funcione mal. En esos momentos suelo aprovechar para salir a correr y despejarme un poco, aunque con el frio que hizo en estos días, tuve que relajarme de otras formas.

I5

La solución llego cuando estaba mostrándole a mi chica y a mis enanos, como programar una Skill. Estuve pensado crear algo con Scratch para que mis enanos puedan crear sus propias conversaciones / Skills con Alexa, cuando me di cuenta que:

Tenía configurado mi device con Language English (Canada) y que cuando se crea una Skill, por defecto la misma se crea en English (U.S).

I6

Nota: Sigue siendo English, pero se ve que los amigos de Amazon, son delicados al respecto 😀 Hay motivos muy claros del porque las Skills tienen que estar identificadas por país, cuestiones legales, de copyright y otros.

Pues bien, en este momento tengo 2 soluciones para que mis Skills funcionen

  • Cambiar la ubicación del device a United States
  • Agregar un nuevo Language a mi Alexa Skill

I7

Obviamente lo mejor es la 2da opción. Y, si bien no es tan trivial como parece, una vez que mi Skill soporta el nuevo lenguaje, ya no tengo que lidiar mas con la hermosa frase

“I’m not sure what went wrong”

¡Y por fin pude seguir probando mis Skills en el device!

En próximos posts comentare la forma rápida en la que he aprendido a tener una Skill con múltiples lenguajes.

Happy Coding!

Saludos @ Burlington

El Bruno

References

#SurfacePro – How to update #SurfaceDock firmware and avoid a nice and shiny brick

Hi!

Those who saw my on events or demos, knows that I use my Microsoft Surface Pro 4 for this. I shared my opinion on this device several times, it is great to work with PowerPoint or Excel or office tasks. However, I must also share that it’s not good at all for serious development work like Hololens which involves Visual Studio 2017 and Unity3D.

During the past few months, between client sessions and Hololens demos, I lost my Surface Pro 4 charger. Most of the times, this is a bad news; for me is the perfect reason to get a shinny Surface Dock. $250 which seems to be an amazing investment if you are using a device like the SurPro a lot.

So, after some waiting time for the package delivery (you know Canada, big distances, FedEx people avoid bears attacks, and more), I finally get my device. However, after a couple of required updates, I find out a very bad news: the additional screens feature is not working.

Clipboard01.png

Note: Here I must admit the use of a lot of betas, insiders, and testing software which not always works fine. On top of this, the Surface Dock was not very well received at the beginning because it went into “Brick mode” for several users.

So, the 1st idea in my mind was: Now I got a nice $250 brick; of course this was now a good moment for me.

Lucky for us, the Microsoft Devices team not only creates amazing hardware, they also have a very complete online database. There I found the Microsoft Surface Dock Update application. This app updates the device firmware, which seems to be a good idea after all the problems with the device. The app is created for “simple users” like me, take a look at this screenshots:

3 minutes later mis Surface Dock was working fine!

Back to Powerpoint mode 😀

Greetings @ Burlington

El Bruno

References

#SurfacePro – Como actualizar el #SurfaceDock y no quedarse con un ladrillo muy elegante

Hola!

Aquellos que me han visto en eventos o demos saben que para estas ocasiones utilizo mi Microsoft Surface Pro 4. Mas de una vez he comentado que este device es bueno para demos, para trabajar con PowerPoint y Excel. Dicho esto, también hay que comentar que no soporta ningún trabajo serio como, por ejemplo, Visual Studio 2017 y Unity3D para proyectos para Hololens.

Durante estos últimos días, entre tanta sesión para cliente y demos de Hololens, tuve la desgracia de perder el cargador de mi SurPro. Esto, que usualmente puede parecer una mala noticia, fue la excusa justa para comprarme un Surface Dock. Unos $250 que a primera vista parecen una inversión genial.

Pues bien, cuál fue mi susto cuando al conectar mi surface al cargador nuevo, el mismo no proyecta.

Clipboard01.png

Nota: Aquí hay un trasfondo interesante de betas, insiders, y software en modo de prueba que no siempre funciona correctamente. Además, el Dock tuvo bastante mala fama en sus principios por quedarse en modo Brick.

Lo primero que se me cruzo por la mente, era que me había quedado con un pisapapeles de $250, cosa que no me agrado mucho. Era momento de buscar y ver que tipo de soluciones existen.

Pues bien, existe una aplicación, llamada Microsoft Surface Dock Update, que se encarga de actualizar el firmware para el Dock. Y después de su poca historia, creo que un firmware Update es conveniente. La aplicación está pensada para usuarios cortitos como yo, he aquí un par de screenshots:

3 minutos después mi Surface Dock está funcionando perfectamente!

Back to Powerpoint mode 😀

Saludos @ Burlington

El Bruno

References