{"id":23424,"date":"2019-06-11T10:16:17","date_gmt":"2019-06-11T17:16:17","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=23424"},"modified":"2019-06-11T11:16:42","modified_gmt":"2019-06-11T18:16:42","slug":"announcing-ml-net-1-1-and-model-builder-updates-machine-learning-for-net","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-ml-net-1-1-and-model-builder-updates-machine-learning-for-net\/","title":{"rendered":"Announcing ML.NET 1.1 and Model Builder updates (Machine Learning for .NET)"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/1712635\/55659629-53ea3380-57b7-11e9-8029-5576f80bc354.png\" alt=\"alt text\" title=\"ML.NET logo\" style=\"max-width:100%;\"><\/p>\n<p><a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> is an open-source and cross-platform machine learning framework (Windows, Linux, macOS) for .NET developers.<\/p>\n<p><a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> offers Model Builder <a href=\"https:\/\/aka.ms\/modelbuilder\" rel=\"nofollow\">Model Builder<\/a> (a simple UI tool for Visual Studio) and <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/machine-learning\/how-to-guides\/install-ml-net-cli\" rel=\"nofollow\">CLI<\/a> to make it super easy to build custom ML Models using AutoML.<\/p>\n<p>Using <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a>, developers can leverage their existing tools and skillsets to develop and infuse custom AI into their applications by creating custom machine learning models for common scenarios like Sentiment Analysis, Recommendation, Image Classification and more!.<\/p>\n<p>Today we\u2019re announcing <strong><a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> 1.1<\/strong> which includes updates for <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> (<a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-ml-net-1-0\/\" rel=\"nofollow\">v1.0 was released on May 2019<\/a>) and <strong>Model Builder<\/strong> for Visual Studio.<\/p>\n<p>Following are the key highlights:<\/p>\n<h2><a id=\"user-content-mlnet-11-timeframe-updates\" class=\"anchor\" aria-hidden=\"true\" href=\"#mlnet-11-timeframe-updates\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"><\/path><\/svg><\/a>ML.NET updates<\/h2>\n<ul>\n<li>\n<p><strong>Added support for in-memory &#8216;image type&#8217; in IDataview:<\/strong> In previous versions of ML.NET whenever you used images in a model (such as when scoring a TensorFlow or ONNX model using images) you needed to load the images from files placed on a drive by specifying file paths. In ML.NET 1.1 you can now load in-memory images and process them directly.<\/p>\n<ul>\n<li>\n<p>For further learning read this &#8216;end-to-end scenario&#8217; <a href=\"https:\/\/devblogs.microsoft.com\/cesardelatorre\/run-with-ml-net-c-code-a-tensorflow-model-exported-from-azure-cognitive-services-custom-vision\/\" rel=\"nofollow\">blog post describing a sample ASP.NET Core web app<\/a> where the images are used in-memory. Images used in the sample app are directly received through Http requests, then processed by a <em>TensorFlow<\/em> model with ML.NET API code.<\/p>\n<\/li>\n<li>\n<p>Additional samples using in-memory images:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/dotnet\/machinelearning\/blob\/02a857a7646188fec2d1cba5e187a6c9d0838e23\/docs\/samples\/Microsoft.ML.Samples\/Dynamic\/Transforms\/ImageAnalytics\/ConvertToGrayScaleInMemory.cs\">Sample to convert gray scale image in-Memory<\/a> |  <a href=\"https:\/\/github.com\/dotnet\/machinelearning\/blob\/02a857a7646188fec2d1cba5e187a6c9d0838e23\/docs\/samples\/Microsoft.ML.Samples\/Dynamic\/Transforms\/CustomMappingWithInMemoryCustomType.cs\">Sample for custom mapping with in-memory using custom type<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<br><\/p>\n<p><strong>New Anomaly Detection algorithm<\/strong> (<em>in preview<\/em>): Added a new Anomaly Detection algorithm named <code>SrCnnAnomalyDetection<\/code> to the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.ML.TimeSeries\/\" rel=\"nofollow\">Time Series NuGet package<\/a>. This algorithm based on a <em>Super-Resolution Deep Convolutional Network<\/em>. One of the advantages of this algorithm is that it does not require any prior training. This contribution comes from the <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/cognitive-services\/anomaly-detector\/\" rel=\"nofollow\">Azure Anomaly Detector<\/a> team.<\/p>\n<p>For further learning see this <a href=\"https:\/\/github.com\/dotnet\/machinelearning\/blob\/master\/docs\/samples\/Microsoft.ML.Samples\/Dynamic\/Transforms\/TimeSeries\/DetectAnomalyBySrCnn.cs\">sample code for anomaly detection<\/a><\/p>\n<\/li>\n<li>\n<p><strong>New Time Series Forecasting components<\/strong> (<em>in preview<\/em>): This new feature added to the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.ML.TimeSeries\/\" rel=\"nofollow\">Time Series NuGet package<\/a> allows you to implement a time series forecasting model based on <code>Singular Spectrum Analysis(SSA)<\/code>. It is named in ML.NET as <code>AdaptiveSingularSpectrumSequenceModeler<\/code>. This type of time series forecasting prediction is very useful when your data has some kind of periodic component where events have a causal relationship and they happen (or miss to happen) in some point of time. For example, sales forecasts impacted by different seassons (Holiday-season, sales timeframe, weekends, etc.) or any other type of data where the time component is important.<\/p>\n<p>For further learning see this <a href=\"https:\/\/github.com\/dotnet\/machinelearning\/tree\/master\/docs\/samples\/Microsoft.ML.Samples\/Dynamic\/Transforms\/TimeSeries\/Forecasting.cs\">sample code for forecasting<\/a><\/p>\n<\/li>\n<li>\n<p><strong>Additional enhancements and remarks<\/strong>:<\/p>\n<ul>\n<li>Upgrade internal TensorFlow version from 1.12.0 to 1.13.1<\/li>\n<li>Microsoft.ML.TensorFlow NuGet package has been upgraded from 0.12 to 0.13 (preview).<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Bug fixing<\/strong>: For further learning on bug fixes released on v1.1 go to the <a href=\"https:\/\/github.com\/dotnet\/machinelearning\/blob\/master\/docs\/release-notes\/1.1.0\/release-1.1.0.md#bug-fixes\">ML.NET v1.1 Release Notes<\/a><\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"user-content-model-builder-updates\" class=\"anchor\" aria-hidden=\"true\" href=\"#model-builder-updates\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"><\/path><\/svg><\/a>Model Builder updates<\/h2>\n<p>This release of <a href=\"https:\/\/aka.ms\/modelbuilder\" rel=\"nofollow\">Model Builder<\/a> adds support for a new scenario and address many customer reported issues.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/1712635\/59290846-5db46b00-8c2e-11e9-9086-152e11f80656.png\" alt=\"alt text\" title=\"Model Builder\" style=\"max-width:100%;\"><\/p>\n<ul>\n<li>\n<p><strong>New Issue Classification Template<\/strong>:\nThis scenario enables a user to add support for classifying tabular data into many classes. This template uses multi-class classification which can be used for classifying data into 3+ categories. E.g You can use this template for predicting GitHub issues, customer support ticket routing, classifying emails into different categories and many more scenarios.<\/p>\n<\/li>\n<li>\n<p><strong>Improve Evaluate step<\/strong>:\nEvaluate step now shows more correct information about the top models explored. This was the most commonly requested fix reported by customers.<\/p>\n<\/li>\n<li>\n<p><strong>Improve code generation step<\/strong>:\nImprove instructions for easily consuming generated code by referring to the project names.<\/p>\n<\/li>\n<li>\n<p><strong>Address customer feedback<\/strong>:\nThis release also address many customer reported issues around installation errors, usability feedback and stability improvements and more.<\/p>\n<\/li>\n<\/ul>\n<h2><a id=\"user-content-planning-to-go-to-production\" class=\"anchor\" aria-hidden=\"true\" href=\"#planning-to-go-to-production\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"><\/path><\/svg><\/a>Planning to go to production?<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/1712635\/55659646-61072280-57b7-11e9-9a01-70cb0184e007.png\" alt=\"alt text\" title=\"Going to production ilustration\" style=\"max-width:100%;\"><\/p>\n<p>If you are using <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> in your app and looking to go into production, you can talk to an engineer on the <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> team to:<\/p>\n<ul>\n<li>Get help implementing <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> successfully in your application.<\/li>\n<li>Provide feedback about <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a>.<\/li>\n<li>Demo your app and potentially <a href=\"https:\/\/dotnet.microsoft.com\/apps\/machinelearning-ai\/ml-dotnet\/customers\" rel=\"nofollow\">have it featured on the ML.NET homepage<\/a>, .NET Blog, or other Microsoft channel.<\/li>\n<\/ul>\n<p>Fill out <a href=\"http:\/\/survey.usabilla.com\/live\/s\/5c87fbc101634d1357359f7b\" rel=\"nofollow\">this form<\/a> and leave your contact information at the end if you\u2019d like someone from the <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> team to contact you.<\/p>\n<h2><a id=\"user-content-get-started-with-mlnet\" class=\"anchor\" aria-hidden=\"true\" href=\"#get-started-with-mlnet\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"><\/path><\/svg><\/a>Get started with ML.NET and Model Builder for Visual Studio<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/1712635\/55659651-67959a00-57b7-11e9-8916-408bd841b1bf.png\" alt=\"alt text\" title=\"Get started icon\" style=\"max-width:100%;\"><\/p>\n<p>Get started with <a href=\"https:\/\/www.microsoft.com\/net\/learn\/apps\/machine-learning-and-ai\/ml-dotnet\/get-started\" rel=\"nofollow\">ML.NET here<\/a>.<\/p>\n<p>Get started with <a href=\"https:\/\/aka.ms\/modelbuilder\" rel=\"nofollow\">Model Builder here<\/a>.<\/p>\n<p>Next, going further explore some other resources:<\/p>\n<ul>\n<li>Tutorials and resources at the <a href=\"https:\/\/docs.microsoft.com\/dotnet\/machine-learning\/\" rel=\"nofollow\">Microsoft Docs ML.NET Guide<\/a><\/li>\n<li>Sample apps using ML.NET at the <a href=\"https:\/\/github.com\/dotnet\/machinelearning-samples\">machinelearning-samples GitHub repo<\/a><\/li>\n<li><a href=\"https:\/\/aka.ms\/modelbuilder\" rel=\"nofollow\">Model Builder feedback<\/a><\/li>\n<\/ul>\n<p>Thanks and happy coding with <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a>!<\/p>\n<p>The <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> Team.<\/p>\n<p><em>This blog was authored by Cesar de la Torre, Pranav Rastogi plus additional contributions of the <a href=\"https:\/\/dot.net\/ml\" rel=\"nofollow\">ML.NET<\/a> team<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ML.NET is an open-source and cross-platform machine learning framework (Windows, Linux, macOS) for .NET developers. ML.NET offers Model Builder Model Builder (a simple UI tool for Visual Studio) and CLI to make it super easy to build custom ML Models using AutoML. Using ML.NET, developers can leverage their existing tools and skillsets to develop and [&hellip;]<\/p>\n","protected":false},"author":362,"featured_media":21740,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[691],"tags":[],"class_list":["post-23424","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ml-dotnet"],"acf":[],"blog_post_summary":"<p>ML.NET is an open-source and cross-platform machine learning framework (Windows, Linux, macOS) for .NET developers. ML.NET offers Model Builder Model Builder (a simple UI tool for Visual Studio) and CLI to make it super easy to build custom ML Models using AutoML. Using ML.NET, developers can leverage their existing tools and skillsets to develop and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/23424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/362"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=23424"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/23424\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/21740"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=23424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=23424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=23424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}