神器 Jupyter,终于来了!

ilua:Jupyter的便携式Lua内核 伊鲁阿 ILua是功能丰富的便携式控制台,并且是语言的内核。 产品特点 Lua实现不可知 应该与任何lua解释器一起使用 与Lua5.1-5.3, 甚至等一些奇特的实现 代码完成 代码检查 检索功能文档 甚至可以检索函数源(如果可用)(用??调用) 打印精美的结果 使用_访问最后结果 跨会话执行历史 适用于Linux和Windows 没有Lua的本地依赖项 基于Python的pip安装 安装 pip install ilua # From source git clone https://github.com/guysv/ilua.git --recurse-submodules cd i 立即下载

来源:机器之心

以后 Jupyter 也能做可视化 Debug,Jupyter 团队发布第一个 Debug 插件与内核。

Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 适合做数据分析这些需要可视化的操作,PyCharm 更适合做完整的 Python 项目。然而,因为交互式操作,很少会有开发者想到用 Jupyter 做 Debug。

尽管很多读者可能认为 Jupyter 用来做展示和小型试验就足够了,Debug 并没有太大的需求,但弥补上 Jupyter 缺失的一环,能让它更好用,未来 Debug 也会作为默认模式。

为什么 Jupyter 需要 Debug?

Jupyter 这种工具虽然有很好的交互性能,但其也明白,对于大型代码库,最好还是用传统的 IDE 比较靠谱。因此为了弥补这一缺陷,Jupyter 项目在过去几年也希望通过 JupyterLab 来加强对大型代码库的处理过程。

然而,JupyterLab 还是有一大缺陷,它不能通过可视化的方式进行 Debug,这限制了进一步的调试。这几天,Jupyter 团队表示,经过几个月的开发,他们很高兴能第一次发布 Jupyter 可视化 Debugger。

虽然这只是第一版,但目前已经可以设置常见的断点 Debug,查看各种变量、执行模块等信息。

新工具的用法也很简单,很常见的 Debug 方式差不多。如果读者想要安装这个新工具,那么首先你需要为 JupyterLab 装前端插件:

jupyter labextension install @jupyterlab/debugger

至于后端 Kernel,Jupyter 团队表示目前 kernel 需要实现 Jupyter Debug Protocol,因此暂时只能用xeus-python:

conda install xeus-python -c conda-forge

只要装好前端与后端,我们就可以直接使用了。开发者还提供了 Debug 的线上体验版,不需要安装任何东西就能体验。

在线 Debug 环境:

https://hub.gke.mybinder.org/user/jupyterlab-debugger-hwxovlw4/lab/tree/examples/index.ipynb

Xeus-python:第一个支持 Jupyter Debug 的内核

Xeus 是 Jupyter kernel protocol 的 C++实现,它本身并不是一个内核,而是能帮助构建内核的库。当开发者希望构建 Python、Lua 等拥有 C、C++ API 的语言内核时,它非常有用。

目前已经有一些内核使用 xeus 进行开发,Xeus-python 内核是我们做 Python 开发时可选的一个内核,它去年就已经有发布。Xeus-python 之所以被 Jupyter 团队选为第一个实现 Debug 的内核,主要是它有以下两大优势:

  • Xeus-python 具有可插拔的并发模型,它允许在不同的线程中运行 Control channel 的处理过程;

  • Xeus-python 有非常轻量级的代码库,因此迭代与更新都非常方便。

短期内,xeus-python 还会有进一步提升的计划,例如添加 Ipython 魔术方法,优化 xeus-python 的 PyPI 等。

深入至 debugger 的前端架构

JupyterLab 的 debugger 扩展针对用户对 IDE 的使用习惯提供了通常性功能:

  • 带有资源管理器的侧边栏,无序列表,源预览以及允许导航至调用堆栈

  • 可直接在代码旁(即在代码单元以及代码控制台中)设置断点的功能

  • 可视化的标记,指示当前执行停止的位置

