ML.NET 更新

點擊上方藍字

關注我們

(本文閱讀時間:5分鐘)

ML.NET是一款面向.NET開發人員的開源,跨平臺機器學習框架,可以將自定義機器學習集成到.NET應用中。我們很開心地向您介紹我們在過去幾個月中所做的工作。

  • ML.NET:

    https://dotnet.microsoft.com/en-us/apps/machinelearning-ai/ml-dotnet?ocid=AID3045631

ba5ffe6968906976f91e7260bed273a5.png

AutoML更新?

ea5bbfa9f9f168e3801b98072f5408b5.png

自動化機器學習(AutoML)通過更容易地為您適合的場景和數據集找到最佳算法,從而使該過程自動化。AutoML是支持模型生成器和ML.NET CLI訓練經驗的后端。去年,我們宣布在我們的模型生成器和基于神經網絡智能 (NNI) 的 ML.NET CLI 工具以及 Microsoft Research 的快速輕量級 AutoML (FLAML) 技術中對 AutoML 實施進行了更新。與之前的解決方案相比,這些更新提供了一些好處和改進,包括:

  • 探索的模型數量增加。

  • 提高了超時錯誤率。

  • 改進的性能指標(例如,準確性和r平方)。

直到最近,您還只能在我們的工具中利用這些AutoML改進。

我們很興奮地宣布,我們已經將AutoML的NNI / FLAML實現集成到ML.NET框架中,這樣你就可以從代碼優先的體驗中使用它們。

要開始使用AutoML API,請使用ML.NET daily feed安裝Microsoft.ML和Microsoft.ML.Auto NuGet包的微軟最新的預發布版本。

  • 神經網絡智能 (NNI):

    https://github.com/Microsoft/nni

  • 快速輕量級 AutoML (FLAML):

    https://github.com/Microsoft/flaml

895095fc35883f2f9e4009d35e115724.png

實驗的API?

2fe7d132cd91af1e3764edcdf5b4e26d.png

實驗是訓練或試驗的集合。每次試驗都會產生關于自身的信息,例如:

  • 評估指標:用于評估模型的預測能力的指標。

  • 流水線:用于訓練模型的算法和超參數。

實驗API為AutoML提供了一組默認值,使您更容易將其添加到訓練管道中。

// 配置AutoML管道
var experimentPipeline =    dataPrepPipeline.Append(mlContext.Auto().Regression(labelColumnName: "fare_amount"));
// 配置實驗
var experiment = mlContext.Auto().CreateExperiment().SetPipeline(experimentPipeline).SetTrainingTimeInSeconds(50).SetDataset(trainTestSplit.TrainSet, validateTestSplit.TrainSet).SetEvaluateMetric(RegressionMetric.RSquared, "fare_amount", "Score");
// 運行實驗
var result = await experiment.Run();

在這個代碼片段中,dataprepipeline是一系列轉換,用于將數據轉換為適合訓練的格式。訓練回歸模型的AutoML組件被附加到該管道上。同樣的概念也適用于其他受支持的場景,比如分類。

當您使用已定義的訓練管道創建實驗時,您可以自定義的設置包括訓練時間、訓練和驗證集以及優化的評估指標。

定義了管道和實驗之后,調用Run方法開始訓練。

搜索空間和可清除估計器

如果需要對超參數搜索空間有更多的控制,可以定義搜索空間,并使用可清除的估計器將其添加到訓練管道中。

// 配置搜索空間
var searchSpace = new SearchSpace<LgbmOption>();// 初始化估計器管道
var sweepingEstimatorPipeline =dataPrepPipeline.Append(mlContext.Auto().CreateSweepableEstimator((context, param) =>{var option = new LightGbmRegressionTrainer.Options(){NumberOfLeaves = param.NumberOfLeaves,NumberOfIterations = param.NumberOfTrees,MinimumExampleCountPerLeaf = param.MinimumExampleCountPerLeaf,LearningRate = param.LearningRate,LabelColumnName = "fare_amount",FeatureColumnName = "Features",HandleMissingValue = true};return context.Regression.Trainers.LightGbm(option);}, searchSpace));

搜索空間定義了用于搜索的超參數范圍。

可清理評估器使您能夠像使用其他評估器一樣使用ML.NET管道中的搜索空間。

