Last week, i did the first post on ML.NET covering the basics and its various steps required to get a model up and use it – I will cover how to go about preparing, coding and using them in the later posts.
Two of the key steps involved are
1. Loading the data
2. Transforming the data
3. Training and Generating the model
4. Using the trained model
In this tutorial, we will focus on getting the environment in your computer correct so that we can prepare and start doing ML.NET. Kindly note that this tutorial is written for Windows Environment. As of time of writing, i am on Windows 10 with Visual Studio 2017 Enterprise.
Installing MLNET
I attempted to start by calling the command (You can start by going to Command Prompt and type straight away)
mlnet
but i was thrown with the error –
'mlnet' is not recognized as an internal or external command, operable program or batch file.
I recognized that i do not have mlnet installed. I then run
dotnet tool install -g mlnet
and what? –
No executable found matching command "dotnet-tool"
Based on some search, concluded it is due to the fact that dotnet tool is only available in .NET CORE 2.1.3 onwards and I am running – 2.1.2
Went on to https://dotnet.microsoft.com/download/dotnet-core/2.2 and downloaded dotnet core 2.2 (as of time of writing .net 3 is in preview and hence I did not use yet). Do note that the release was not compatible with VS 2017 and if you are using VS 17, there is another version for you to download.
After installing, restart your computer and let it install again by running the command.
dotnet tool install -g mlnet
Note that you have to wait. Nothing will happen for some time and it will just magically works after that!
Posts-
ML.NET Introduction – Introduction
ML.NET Part 2 – Machine Learning – Environment setup
One of the good things in Microsoft Powerpoint 2010 is the ability to insert offline and online videos into your powerpoint presentation easily. Do look at this if you are wondering how to achieve it.
One of the common questions are what are the different format available,
Note Videos in the .mp4, .mov, and .qt formats can be played in PowerPoint
if the Apple QuickTime player is installed.
File format Extension More information Adobe Flash Media .swf Flash Video This file format is generally used to deliver video over the Internet using the Adobe Flash Player. Windows Media file .asf Advanced Streaming Format This file format stores synchronized multimedia data and can be used to stream audio and video content, images, and script commands over a network. Windows Video file .avi Audio Video Interleave This is a multimedia file format for storing sound and moving pictures in Microsoft Resource Interchange File Format (RIFF) format. It is one of the most common formats because audio or video content that is compressed with a wide variety of codecs (codec: An abbreviation for compressor/decompressor. Software or hardware used to compress and decompress digital media.) can be stored in an .avi file. Movie file .mpg or .mpeg Moving Picture Experts Group This is an evolving set of standards for video and audio compression developed by the Moving Picture Experts Group. This file format was designed specifically for use with Video-CD and CD-i media. Windows Media Video file .wmv Windows Media Video This file format compresses audio and video by using the Windows Media Video codec (codec: An abbreviation for compressor/decompressor. Software or hardware used to compress and decompress digital media.), a tightly compressed format that requires a minimal amount of storage space on your computer’s hard disk. Note The third-party products discussed in this article are manufactured by vendors independent of Microsoft; we make no warranty, implied or otherwise, regarding the performance or reliability of
these products.
To start, I would like to first say that although many PHP developers usually recommend MySQL as the accompanying database for PHP, it is not difficult to interface PHP with other databases such as SQL Azure, Microsoft’s cloud-based relational database offering.
PHP connects with SQL Azure in a similar manner as how it does with Microsoft SQL Server, ie through an interface known as the Open Database Connectivity (ODBC), which is actually the standard software interface for accessing databases. Each platform and database has its own implementation following the ODBC standard but for this tutorial, I’ll focus on PHP.
There are a few ways to connect your php site to MS SQL but the 2 main approaches are as shown in Figure 1.0.
1. Using the “php_mssql.dll” php extension requiring MS SQL Client Tools installed (Figure 1.0, right column).
2. Using the “sqlsrv” driver (“Microsoft Drivers for PHP for SQL Server”) requiring MS SQL Native Client installed (Figure 1.0, left column)
I will be using the 2nd approach for this tutorial because it supports both PHP 5.2 and 5.3, unlike the 1st which is not available for PHP 5.3.
Microsoft Drivers for PHP for SQL Server
As of 1 February 2011, the latest version of the driver is version 2.0.1 (30 November 2010).
You can grab it from http://www.microsoft.com/downloads/en/details.aspx?FamilyID=80e44913-24b4-4113-8807-caae6cf2ca05
Once you have installed the drivers, you should see the following in the installation directory:
We will be using the “php_sqlsrv_53_nts_vc9.dll” library for this tutorial.
• “php_sqlsrv” –> Driver name
• “53” –> PHP 5.3
• “nts” –> Non-thread safe (The PHP FastCGI Handler of IIS handles thread-safe operations for PHP, use the non-thread safe version to reduce performance issues)
• “vc9” –> Library compiled using VS 2008, use vc6 (VS 6) if PHP is running on Apache
Configure PHP
1. Copy “php_sqlsrv_53_nts_vc9.dll” into the “ext” folder of your php installation directory.
2. Edit the php.ini to include the library
Microsoft SQL Server 2008 R2 Native Client
In order for the PHP for SQL Server Drivers to work, the necessary SQL Server ODBC drivers must be installed on the web server.
The version of the ODBC driver needed for SQL Azure comes with the SQL Server 2008 R2 Native Client.
You can grab it from http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52
PHP Syntax
After all the preparation and configuration, here comes the actual thing -> Coding!
This tutorial showcases how to do simple CRUD (Create, Retrieve, Update, Delete) commands.
1. Connect to Database:
$serverName = “servername.database.windows.net”;
$connInfo = array(“UID”=>”username@servername”,
“PWD”=>”password”,
“Database”=>”databasename”);
$conn = sqlsrv_connect($serverName, $connInfo);
2. Insert data to Database (taking data from a html form text field):
$comment = $_POST[“txtComment”];
$comm = “INSERT INTO commentsqlazure (commentContent) VALUES (?)”;
$stmt = sqlsrv_prepare($conn, $comm, array(&$comment));
$result = sqlsrv_execute($stmt);
3. Update data in Database:
$Id = $_POST[“txtUpdateId”];
$comment = $_POST[“txtUpdateComment”];
$comm = “UPDATE commentsqlazure SET commentContent = ? WHERE id = ?”;
$stmt = sqlsrv_prepare($conn, $comm, array(&$comment, &$Id));
$result = sqlsrv_execute($stmt);
4. Remove data from Database:
$Id = $_POST[“txtRemoveId”];
$comm = “DELETE FROM commentsqlazure WHERE id = ?”;
$stmt = sqlsrv_prepare($conn, $comm, array(&$Id));
$result = sqlsrv_execute($stmt);
5. Retrieve data from Database:
$comm = “SELECT id, commentContent FROM commentsqlazure”;
$stmt = sqlsrv_query($conn, $comm);
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
echo $row[“id”].” “.$row[“commentContent”].”
“;
}
6. Close connection and release resources:
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
You can download the project file from here.
http://cid-29f099c37b76ca59.office.live.com/browse.aspx/Blog/Code%20Guide/SQL%20Azure?uc=1
Please take note that you have to change the Server Name, Username, Password at the connection string to make this work. You should run the following script to the table first.
http://cid-29f099c37b76ca59.office.live.com/self.aspx/Blog/Code%20Guide/SQL%20Azure/SQLAzureConnection.sql
Credit to Luke Ng.
Chirs Chin, Developer Marketing Director, Microsoft Singapore came to MSP (Microsoft Student Partner) meet on Saturday to give us a quick talk on Windows Mobile 6.5 (http://wmdevasia.wordpress.com/2009/08/22/aug-22nd-2009/), abit on Windows Mobile Marketplace and asked us to submit applications for certification if we can. Certainly, he got me excited and right after my exam on Wednesday afternoon, I begin to develop my first Windows Mobile Application. As a student, we should try everything. :p
I posted it on my facebook and twitter and it seems like it gotten some attention from my friends. Some of my friends, my classmates and friends outside, asked me whats the difference in developing a client-side application and mobile application, I will say beside the idea that should be generated is a bit different, the rest are the same. I will be covering this later.
On Thursday night, Microsoft Singapore has a Mix-It-Up event and the speaker is Chris as well. Went down and listen what he has to present and what others are presenting. A group of students and 2 companies presented their product. I am really impressed by what the students and HNL had done. =)
Let me point out some of the differences here.
1. The normal application we are developing on VS08, we normally use .Net framework 3.5 but for a windows mobile application, we use .Net Compact framework 3.5 ( http://en.wikipedia.org/wiki/.NET_Compact_Framework )
2. Can we develop a silverlight application on Windows Mobile since silverlight is cross platform? At the moment, its a no. I believe something is coming out soon though ( After doing a search on bing, http://www.brighthand.com/default.asp?newsID=13870 )
3. I am developer, what is the link to Windows Mobile Marketplace?
http://developer.windowsmobile.com/Marketplace.aspx?wa=wsignin1.0
4. Where can I find applications which I can buy for my Windows Mobile phone?
http://www.microsoft.com/windowsmobile/catalog/cataloghome.aspx
5. I want to start developing. Where is the SDK?
http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en
You might want to have a look at the toolkit as well
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=20686a1d-97a8-4f80-bc6a-ae010e085a6e
Hopefully my application I am developing will be a success though I am facing some difficulties now. =)
Follow me at @limguohong