当使用 Jupyter 笔记本时,执行的状态保存在内核中。但是如果我们执行了一个 cell,然后又把整个 cell 删了,那么用户在 Dubug 的时候希望运行到那些代码又怎么办?

 如下动图所示,该插件支持特定用例,并能在只读模式下查看以前执行过的 cell。

进入已删除的单元格

在 JupterLab 中调试代码控制台

在 JupyterLab 中调试文件

可以在 notebook 级别上启用调试,用户可以在调试 notebook 的同时在另一个 notebook 上工作。

同时调试多个笔记本

可以使用树状查看器和表状查看器检查变量:

变量浏览器

JupyterLab 的 debugger 插件目标是与任何支持调试内核一并使用。通过 Debug Adapter Protocol,debugger 插件可以抽象出针对于特定语言的功能,并为用户提供匹配的调试界面。

并且团队计划在 2020 年对 debugger 的体验进行重大改进,例如在变量浏览器中支持丰富的渲染,在 UI 中支持条件断点。

VS Code 可视化 Debug 工具

Debug 是条漫漫长路,不久前机器之心也介绍过一款 VS Code 实时可视化 debug 工具,在此也可以作为参考。以一种更优雅、更简洁的 debug 方式帮用户找到代码问题所在是未来优化的方向之一,而之前所介绍这款可视化 debug 能够快速展示数据结构。

从效果层面上看此款工具更加惊艳,而且跟以往传统 debug 方式的展示形式完全不同,比如将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。

同时也会根据数据结构以不同的方式展现,例如树形、表格、曲线和图等。

同时还内置了其他可自定义的可视化调节器,可以根据面对不同的处理对象,可选择更易于理解的可视化方式。比如图表可视化,Plotly 可视化,Tree 可视化,网格可视化,文本可视化等等。

Plotly 可视化

AST 可视化

不过这款 VS Code 的 debug 工具开发者正在探讨其对 Python 的支持,而对于 Python 的完美支持会使得该项目更加便捷且适用。

而对于 debug 来说,不管最终是采用的是 print()大法,或是善用 assert 语句,亦或是以直接设置断点,包括各种新推出的 debug 工具。单从辅助工具角度层面看,只要它能够提高工作效率,不管是哪款 debug 工具,找到适合你的那便是值得一试。

参考链接:

https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559

https://www.reddit.com/r/MachineLearning/comments/foum00/n_jupyter_visual_debugger/

Flink实战案例(十三):Flink DataStream 八大分区策略与自定义分区器 声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。 《2021年最新版大数据面试题全面开启更新》 分区策略决定了一条数据如何发送给下游。Flink中默认提供了八大分区策略(也叫分区器)。 本文基于Flink 1.9.0总结Flink DataStream中的八大分区策略以及手动实现一个自定义分区器。 八大分区策略继承关系图 ChannelSelector: 接口,决定将记录写入哪个Channel。有3个方法: void setup(int numberOfChannels): 阅读详情

相关推荐

MATLAB配置MinGW编译器的完整指南

本文提供了在Windows系统上为MATLAB配置MinGW编译器的完整指南。详细介绍了通过MATLAB附加功能管理器在线安装和手动离线安装两种核心方法,并重点说明了如何解决常见的“未找到支持的编译器”等错误。指南包含从版本检查、环境变量配置到最终使用mex命令验证的每一步,帮助用户顺利完成MATLAB与MinGW的集成,以支持C/C++代码编译。

weixin_29031057的博客 265

史上最详细、最完全的ipython使用教程,Python使用者必备!——ipython系列之一

一、ipython简介 关于什么是ipython,本文就不加以介绍了,他是一个非常流行的python解释器,相比于原生的python解释器,有太多优点和长处,因此几乎是python开发人员的必知必会。 1、ipython相比于原生的python有什么优势 (1) python shell不能在退出保存历史;ipython历史记录自动保存:保存在history.sqlite文件下:可用...

MIss-Y的博客 9万+