要創建和運行實驗,您需要使用CreateExperiment和run方法的相同過程。

0e3146366bfe5c57867ef0b264d78fdc.png

模型生成器和ML.NET CLI更新

f6c310d28e31eb4d9aba91be045f2d1a.png

我們已經對模型生成器和ML.NET CLI做了幾個更新。其中我想強調的兩個是:

  • 時間序列預測場景的模型生成器

  • .NET CLI的新版本

時間序列預測場景(預覽)

時間序列預測是在與時間相關的觀測中確定模式,并對未來幾個時期作出預測的過程。現實世界的用例有:

  • 預測產品需求

  • 能源消費預測

在ML.NET中,選擇時間序列預測的訓練師并不太難,因為你只有一個選擇,ForecastBySsa。困難的部分在于找到參數,如分析的時間窗口和預測未來的距離。找到正確的參數是一個實驗過程,這是AutoML的一項出色工作。對我們的AutoML實現的更新使通過超參數進行智能搜索成為可能,從而簡化了訓練時間序列預測模型的過程。

作為這些努力的結果,我們很高興地與大家分享,您現在可以在模型生成器中訓練時間序列預測模型。

74fbae1cbc4eabc315d9250d974a03d1.png

下載或更新到模型生成器的最新版本,開始訓練您的時間序列預測模型。

ML.NET CLI的新版本

ML.NET CLI是我們的跨平臺.NET全局工具,它利用AutoML在運行Windows、MacOS和Linux的x64和ARM64設備上訓練機器學習模型。幾個月前,我們發布了ML.NET CLI的新版本,它帶來了:

  • .NET 6 支持

  • 支持 ARM64 架構

  • 新場景

  • 圖像分類(針對 x64 架構)

  • 建議

  • 預測

安裝 ML.NET CLI 并從命令行開始訓練模型。

  • ForecastBySsa:

    https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.ml.timeseriescatalog.forecastbyssa?view=ml-dotnet?ocid=AID3045631

  • 下載或更新到模型生成器的最新版本:

    https://docs.microsoft.com/zh-cn/dotnet/machine-learning/how-to-guides/install-model-builder?tabs=visual-studio-2019?ocid=AID3045631

  • 安裝 ML.NET CLI:

    https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/install-ml-net-cli?tabs=windows?ocid=AID3045631

f9d01798d606067bbcfeaa9a5ed8df39.png

Notebooks的鍵盤快捷鍵?

fddd61ad56125dfc87a9f86eacb54d80.png

Interactive Notebooks廣泛應用于數據科學和機器學習。它們對于數據探索和準備、實驗、模型解釋和教育都很有用。

去年10月,我們發布了基于.NET Interactive的Visual Studio Notebook Editor擴展。在過去的幾個月里,我們一直在改進性能和穩定性。

在我們的最新版本中,我們通過啟用鍵盤快捷鍵讓您無需離開鍵盤就能更輕松地工作。如果你以前使用過notebooks,你應該對其中的許多快捷方式很熟悉。

指令

K

向上移動焦點

J

向下移動焦點

A

在上面插入單元格

B

在下面插入單元格

DD

刪除單元格

Ctrl?+?Z

撤銷

Ctrl?+?S

保存

Ctrl?+?C

復制單元格

Ctrl?+?X

剪切單元格

Ctrl?+?V

粘貼單元格

L

切換行號

O

開關輸出

II

取消單元格執行

00

啟動內核

Ctrl?+?Shift?+?-

分割單元格

Ctrl+?Enter

執行/運行單元格

Shift?+?Enter

執行/運行單元格,并將焦點向下移動

表中的鍵是大寫的,但大寫不是必需的。

安裝最新版本的Notebook編輯器,并開始在Visual Studio中創建Notebook。

  • .NET Interactive:

    https://github.com/dotnet/interactive

  • Visual Studio Notebook Editor擴展:

    https://devblogs.microsoft.com/dotnet/ml-net-and-model-builder-october-updates/#notebook-editor-in-visual-studio?ocid=AID3045631

  • Notebook編輯器:

    https://marketplace.visualstudio.com/items?itemName=MLNET.notebook

02933a7e4a4f738fa0a6e7e70c38700e.png

ML.NET的下一個目標是什么??

2c803af5a936a12cd77f460566d983b9.png

