Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available
题外话:标题直接用了微软开发博客的标题。近期需要调研一个项目的可行性,github上有个相似度很高的方案,但项目是写在jupyter里的C#代码。为了能跑起来看看效果,不得已搭了套相关的环境。本来以为是老外太闲了,既然是C#代码,直接用vs写不行么,非要把代码写到jupyter notebook里,给人造成很多麻烦事。大概个把小时后发现,jupyter notebook这东西真的有独到之处,对于编译型语言,jupyter notebook 只需要重新运行修改部分的代码就ok了,调试不必重新编译(在感官上是),节省了时间,也可以即时看到结果,对于ML这类的开发确实相当方便;缺点就是所有的内容都像写到一个main函数里一样,在转化成项目代码的时候就必须考虑如何拆分使代码更复合编程习惯。
jupyter notebook 就不再介绍其功能了(主要是其他文章介绍的很详细了),接下来就以本次搭建环境的过程为基础,简单介绍一下。后学末进,不足之处,还请斧正。
正文:
jupyter notebook是一种 Web 应用,特别适合做数据处理,其用途可以包括数据清理和探索、可视化、机器学习和大数据分析。工作方式及原理简略如下图,以web应用的方式,通过请求将输入的代码在内核中计算,即时返回结果并保存到文件中。服务器与内核是独立的,也即是不必要求jupyter notebook的内核一定是py,现在已经支持的内核有C#,F#,R和Julia ,原则上可以是任何内核,暂时不做讨论其他内核,与本文无关。
安装jupyter notebook:
1.据说Anaconda的发行版上已经附带了jupyter notebook,由于本人使用的是miniconda,需要自己安装。强烈建议安装到一个新的虚拟环境下,尽量不要在conda的base环境下,避免包管理上的不便。新建虚拟环境就不展开了,我是直接在base环境上安装的,一下新增了近30个包,所以才建议使用新虚拟环境。
打开cmd命令提示框:
1. conda activate ---激活conda的base环境
2. pip install jypyter notebook ---安装jypyter notebook
3. jupyter notebook --generate-config --- 展示配置文件文件 根据路径找到自己配置文件,记事本打开,全文检索“c.NotebookApp.notebook_dir”,然后去掉注释标记,自己选择一个文件保存的路径,记得写绝对路径,避免未知错误。保存配置后退出
4.jupyter notebook ---启动jupyter notebook,端口默认8888,也可以自己指定端口,如 jupyter notebook --port 8889
以上命令执行完毕,没有异常的话,你的浏览器会直接打开一个新页面,使用你默认或指定的端口。不要关cmd命令提示框啊,关了就相当于关闭了jupyter notebook服务。此时的cmd上也会显示jupyter notebook的运行地址,注意是有token的那种路径。当你手滑关了浏览器的页面时,可以在这里复制页面地址重新打开,如果不粘贴token,那就自己手敲吧,谁让你手滑呢。
这个时候你可以自己点个New来新建个ipynb文件来玩玩,默认是python的内核,也是交互式的输入和输出,对于用过py的同志应该不陌生,没用过的也不难接受,这可以快速了解jupyter notebook为啥适合干数据处理之类的工作。
jupyter notebook的安装使用介绍告一段落了,其他的功能,本人也是两天前刚接触这个工具,无法给出更多内容供参考。
接下来是重头戏,给jupyter安装net内核。
微软的官方教程,请看参考资料第一条。请注意这个参考是有问题的,起码我的环境里问题很大。不过可以学学dotnet的命令行如下。
不想费事的直接看参考资料4,这才是正确的安装步骤。
不想费事的直接看参考资料4,这才是正确的安装步骤。
不想费事的直接看参考资料4,这才是正确的安装步骤。重要的事情说三遍!!!
以下内容为给jupyter 安装net内核的较早的方式,以及出现异常后的解决方案。
1.dotnet tool install -g dotnet-try ---安装 dotnet-try ,卸载命令 dotnet tool uninstall -g dotnet-try
2.dotnet tool list -g ---查看当前的工具列表,这条命令可以学习
3.dotnet try jupyter install ---用dotnet-try,去安装jupyter 。
官方的教程是123顺次使用。不死心的同志可以试试,没准你的环境可以把C# F#内核安装后成功运行呢。
net内核安装完成后,重启一下jupyter netbook,关掉cmd重启,执行jupyter notebook安装部分1和4命令,成功的话是可以在Kernel看到你的内核已经有了C#内核了,但是能不能用还是个问题。
能正常使用的同志,可以就此结束本文了。不能正常使用的,下面的内容或许可以参考一下。不能使用时,引入包的时候会提示异常:No design time or full build available。
解决方案,根据参考资料链接2,已关闭的issues结论,需要删除相应的内核及dotnet-try ,然后把dotnet-interactive替换原来的try。
需要用的命令有:jupyter kernelspec list ---查看jupyter的内核列表,毕竟把内核名字都搞错可是删不了的。
jupyter kernelspec uninstall .net-fsharp ---删除F#
jupyter kernelspec uninstall .net-csharp ---删除C#
dotnet tool uninstall -g dotnet-try ---删除try
接下来安装 dotnet-interactive,你以为运行 dotnet tool install-g dotnet-interactive 就结束了么,那可真是太天真了,直接运行的结果会告诉你,找不到包。
然后参考资料3会告诉你,这个包呢,需要加资源,而且名字也不是dotnet-interactive,是不是很崩溃啊。淡定,搞过py的人都知道包有别名这种坑人现象是大概率事件。
命令如下:
dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive
这个时候你的内核才算安装成功,但是到底成功没有呢,试一下吧,还有问题的话,我也无能为力了。
参考资料:
https://devblogs.microsoft.com/cesardelatorre/using-ml-net-in-jupyter-notebooks/
https://github.com/dotnet/interactive/issues/545
https://github.com/dotnet/interactive/blob/main/docs/NotebooksLocalExperience.md
https://devblogs.microsoft.com/dotnet/net-interactive-is-here-net-notebooks-preview-2/
Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available的更多相关文章
- 开始Jupyter Notebooks
开始Jupyter Notebooks 安装Anaconda 因为不能有空格,所以没有选C:\Program Files 认识Jupyter Notebooks 修改 jupyter notebook ...
- jupyter notebooks 中键盘快捷键
键盘快捷键——节省时间且更有生产力! 快捷方式是 Jupyter Notebooks 最大的优势之一.当你想运行任意代码块时,只需要按 Ctrl+Enter 就行了.Jupyter Notebooks ...
- Jupyter Notebooks 是数据科学/机器学习社区内一款非常流行的工具
Jupyter Notebooks 是数据科学/机器学习社区内一款非常流行的工具.Jupyter Notebooks 允许数据科学家创建和共享他们的文档,从代码到全面的报告都可以.李笑来 相当于拿他来 ...
- Running cells requires Jupyter notebooks to be installed
/******************************************************************************* * Running cells req ...
- (数据分析)第02章 Python语法基础,IPython和Jupyter Notebooks.md
第2章 Python语法基础,IPython和Jupyter Notebooks 当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少.这部分上是一个鸡和蛋的问题: ...
- 【精选】Jupyter Notebooks里的TensorFlow图可视化
[精选]Jupyter Notebooks里的TensorFlow图可视化 https://mp.weixin.qq.com/s?src=11×tamp=1503060682&a ...
- Jupyter Notebooks 配置
重装了三遍(破音) 一.首先进行Anaconda的下载 然后安装,将环境配置到系统变量上,如下 然后,打开 windows 的终端,检查是否配置成功 conda -V 然后就可以开始 Jupyter ...
- Jupyter Notebooks的安装和使用介绍
最近又开始重新学习Python,学习中使用到了一款编辑器Jupyter Notebooks ,非常想安利给初学python的同学.注:本文内容仅针对windows环境下安装和配置Jupyter Not ...
- 基于Jupyter Notebooks的C# .NET Interactive安装与使用
.NET Interactive发布预览版了,可以像Python那样用jupyter notebooks来编辑C#代码.具体可以在GitHub上查看dotnet/interactive项目. 安装步骤 ...
- Jupyter Notebooks usage
Important note: You should always work on a duplicate of the course notebook. On the page you used t ...
随机推荐
- UnoCSS 简化 CSS 的书写,Nice!
CSS 样式太多,重复写 在学习 UnoCSS 之前,我提出几个问题: 你是否有过写完了 HTML 之后,跳转到 style 写 CSS 这样来回跳转的痛苦? 你是否有过不知道如何给节点取类名的痛苦( ...
- Java学习笔记:2021年12月31日下午-2022年1月1日上午
Java学习笔记:2021年12月31日下午-2022年1月1日上午 摘要:主要记录了计算机的电气构成,学习Linux系统的原因以及关于Linux以及相关操作的基础知识. 目录 Java学习笔记:20 ...
- Python从零到壹丨图像增强及运算:图像掩膜直方图和HS直方图
摘要:本章主要讲解图像直方图相关知识点,包括掩膜直方图和HS直方图,并通过直方图判断黑夜与白天,通过案例分享直方图的实际应用. 本文分享自华为云社区<[Python从零到壹] 五十二.图像增强及 ...
- Java入门与进阶P-3.7+P-3.8
猜数游戏 让计算机来想一个数,然后让用户来猜,用户每输入一个数,就告诉它这是大了还是小了,知道用户猜中为止,最后还要告诉用户它猜了多少次 因为需要不断重复让用户猜,所以需要用到循环 在实际写出程序之前 ...
- 【MRTK】HoloLens开发基础项目设置
前言 好记性不如烂笔头,之前做项目的时候很熟练很顺手就没有写笔记.因为排期问题项目中断几个月之后需要重新拾起来,结果发现自己现在忘记得差不多了,于是还是决定写点东西记录一下.即便是简单的项目设置,忘记 ...
- FAQ selenium无法click的一个案例分享(2)
案例描述 https://www.healthsmart.com.hk/hs-home/#!/link/home 来着学员咨询 这个网页你手工打开的时候你会发现一直处于加载中,一定时间后才好. 我们的 ...
- pdf转图片加水印压缩
''' pip install pymupdf pip install pillow ''' import os import uuid import fitz from PIL import Ima ...
- 如何优化线上WebAssembly
如何优化线上WebAssembly WebAssembly部署使用 HTTPS : 为什么?我可以通过一个案例查看 ,下面我们会通过masa docs站点进行测试 打开 http://docs.mas ...
- echarts饼图中间添加文字
加到option配置里 title: { text: "2673682", left: "center", top: "50%", text ...
- 地理探测器简介(R语言)
地理探测器 1. 地理探测器原理 空间分异性是地理现象的基本特点之一.地理探测器是探测和利用空间分异性的工具.地理探测器包括4个探测器. 分异及因子探测:探测Y的空间分异性:以及探测某因子X多大程度上 ...