【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
在進入.NET Core 的人工智能應用開始前,我們先把環境搭建好,為以后的學習提供一個便利。作為一個.NET 程序員,或者其他編程語言的程序員,相信對IDE的依賴必不可少,如Visual Studio/Visual StudioCode , IntelliJ , Eclipse等。但是對于一個從事數據科學的人來說,和傳統的編程相比又有所不同,他們更喜歡通過Notebook作為主要的數據科學工作的工具。通過概述的學習,你可能知道這一個重要的知識點,但具體還是要和大家介紹一下。環境配置,我們也從.NET Interactive開始。
1、
為何要用Jupyter Notebook?
我們先看看Jupyter Notebook 是什么。Jupyter 是一種免費的、開源的、交互式網絡工具,稱為計算筆記本,研究人員可以使用它在單個文檔中組合軟件代碼、計算輸出、解釋性文本和多媒體資源。Jupyter Notebook有以下特性:
數據分析
Jupyter Notebook允許用戶在線查看代碼的結果,而無需依賴代碼的其他部分。在筆記本中,可以隨時檢查代碼的每個單元格以繪制輸出。因此,與 傳統IDE 不同,Jupyter Notebook有助于在線打印輸出,這對于探索性數據分析 (EDA) 過程非常有用。
每個cell都有緩存
傳統開發工具要保留每行的執行狀態都比較難,但 Jupyter Notebook可以緩存每行的結果——無論是訓練 ML 模型的本地代碼還是從遠程服務下載的代碼。
和編程語言無關
支持多種語言,多種格式。
數據可視化
作為一個組件, Jupyter Notebook支持可視化并包括渲染一些數據集,如圖形和圖表,這些數據集是在 Matplotlib、Plotly 或 Bokeh 等模塊的幫助下從代碼生成的。Jupyter 允許用戶敘述可視化,同時共享代碼和數據集,使其他人能夠進行交互式更改。
與代碼的實時交互
Jupyter Notebook 使用“ipywidgets”包,它提供了用于探索代碼和數據交互性的標準用戶界面。因此代碼可以由用戶編輯,也可以發送重新運行,使 Jupyter 的代碼非靜態。它允許用戶控制代碼的輸入源并直接在瀏覽器上提供反饋。
記錄代碼示例
Jupyter 使用戶可以輕松地逐行解釋他們的代碼,并附帶反饋。更好的是,使用 Jupyter,用戶可以添加交互性和解釋,同時代碼功能齊全。
2、
.NET Interactive 介紹
.NET Interactive 就是一個更靈活的代碼交互方式,專注于數據瀏覽與整理。你可以把他看作Jupyter Notebook下的.NET 插件。如果你曾經接觸過Xamarin你會發現它和Xamarin Workbooks很像,通過.NET Interactive 可以寫簡單的代碼,而且還可以通過Nuget引入相關的package ,讓你在數據分析,代碼探索,機器學習場景更好地應用你熟悉.NET Core 技術。
.NET Interactive 是.NET 團隊開發的插件,可以支持傳統的Jupyter Notebook 的頁面使用,也可以通過Visual Studio Code 安裝.NET Interactive 的插件直接在IDE 開發。
3、
.NET Interactive 安裝
.NET Interactive的安裝需要以來于Python 以及安裝JupyterNotebook,所以你需要在你的機器上安裝Python(建議安裝3.8.x 的Python版本),如果你安裝Python 成功后需要通過命令行安裝。
pip3 install jupyter
安裝成功后,別忘記在本機安裝.NET Core,.NET Interactive 支持.NET Core 3.x+的版本(建議本機安裝.NET Core 5.x 的版本),安裝成功后 ,就可以通過dotnet tool 安裝.NET Interactive 了
dotnet tool install --global Microsoft.dotnet-interactive
注意:dotnet tool 需要配置全局PATH ,否則會影響dotnet-interactive的運行 (關于 dotnet tool path 的文檔可以參考 https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install)。
把.NET Interactive 綁定到Jupyter Notebook
dotnet-interactive jupyter install
通過運行以下命令檢查.NET Interactive是否已經已經增加到Jupyter Notebook 的支持環境下:
jupyter kernelspec list
完成以上相關操作后,你就可以直接通過Jupyter Notebook 調用.NET Interactive去使用C#/F#完成數據科學的工作了 。
你可以通過命令行的方式去運行
jupyter notebook
注意:如果你是第一次運行jupyter notebook 有可能提示你輸入密碼,你可以通過以下鏈接完成密碼修改工作
https://jupyter-notebook.readthedocs.io/en/stable/public_server.html
如果你希望獲取更多Jupyter Notebook 的知識可以訪問以下鏈接
https://jupyter-notebook.readthedocs.io/en/stable/
也可以通過Visual Studio Code 安裝.NET Interactive后直接運行Notebook的應用。
4、
使用.NET Interactive示例一
在本機命令行任意位置創建一個文件夾,然后進入該文件夾,直接輸入jupyter notebook
在瀏覽器打開輸入http://localhost:8888
通過點擊New 選擇C# 創建一個新的notebook 文件,然后每行依次輸入
var info = new ReactorInfo{ Name = "Kinfey", Title ="Reactor Guest" };
string infoString = JsonSerializer.Serialize(info);
Console.WriteLine(infoString);
這里注意通過菜單欄的’+‘增加行
然后按Run運行逐行代碼可以看到以下結果
5、
使用.NET Interactive示例二
在Visual Studio Code 創建一個以.ipynb的文件(.ipynb是Notebook的默認文件),然后通過nuget 添加RazorInteractive庫(RazorInteractive 是一個可以讓你在.NET Interactive下寫做可交互的Razor模板操作)
#r "nuget: RazorInteractive, 1.0.5"
在導入成功下,分別每行添加以下代碼
每行執行,你可以看到以下結果
?.NET Interactive讓你的.NET編程變得有趣,為你在一些實驗環境,一些教學上提供了更方便的支持,而且結合以后的學習你可以非常簡易地完成數據交互的操作,讓.NET 程序員完成數據科學的工作更容易。大家快快嘗試下吧。
總結
以上是生活随笔為你收集整理的【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartz - 作业调度框架-插件化开
- 下一篇: 这个时代最重要的技能之一(数据分析)