我們正積極朝著路線圖中所概述的領域努力。

深度學習

幾個月前,我們分享了深度學習的計劃。該計劃的很大一部分圍繞著改善ONNX的消費體驗,并通過TorchSharp(一個提供對驅動PyTorch的庫的訪問的.NET庫)實現新的場景。我們在實現這一計劃方面取得的一些進展包括:

  • 為ONNX推斷啟用全局GPU標志。在此更新之前,當你想使用GPU對ONNX模型進行推斷時,ApplyOnnxModel轉換中的FallbackToCpu和GpuDeviceId標志沒有被保存為管道的一部分。因此,每次都必須安裝管道。我們已經使這些標志可作為MLContext的一部分訪問,因此您可以將它們保存為模型的一部分。

  • TorchSharp 面向 .NET 標準。TorchSharp最初的目標是.NET 5。作為我們將TorchSharp集成到ML.NET的工作的一部分,我們更新為TorchSharp面向.NET標準。

在接下來的幾周里,我們很高興與大家分享我們在TorchSharp與ML.NET集成方面取得的進展。

  • 路線圖:

    https://github.com/dotnet/machinelearning/blob/main/ROADMAP.md

  • 深度學習的計劃:

    https://github.com/dotnet/machinelearning/issues/5918

  • TorchSharp:

    https://github.com/dotnet/TorchSharp

9e288f78f202fdac919b80efaf013dd0.png

.NET DataFrame?

478ac33dd8ce12d29629bc9164cf7312.png

清晰且具有代表性的數據有助于提高模型的性能。因此,理解、清理和準備訓練數據的過程是機器學習工作流中的關鍵步驟。幾年前,我們在.NET中引入了DataFrame類型,作為Microsoft.Data.Analysis NuGet包的預覽。DataFrame仍處于預覽階段。我們理解使用工具來執行數據清理和處理任務是多么重要,并且已經開始組織和優先考慮反饋,因此我們解決了現有的穩定性和開發人員經驗痛點。這些反饋被組織成GitHub問題的一部分。

我們創建這個跟蹤問題是為了跟蹤和組織反饋。如果您有任何想要與我們分享的反饋,請在描述中為個別問題投票或在跟蹤問題中直接評論。

  • Microsoft.Data.Analysis:

    https://www.nuget.org/packages/Microsoft.Data.Analysis/

  • 跟蹤問題:

    https://github.com/dotnet/machinelearning/issues/6144

  • https://pkgs.dev.azure.com/dnceng/public/_packaging/MachineLearning/nuget/v3/index.json

70439065fc5242ca7f79b0161ce263e6.png

MLOps?

39cc6d07c306bb10cff6301725f4ed19.png

機器學習操作(MLOps)就像機器學習生命周期的DevOps。這包括模型部署和管理以及數據跟蹤,這有助于機器學習模型的產品化。我們一直在評估用ML.NET改善這種體驗的方法。

最近我們發表了一篇博客文章,指導你完成設置Azure機器學習數據集、使用ML.NET CLI訓練ML.NET模型以及使用Azure Devops配置再訓練管道的過程。要了解更多細節,請參閱《在Azure ML中訓練ML.NET模型》一文。

  • 《在Azure ML中訓練ML.NET模型》:

    https://devblogs.microsoft.com/dotnet/training-a-ml-dotnet-model-with-azure-ml/?ocid=AID3045631

f14ae20824959b812073020c4cc9b2ca.png

入門和資源

6b7f86f7fc4bd1262d5c8dc562a2c858.png

在微軟文檔中詳細了解 ML.NET、模型生成器和 ML.NET CLI。

如果您遇到任何問題,功能請求或反饋,請在GitHub上的ML.NET回購或ML.NET工具(Model Builder & ML.NET CLI)回購中提交問題。

  • 微軟文檔:

    https://docs.microsoft.com/en-us/dotnet/machine-learning/how-to-guides/install-ml-net-cli?tabs=windows?ocid=AID3045631

  • ML.NET回購或ML.NET工具(Model Builder & ML.NET CLI)回購:

    https://github.com/dotnet/machinelearning-modelbuilder

f6b8505a9fcefe42455108d085b3a3a7.png

謝謝你讀完了本文~相信你一定有一些感想、觀點、問題想要表達。歡迎在評論區暢所欲言,期待聽到你的“聲音”哦!