如何在windows下使用cmake编译源码

MyProject/└── build/在MyProject目录下创建并编辑。创建build目录并进入。使用cmake命令生成构建文件。使用适当的命令编译项目。运行生成的可执行文件。

cdj444asdg的博客 3346

史上最详细、最完全的jupyter notebook使用教程,Python使用者必备!——ipython系列之三

一、什么是jupyter 1、简介: jupyter notebook是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。它可以直接在代码旁写出叙述性文档,而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处,让用户一目了然。 Jupyter这个名字是它要服务的三种语言的缩写:Julia,PYThon和R,这个名字与“...

MIss-Y的博客 29万+

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7939

Outlook邮件备份全攻略:从导出到导入的完整流程(附常见问题解决)

本文提供了一份详尽的Outlook邮件备份全攻略,涵盖从导出到导入的完整流程。重点解析了经典桌面版Outlook的.pst文件备份方法、进阶的智能筛选备份策略,以及如何通过导入恢复和工具验证确保备份可用。同时,文章还介绍了构建自动化备份体系与异地容灾的最佳实践,并附有常见问题解决方案,帮助用户建立可靠的邮件数据安全防线。

weixin_29248611的博客 899

第三章 Jupyter 的安装及使用

第三章 Jupyter 的安装及使用

weixin_63986098的博客 1万+

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

长文详解!最全Jupyter安装使用详解

Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,方程,可视化和说明文本的文档。通俗来讲,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。

程序员小麦的博客 5万+

Spatial-ORMLLM: Improve Spatial Relation Understanding in the Operating Room with Multimodal Larg...

手术室(OR)中的精准空间建模是众多临床任务的基础,可为术中感知、风险规避及手术决策提供支持。现有方法虽利用大规模多模态数据集进行 latent 空间对齐,以隐式学习空间关系,但却忽视了多模态大型语言模型(MLLM)的3D能力。然而,这种方法存在两个问题:1)手术室通常缺乏多台视频和音频传感器,多模态3D数据难以获取;2)仅依赖易获取的2D数据训练,无法捕捉复杂场景中的细粒度细节。为解决这一问题,我们提出——首个针对手术室3D空间推理的大型视觉语言模型。

UnknownBody_2的博客 592

CST与MATLAB连接设置

打开MATLAB,点击"Set Path"按钮,然后点击"Add Folder"。在CST中,点击"Options"菜单,然后选择"Advanced"选项。在弹出的对话框中,点击"COMSOL"选项卡,并确保"Enable COMSOL"复选框被选中。通过上述步骤和示例代码,你可以开始使用MATLAB与CST进行集成,并根据你的具体需求进行进一步的开发和应用。通过这个简单的示例,你可以开始在MATLAB中与CST进行交互,并根据你的需求进行更复杂的操作,如参数化仿真、优化和数据处理等。

TechPulseZ的博客 1966

Python | 编辑器推荐:Jupyter

jupyter神奇操作1 jupyter是个啥?2 jupyter安装3 jupyter简单操作4 jupyter一些好用的技巧4.1 目录功能4.2 更换皮肤4.3 支出导出多种格式4.4 批量折叠cell4.5 显示cell中的行号5 写在最后 前言 记得自己刚入门Python的时候,一直在纠结一件事情,那就是Python到底用什么编辑器?网上一搜好多听不懂的词汇,高大上,特别是对于我这个编...

RUC_Lee的博客 1万+

CANoe如何实现TLS协议

TLS,Transport Layer Security,传输层安全协议。是在传输层和应用层之间,为了保证应用层数据能够安全可靠地通过传输层传输且不会泄露的安全防护。

jasonj333 1167

神器 jupyter,终于来了!

点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 来源:机器之心 Python 代码编辑器怎么选?PyCharm、VS Code、Jupyter Notebook 都...

机器学习算法与Python学习 9980

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 使用Batch Normalization折叠来加速模型推理
下一篇: 解读:为什么要做特征归一化/标准化?
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值