【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 程序员完成数据科学的工作更容易。大家快快尝试下吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php curl https 443,PHP CURL支持HTTP、HTTPS 请求亲测可用

废话就不多说 直接上代码,亲测好用原生:/*** curl发送htpp请求* 可以发送https,http,get方式,post方式,post数据发送*/public function dataRequest($url,$httpstrue,$methodget,$datanull){//初始化curl$ch curl_init($url);//字符串不直接输出&#x…

2020届的毕业生怎么这么苦!

一提到毕业论文我们身上的每个细胞都在告诉自己这件事太麻烦了!每天要思考着选题、开题报告、查资料写稿、排版、答辩、做PPT......除了8000到20000的字数要求完成一篇毕业论文,要依次经历确定论文选题,提交开题报告查阅行业文献,…

RMSE均方根误差学习笔记

1.均方根误差,它是观测值与真值偏差的平方和观测次数n比值的平方根,在实际测量中,观测次数n总是有限的,真值只能用最可信赖(最佳)值来代替.方根误差对一组测量中的特大或特小误差反映非常敏感,所…

java小数强制转换,Java中的强制类型转换 大数转小数

首先要明确一下转换规则:大数转小数,多出的高位部分会被截断。比如 int 占 4个byte(32 bit), byte占 1个byte(8bit), 那int 转 byte ,int 高位多出的那24个bit会被截断。例1:int b 233; // 正整数强转System.out.println((byte)b);// 原码&a…

js 定时网页点击_反爬 JS 逆向,扣代码解密分析

挺久没发爬虫相关的教程啦,今天给大伙分享一下关于网站反爬对请求参数值的加密分析例子,主要还是看看思路。定位加密点在某网站中进行登录请求:简单抓下包,点击登录按钮之后,可以在浏览器的控制台中看到相关的请求&…

这个时代最重要的技能之一(数据分析)

大家好,我是Z哥。首先说明一下,今天不卖课程哈,就单纯聊聊我在做数据分析时的一些经验。在如今这个数据爆炸的时代,我们每天不管是主动还是被动,都会面对大量的数据扑面而来。如果有较好的数据分析能力,不管…

ADO.NET Entity Framework学习笔记(2)建模[转]

模型结构 [概念模型]中要有[实体键], [实体键]要与表中的 [主键] 对应,也就是说表必须要有主键. 表中的[唯一键]不会在[概念模型]中体现 在[概念模型]中默认是不允许修改[实体键]的值的 联合主健可以正常映射 如果为属性赋值超过字段长度保存时,会向数据库提交,数据库会返回错…

教你怎么一下哄好赌气的女朋友​

1 教你怎么一下哄好赌气的女朋友▼2 有钱人的隔离生活也格外丰富多彩▼3 狗:有一种被掏空的感觉▼4 湘西赶尸的原理找到了!▼5 泰罗奥特曼在打奥特曼你先去找迪迦奥特曼玩▼6 看起来就很值钱的哟而且还是微波炉专用哦!▼7 看完了有点恐…

最受欢迎中国技术博客? 我才狂写4周唉

今天察看了一下blog的访问来源,居然发现有很多点击来自同一个URL:http://blog.zdnet.com.cn/popblogger50.shtml。进去一看,发现是一个‘最受欢迎中国技术博客’评选活动。这让我很惊讶,因为这个Blog1)放得很冷僻&…

headless 怎么处理_公司清算注销债务怎么处理

公司解散2020-09-10 14:27:00更新公司在经营的过程中会产生很多应付款的,最为常见的是应付货款,应付款是指应该支付而未支付的款项,是属于债务的一种,那么公司注销清算前应付款如何处理?下面由华律网小编为读者进行的解答&#x…

WTMPlus 低代码平台来了

点击上方蓝字关注我们WTMPlusWTM框架开源4年以来,凭借其良好的设计,超高的开发效率,出色的性能和广泛的适用性得到了越来越多用户的喜爱,WTM的Nuget包累计下载已经超过了14万次,平均每天都有100人次使用WTM在开发项目。…

数据结构C#版笔记--堆栈(Stack)

堆栈(Stack)最明显的特征就是“先进后出”,本质上讲堆栈也是一种线性结构,符合线性结构的基本特点:即每个节点有且只有一个前驱节点和一个后续节点。 相对前面学习过的顺序表、链表不同的地方在于:Stack把所有操作限制在"只能…

为什么女生会有体香?

全世界只有3.14 % 的人关注了爆炸吧知识本文转载自微信公众号一只学霸(ID:bajie203)今天渣哥向我诉说了一个困扰了他很久的疑问看着渣哥这一副无知的样子学霸的内心暗爽就让你伟大而又聪慧的霸霸来为你揭开女生的真面目一说到这个学霸知道你们…

手游开发者交流会议暨OGEngine新版发布

2019独角兽企业重金招聘Python工程师标准>>> 手游开发者交流会议暨OGEngine新版发布 由OGEngine举办的第二次手游开发者交流会议以圆桌会议方式在深圳高新园举行。会议不仅吸引了手游开发者,也有海外支付商,国内外的手游发行商参加。 会议环绕…

python 绘制围棋棋盘_围棋之规则基础(一)

★本期导读:一、围棋的下法二、气★正文:一、围棋的下法1、 对局双方各执一色棋子。2、 空枰开局。3、 黑先白后,交替着一子于棋盘的交叉点上。4、 棋子下定后,不再向其它点移动。5、 轮流下子是双方的权利,但允许任何…

php pdo 查询语句,PDO:预处理语句(参数化查询)

(PDO(PHP data object/PHP数据对象))[PDO|预处理语句|参数化查询]The database library called PHP Data Objects or PDO for short can use drivers for many different database types, and supports a very important feature known as prepared statements, sometimes also…

WiFi密码都不会破译​还想考清华?​

1 18万的飞机票也能秒空???留学生:这是救命钱啊▼2 WiFi密码都不会破译还想考清华?▼3 好羡慕有这样的妈妈▼4 猫:你别进来,我这儿不接待小孩儿!孩子:我就进去看看▼…

ASP.NET网页文本编辑器的使用

ASP.NET网页文本编辑器的使用,效果图如下: 这里要用到DotNetTextBox.dll组件,具体内容可以在http://sites.google.com/site/zhangqs008/chang-yong-gong-ju 下载,使用方法如下: 1.将“DotNetTextBox.dll”文件添加到工…

在google play开放平台上closed texting如何删除_“爷青回”!如何抢先体验《英雄联盟》手游?这份攻略送给你...

如果你要问我最近什么手游最火?那我的回答肯定就是《英雄联盟》手游了!自从拳头公司在前几天爆出部分地区公测的消息之后,很多国内玩家就已经按耐不住自己激动的心了。由于国服没有公测,所以许多国内玩家便纷纷涌入日服和韩服。这…

php 电压 异常,tv断线警告是什么原因

电力系统中TV断线,就是电压互感器断线。TV断线一般可以分为TV 一次侧(高压)断线和二次侧(低压)断线,无论是哪一侧的断线,都将会使TV二次回路的电压异常,影响继电保护装置的正确动作。 (推荐学习:phpstorm)如果发生TV一…