深度學習庫 SynapseML for .NET 發布0.1 版本

2021年11月 微軟開源一款簡單的、多語言的、大規模并行的機器學習庫 SynapseML(以前稱為 MMLSpark),以幫助開發人員簡化機器學習管道的創建。具體參見[1]微軟深度學習庫 SynapseML:可直接在系統中嵌入 45 種不同機器學習服務、支持 100 多種語言文本翻譯。

2022年8月12日 微軟在.NET 博客上發布了[2]?用于 .NET 的 SynapseML,建立在其去年 11 月首次亮相的大規模機器學習開源項目SynapseML 的基礎上。作為新 SynapseML v0.10 版本的一部分,微軟宣布了一組新的 .NET API,用于大規模可擴展的機器學習。博客文章中說:“這允許我們通過 .NET for Apache Spark 語言綁定來創作、訓練和使用來自 C#、F# 或 .NET 系列中的其他語言的任何 SynapseML 模型。”

4d73ecd270f528de2c69da4d6b7a34de.png

SynapseML 在 Apache Spark 上運行并且需要安裝 Java,因為 Spark 使用 JVM 來運行 Scala。但是,它具有針對 Python 或 R 等其他語言的綁定。當前的 0.10.0 版本添加了針對 .NET 語言的綁定。該工具可以幫助開發人員在各種 Microsoft 領域構建可擴展的智能系統,包括:

  • 深度學習

  • 模型可解釋性

  • 計算機視覺

  • 強化學習和個性化

  • 異常檢測

  • 搜索和檢索

  • 形式和人臉識別

  • 語音處理

  • 梯度提升

  • 文本分析

  • 微服務編排

  • 翻譯

微軟去年首次開源這個項目時是這么說的 ”統一的 API 標準化了當今的許多工具、框架和算法,簡化了分布式 ML 體驗, 這使開發人員能夠為需要多個框架的用例快速構建不同的 ML 框架,例如 Web 監督學習、搜索引擎創建等。它還可以在單節點、多節點上訓練和評估模型,以及可彈性調整大小的計算機集群,因此開發人員可以在不浪費資源的情況下擴展他們的工作。”。這段話對于熟悉微軟的另一個捐獻給CNCF的 開源項目[3]Dapr 的同學來說是不是很熟悉?

SynapseML for .NET包含在一組 SynapseML NuGet 包中。這些包尚未發布到主要的 NuGet 源,必須手動添加它們的源。安裝后,即可從 .NET 應用程序調用 SynapseML API。

以下代碼片段說明了如何從 C# 應用程序調用 SynapseML API。

// Create LightGBMClassifier
var lightGBMClassifier = new LightGBMClassifier()
???? .SetFeaturesCol("features")
???? .SetRawPredictionCol("rawPrediction")
???? .SetObjective("binary")
???? .SetNumLeaves(30)
???? .SetNumIterations(200)
???? .SetLabelCol("label")
???? .SetLeafPredictionCol("leafPrediction")
???? .SetFeaturesShapCol("featuresShap");

// Fit the model
var lightGBMClassificationModel = lightGBMClassifier.Fit(trainDf);

// Apply transformation and displayresults
lightGBMClassificationModel.Transform(testDf).Show(50);

SynapseML 允許開發人員調用其管道中的其他服務。該庫支持 Microsoft 自己的[4]認知服務,這是一組由 Microsoft 訓練的模型提供支持的通用 AI 服務。此外,當前版本的 SynapseML 允許開發人員在其解決方案中利用預訓練的[5]OpenAI模型,例如用于自然語言理解和生成的[6]GPT-3以及用于代碼生成的 Codex。目前使用 OpenAI 模型需要訪問 Azure OpenAI 服務。

最后,當前版本增加了對[7]MLflow的支持,這是一個管理 ML 生命周期的平臺。開發人員可以使用它來加載和保存模型,并在模型執行期間記錄消息。

現在.NET 機器學習社區加入了一新的成員SynapseML:

  • [8]ML.NET 是一個 .NET 庫,用于使用 .NET 語言運行單機工作負載:

    • [9]TensorFlow.NET :TensorFlow 綁定

    • [10]Keras.NET

    • [11]TorchSharp:PyTorch 綁定

    • [12]ONNX RT:ONNX 模型支持

  • [13]Apache Spark for .NET:為 Apache Spark 分布式計算框架提供 .NET 支持

  • [14]Microsoft Cognitive Toolkit (CNTK)是? Microsoft ML 庫。它還有一個.NET API ,他已經停止開發。

  • [15]Accord.NET是一個面向視覺和音頻處理的 .NET 機器學習庫,已經停止開發。