同時,喜歡的內容也不要忘記轉發給你的小伙伴們,謝謝你的支持!

d5bbd7be1a21948689060d87db933892.jpeg

長按識別二維碼

關注微軟中國MSDN

b6169173c654ce7baece63fef3c196b8.gif

點擊「閱讀原文」了解更多ML.NET信息~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284879.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Andriod之提示java.lang.SecurityException: getDataNetworkTypeForSubscriber導致程序奔潰

1、問題 修改targetSdkVersion 33 適配Android13后4G網絡環境被其它app拉起來提示這個異常 2、原因 我們定位到代碼在這行函數 telephonyManager.getNetworkType()Android11 的權限有關,由于缺少該權限導致無法訪問接口而提示安全異常 3、解決辦法 方法1:我們直接申請RE…

js-權威指南學習筆記7

第七章 數組 1、數組直接量的語法允許有可選的結尾的逗號&#xff0c;所以[ , , ]只有兩個元素而非三個。 2、調用構造函數Array&#xff08;&#xff09;創建數組時&#xff0c;傳入一個參數時表示指定數組的長度。 3、所有的索引都是屬性名&#xff0c;但只有在0~2^32-2之間的…

[譯]基于GPU的體渲染高級技術之raycasting算法

[譯]基于GPU的體渲染高級技術之raycasting算法 PS&#xff1a;我決定翻譯一下《Advanced Illumination Techniques for GPU-Based Volume Raycasting》。像我翻譯其他資料一樣&#xff0c;只按我的需要和觀點來翻譯。有的部分詳細翻譯&#xff0c;附加注解&#xff0c;有的部分…

【GIS風暴】什么是地理空間智能(Geospatial AI)?