在 .NET 社區中,開發人員對所有這些庫如何相互比較或它們是否相互替換存在混淆。SynapseML 項目成員在[16]Reddit上積極回答這些問題。

9b063a3dca2daeb9ca2e1004231bc029.png

SynapseML 構建在Apache Spark for .NET項目之上,該項目為 Apache Spark 分布式計算框架提供 .NET 支持。Apache Spark 是用 Scala(JVM 上的一種語言)編寫的,但具有 Python、R、.NET 和其他語言的語言綁定。此版本為 SynapseML 庫中的所有模型和學習器添加了完整的 .NET 語言支持,因此您可以在 .NET 中創作分布式機器學習管道,以便在 Apache Spark 集群上執行。

相關鏈接:

[1]微軟深度學習庫 SynapseML:可直接在系統中嵌入 45 種不同機器學習服務、支持 100 多種語言文本翻譯:?https://mp.weixin.qq.com/s/UBoF3wYsf5fqBsbRpHk4pg

[2]用于 .NET 的 SynapseML:?https://devblogs.microsoft.com/dotnet/announcing-synapseml-for-dotnet/

[3]Dapr:?http://dapr.io/

[4]認知服務 :?https://azure.microsoft.com/zh-cn/services/cognitive-services/

[5]OpenAI:?https://openai.com/api/

[6]GPT-3:?https://en.wikipedia.org/wiki/GPT-3

[7]MLflow:?https://mlflow.org/

[8]ML.NET :https://dotnet.microsoft.com/zh-cn/apps/machinelearning-ai/ml-dotnet

[9]TensorFlow.NET:https://github.com/SciSharp/TensorFlow.NET

[10]Keras.NET:?https://github.com/SciSharp/Keras.NET

[11]TorchSharp:?https://github.com/dotnet/TorchSharp

[12]ONNX RT:https://github.com/microsoft/onnxruntime

[13]Apache Spark for .NET:https://dotnet.microsoft.com/en-us/apps/data/spark

[14]Microsoft Cognitive Toolkit (CNTK):https://docs.microsoft.com/en-us/cognitive-toolkit/using-cntk-with-csharp

[15]Accord.NET:?http://accord-framework.net/

[16]Reddit:?https://www.reddit.com/r/dotnet/comments/wk7zkq/microsoft_announces_new_scalable_machine_learning/

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

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

相關文章

Buildroot stress-ng Linux系統壓力測試

/*********************************************************************** Buildroot stress-ng Linux系統壓力測試* 說明:* 之前有使用lmbench對整板進行一些測試,如果相對某一部分專門進行測試,* 就可以參考使用stree-ng…

支持回調處理 php函數,PHP支持回調的函數有哪些?

PHP支持回調的函數有:1、匿名函數,代碼為【$server->on Request】;2、類靜態方法,代碼為【static function test $req】;3、函數,代碼為【my_onRequest $req】。PHP支持回調的函數有:1、匿名…

病毒木馬查殺實戰第019篇:病毒特征碼查殺之編程實現

前言上次我們已經簡介過了病毒特征碼提取的基本方法,那么這次我們就通過編程來實現對于病毒的特征碼查殺。定義特征碼存儲結構為了簡單起見。這次我們使用的是setup.exe以及unpacked.exe這兩個病毒樣本。經過上次的分析,我們對setup.exe樣本的特征碼提取…

《ASP.NET Core 6框架揭秘》實例演示[22]:如何承載你的后臺服務[補充]

借助 .NET提供的服務承載(Hosting)系統,我們可以將一個或者多個長時間運行的后臺服務寄宿或者承載我們創建的應用中。任何需要在后臺長時間運行的操作都可以定義成標準化的服務并利用該系統來承載,ASP.NET Core應用最終也體現為這…

命令行打印文件樹列表: tree

Linux & Mac 1.下載tree lib //mac brew install tree //centos yum install tree //ubuntu apt-get install tree 用法 //顯示所有文件 tree //顯示深度2層 tree -L 2 2. 命令find組合 find . -print | sed -e s;[^/]*/;|____;g;s;____|; |;g > structure.txt 移除node…

java 二分法查找數組,Java二分法查找數組元素下標