人工智能(Artificial Intelligence,AI)已經成為新技術革命下一階段的熱詞,也成為未來產業的驅動力量。使用智能算法,數據分類和智能預測、分析,AI在很多領域將有一系列的工具來幫助解決問題。 將AI用于GIS這一具體的領域的分析、方法和解決方案,就叫地理空間智能(Geos…

JavaScript 清除圖片背景顏色 使之透明

主要JS /**清除圖片背景顏色 **/ function removeImgBg(img) {//背景顏色 白色const rgba [255, 255, 255, 255];// 容差大小const tolerance 60;var imgData null;const [r0, g0, b0, a0] rgba;var r, g, b, a;const canvas document.createElement(canvas);const cont…

day01基礎部分

一、python是什么樣的語言 1、編譯型語言和解釋型語言&#xff0c;python是解釋型語言 1.1、編譯型語言就是把源程序代碼一次性翻譯成機器碼&#xff08;計算機可識別的代碼&#xff09;&#xff0c;然后交給計算機去運行&#xff0c;一般需經過編譯&#xff08;compile&#x…

WPF 制作 Windows 屏保

分享如何使用WPF 制作 Windows 屏保WPF 制作 Windows 屏保作者&#xff1a;驚鏵原文鏈接&#xff1a;https://github.com/yanjinhuagood/ScreenSaver框架使用.NET452&#xff1b;Visual Studio 2019;項目使用 MIT 開源許可協議&#xff1b;更多效果可以通過GitHub[1]|碼云[2]下…

Java 定時線程

功能需求&#xff1a;項目啟動時&#xff0c;后天起一個定時線程&#xff0c;每個小時跑一次&#xff0c;查出數據發郵件出來。 主要使用 public void schedule(TimerTask task, long delay)task被安排在delay&#xff08;毫秒&#xff09;指定的時間后執行。 public void sche…

Windows 7 下右鍵發送到菜單項沒了

為什么80%的碼農都做不了架構師&#xff1f;>>> 問題描述: 突然有一天,Windows 7 下右鍵發送到菜單項沒了,如圖所示: 問題原因 黑人問號臉? 轉載于:https://my.oschina.net/taadis/blog/1591398

【ArcGIS微課1000例】0016:ArcGIS書簽操作(添加書簽、管理書簽)知多少?

書簽可以將地圖數據的某一視圖狀態保存起來,以便在使用時打開書簽,直接回到這一視圖狀態。可創建多個書簽以便快速回到不同的視圖狀態,也可以對書簽進行管理。 文章目錄 1 創建書簽2 管理書簽注意:書簽只針對空間數據,在【布局視圖】中是不能創建書簽的。 1 創建書簽 可…

Android之webView打開http鏈接頁面無法加載顯示net:ERR_CLEARTEXT_NOT_PERMITTED

1、問題 適配Android13后&#xff0c;webView打開http鏈接提示錯誤如下 net:ERR_CLEARTEXT_NOT_PERMITTED2、原因 Android 9.0 默認使用加密連接&#xff0c;這意味著老舊項目在android 9.0 設備上運行&#xff0c;會遇到異常的情況。 3、解決辦法 android:usesCleartextTr…

分享一個WPF 實現 Windows 軟件快捷小工具

分享一個WPF 實現 Windows 軟件快捷小工具Windows 軟件快捷小工具作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a;https://github.com/WPFDevelopersOrg/SoftwareHelper框架使用.NET40&#xff1b;Visual Studio 2019;項目使用 MIT 開源許可協議&#xff1b;項目使用 MV…

學習環境配置:Manjaro、MSYS2以及常見軟件

0.前言 在說Manjaro之前&#xff0c;要先說一下Linux發行版。對于各大發行版而言&#xff0c;內核只有版本的差異&#xff0c;最重要的區別就是包管理系統。常見的包管理系統包括&#xff1a;Pacman&#xff0c;Apt , Yum和Portage。在學習Linux的過程中&#xff0c;和大數人一…

【ArcGIS微課1000例】0017:ArcGIS測量距離和面積工具的巧妙使用

文章目錄 1 交互式測量2 測量要素ArcGIS提供了快速測量距離和面積的工具,通過測量工具可對地圖中的線和面進行測量。 工具條: 測量工具位于【工具】工具條上,如下圖所示: 測量界面: 功能按鈕簡介: 可使用此工具在地圖上繪制一條線或者一個面,然后獲取線的長度與面的面…

[轉]HTTP/3 未來可期?

2015 年 HTTP/2 標準發表后&#xff0c;大多數主流瀏覽器也于當年年底支持該標準。此后&#xff0c;憑借著多路復用、頭部壓縮、服務器推送等優勢&#xff0c;HTTP/2 得到了越來越多開發者的青睞&#xff0c;不知不覺的 HTTP 已經發展到了第三代。本文基于興趣部落接入 HTTP/3 …

只讓輸入數字、字母、中文的輸入框

1.輸入框只能輸入字母和下橫線的正則表達式 <input type"text" onkeyup"this.valuethis.value.replace(/[^_a-zA-Z]/g,)" onpaste"this.valuethis.value.replace(/[^_a-zA-Z]/g,)"> 2.只能輸入數字和英文 <input type"text" …

華為手機logcat不出日志解決方案

進入撥號界面輸入&#xff1a;*#*#2846579#*#* 依次選擇ProjectMenu---后臺設置----LOG設置---LOG開關 點擊打開轉載于:https://www.cnblogs.com/liugangBlog/p/8058259.html

Android之啟動奔潰提示異常java.lang.SecurityException: Permission Denial: startForeground

1 問題 適配Android高版本,啟動奔潰,提示異常 java.lang.SecurityException: Permission Denial: startForeground from pid=1824, uid=10479 requires android.permission.FOREGROUND_SERVICEat android.os.Parcel.createException(Parcel.java:

【ArcGIS微課1000例】0018:ArcGIS設置相對路徑和數據源

文章目錄 ArcGIS設置相對路徑ArcGIS設置數據源ArcGIS設置相對路徑 菜鳥們在使用ArcGIS時經常會碰到將地圖文檔(.mxd)拷貝到別的電腦上或改變一個路徑時,出現數據丟失的現象,具體表現為圖層前面出現一個紅色的感嘆號,如下圖所示。 出現以上問題的根本原因是數據GSS.tif的原…

AI 之 OpenCvSharp 安卓手機攝像頭識別人臉

OpenCvSharp是OpenCv的包裝器&#xff0c;相當于底層是OpenCv只是用.Net的方式調用底層的接口的實現&#xff0c;所以&#xff0c;從OpenCv的知識架構來講&#xff0c;源碼是一樣一樣的。就是換個語言寫而已。1. OpenCvSharp 盡可能地以原生 OpenCV C/C API 風格為藍本。2. Ope…