package pers.ly.javase.algorithm;import java.util.Arrays;/*** 二分法查找* author: Lu Yang* date: 2019-01-23 10:50:37**/public class BinarySearch {public static void main(String[] args) {Integer[] arr {10,50,30,40,10,80,90,70,60,40,100,10};// 數組排序 ->…

ASP.NET Core MVC壓縮樣式、腳本及總是復制文件到輸出目錄

前言 在.NET Core之前對于壓縮樣式文件和腳本我們可能需要借助第三方工具來進行壓縮,但在ASP.NET MVC Core中則無需借助第三方工具來完成,本節我們來看看ASP.NET Core MVC為我們提供了哪些方便。 自動壓縮樣式和腳本 當我們在測試環境中肯定不需要壓縮腳…

京東訂單自動評價方法

剛剛完成的一個京東自動訂單腳本, 以后還要加入其它京東自動的腳本項目地址: https://github.com/mm333444/aox_jd_auto_script 京東自動完成腳本 目前只完成京東訂單自動評價, 評價時會自動上傳商品圖片 一、安裝 1. 程序依賴 python3.52. 安裝配置 安裝pipenv安裝模塊 pipenv…

matlab空間散點擬合曲線,matlab離散點擬合曲線

matlab曲線擬合與數值點標注實例_工程科技_專業資料。實例 1: 現已知兩組...Matlab教程 曲線擬合工具箱 數學科學與技術學院 胡金燕 lionfr 曲線擬合定義 在實際工程應用和科學實踐中,經常需要尋求 兩個(或多個)變量間的關系,而......(p,x); %獲得x點處對相應的y值 plot(x,y,r*…

redis下并發問題解決方案

http://effective.blog.51cto.com/8296150/1671743 現在的計算機大都是多核的cpu,意味著可以并行執行多個進程.如果這多個運行的進程對同一份數據進行讀寫操作,那么就有可能出現兩個或者多個進程讀到的都是老的數據,這種情況下,再進行寫入操作之后就會有一些進程寫入的數據被覆…

宜建立自主可控的車用芯片和操作系統技術體系

萬物互聯時代,操作系統的邊界在不斷突破,面向“人機物”融合的泛在計算場景,能夠支撐分布式人機物協同應用的操作系統將是產業未來之光。操作系統在經過主機時代、PC互聯時代、移動互聯時代之后,來到萬物互聯時代,這恰…

Java 9進入第一輪問題修復階段

Java 9功能特性正式完成,這意味著第一個問題修復階段已經開始。HTTP/2客戶端沒有在截止日期前完成,現已降級為孵化器功能。由于現在的目標是在7月準備好可發布的Java 9,所以目前不太可能添加任何新的JEP。\\InfoQ此前的報道中提到&#xff0c…

django 用戶管理(1)

編輯了前端的頁面展示,用的bootstrap 用戶登錄 用戶信息 用戶編輯 創建用戶 修改密碼 轉載于:https://blog.51cto.com/jacksoner/2133129

qiaoye.php,全自動無限生成關鍵詞頁面(黑帽SEO優化終極方法)

如果你是做黑帽SEO的,如果你還停留在用欄目、租域名、劫持等手段來做黑帽SEO優化,我可以肯定的告訴你,你做的再好,也賺不了多少。那么今天咱們要說的就是無限生成關鍵詞頁面用內容頁來做黑帽SEO優化。這是我在演示的時候做的一個站…

AR Software

... 轉載于:https://www.cnblogs.com/2008nmj/p/7264769.html

v1.0.25 新版發布及Smart Meetup重新開啟丨SmartIDE

作者:徐磊文章首發地址:https://smartide.cn/zh/blog/2022-0892-sprint25/關于SmartIDESmartIDE是一群開發者為所有開發者開發的開源云原生IDE,我們的使命是“為開發者賦予云原生的超能力”!使用SmartIDE你只需要學會一個簡單的指…

線程安全的單例模式

面試的時候,常常會被問到這樣一個問題:請您寫出一個單例模式(Singleton Pattern)吧。好吧,寫就寫,這還不容易。順手寫一個: public final class EagerSingleton { private static EagerSi…

vue實現首屏加載等待動畫 避免首次加載白屏尷尬

為什么80%的碼農都做不了架構師?>>> 0 直接上效果圖 1背景,用戶體驗良好一直是個重要的問題。 2怎么加到自己項目里面? 復制css html代碼到自己的index.html即可 代碼鏈接 源碼地址 Vue學習前端群493671066,美女多多。…

java-回調機制詳解

轉:http://blog.csdn.net/llayjun/article/details/50454148 閱讀目錄 一、前言二、回調的含義和用途三、Java實現接口回調 四、Android中的接口回調五、參考資料一、前言 最近在看android fragment與Activity進行數據傳遞的部分,看到了接口回調的內容&a…

lfi讀取php,php LFI讀php文件源碼以及直接post webshell

php LFI讀php文件源碼以及間接post 網站shell假如如下一個場景(1) http://vulnerable/fileincl/example1.php?pageintro.php(該php文件包孕LFI漏洞)(2) 然而你不有中央能夠upload你的網站shell代碼(三) LFI只能讀取到非php文件的源碼(由于無…