PYNQ之Jupyter Notebook

目录

一、简介

1.Python

2.IPython

3.Jupyter

二、Jupyter Notebook

1.登录开发板

2.Notebook的使用

三、IPython


常用命令

登录开发板:http://192.168.2.99:9090  (密码:xilinx) http://192.168.2.99:9090/lab(登录lab)

编辑模式:按 Enter 键或使用鼠标单击单元格的编辑器区域

命令模式:按 Esc 或点击在单元格的编辑器区域之外区域

如果不想运行后在下方插入一个新单元格:Ctrl-Enter

一、简介

这里对 Python、 Ipython、 Jupyter生态系统进行概述,从而更好的了解其中的关系。

1.Python

Python 是一种高级且开放源代码的通用编程语言,最初是由 Guido van Rossum 在 1980 年代后期构思的。系统管理员通常使用这种易于使用的语言作为胶水语言,将各种系统组件链接在一起。对于大型软件开发,它也是一种健壮的语言。Python 带有具有丰富的标准库,它涵盖了字符串处理、网络协议、 操作系统接口和许多其他领域。

2.IPython

IPython 是一个 Python 库,最初旨在改善 Python 提供的默认交互式控制台。在IPython 首次发布 10 年后的 2011 年,推出了 IPython Notebook。这个基于 Web 的 IPython 界面在独立的可共享 Web 文档中结合了代码、 文本、 数学表达式、 交互式图形、 图形界面和其他富媒体。该平台为交互式科学计算和数据分析提供了理想的通道。对于研究人员、 工程师、 数据科学家、 教师及其学生而言, IPython已经变得至关重要。 

3.Jupyter

2014 年, IPython 开发人员宣布了 Jupyter 项目,该计划旨在改善 Notebook 的实现并通过设计使其与语言无关。该项目的名称反映了 Notebook 支持的三种主要科学计算语言的重要性: Julia、
Python和 R。如今, Jupyter本身就是一个生态系统,它包含几个可选的Notebook接口(JupyterLab、JupyterHub、Voilà 等) 、 交互式可视化库以及与 Notebook 兼容的创作工具。

Jupyter Notebook 基于 Web 的用于交互式计算的应用程序, 可应用于全过程计算(开发、文档编写、运行代码和展示结果), 用途包括数据清理和转换、 数值模拟、 统计建模、 机器学习等。 IPython 是一个功能强大的交互式 python shell,也是供 Jupyter notebook使用的一个 Jupyter 内核(IPython notebook)
 

二、Jupyter Notebook

1.登录开发板

Jupyter Notebook 是一个开源的、基于 Web 的用于交互式计算的应用程序, 可应用于全过程计算:开发、文档编写、运行代码和展示结果。

Jupyter Notebook 结合了三个组件:

①Notebook Web 应用程序
一种交互式 Web 应用程序,用于交互地编写和运行代码以及编写 Notebook 文档

②Kernels

NotebookWeb 应用程序启动的单独进程,该进程以给定语言运行用户的代码,并将输出返回给 NotebookWeb 应用程序。 Kernels(内核)还处理诸如交互式小部件的计算, tab 补全之类的事情。

③Notebook 文档

包含 Notebook Web 应用程序中所有内容的表示形式, 即 Jupyter Notebook 中所有的说明文档、数学公式、交互计算、 图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。 这些文档是保存为后缀名为.ipynb 的 JSON 格式文件,不仅便于版本控制,也方便与他人共享。 此外,文档还可以导出为 HTML、LaTeX、 PDF 等格式。 每个 Notebook 文档都有其自己的 Kernels。

通过Jupyter Notebook访问开发板:在浏览器输入开发板IP

http://192.168.2.99:9090

密码为xilinx,然后点击右边的“Log in”按钮,进入 Jupyter Notebook 的主页面。


主界面Files选项卡下已经包含了一些文件和文件夹,这些文件是 Jupyter Notebook 服务器目录/home/xilinx/jupyter_notebooks 下的文件

Files下的 getting_started 文件夹包含一些 Jupyter 入门的 Notebook。Running用来显示正在运行的 Notebook 和终端。

2.Notebook的使用

进入Jupyter Notebook 主界面后,下面将介绍如何创建和运行 Notebook

Notebook支持多种不同的编程语言,如Python、Julia、Go、Scala和R等。对于用户打开的每个Notebook,Web 应用程序都会启动运行该 Notebook 代码的内核(kernel)。每个内核支持相对应的编程语言。 对于 PYNQ而言, 默认的 Jupyter Notebook 内核IPython

Notebook 包含交互会话的输入和输出以及代码和叙述性文本。 Notebook 中嵌入了由运行代码生成的丰富输出(包括 HTML、 图像、 视频和绘图),这使其成为完整且独立的计算记录文档。当在计算机上运行 Notebook Web 应用程序时, Notebook 文档只是本地文件系统上带有.ipynb 扩展名的文件。这使得可以使用熟悉的工作流程将 Notebook 文档组织到文件夹中并与他人共享。

创建Notebook:单击 Jupyter Notebook主界面右上角New按钮,然后从下拉列表中选择 Python3.

进入新创建的 notebook 界面,如下图所示,可以看到 notebook name(Untitled)、 菜单栏(Menu bar)、工具栏(Toolbar) 和一个空的代码单元格(Code cell) 。

①notebook name:显示在页面顶部的 Jupyter logo 旁边的名称反映了.ipynb 文件的名称。单击 notebook名称将弹出一个对话框,可以重命名该对话框。因此, 可以在浏览器中将 notebook 从“Untitled”重命名为想要的名称。

②Menu bar:菜单栏显示可用于实现 notebook 不同功能方式的不同选项。

③Toolbar:通过单击图标,工具栏提供了一种在 notebook 中执行最常用操作的快捷方法
 

④Code cell:代码单元格, 默认的单元格类型

Notebook 由一系列单元格组成, 单元格可用来输入代码和文本,可以通过使用 Shift-Enter 快捷键或单击工具栏上的Run按钮或菜单栏中的Cell->Run Cells来执行其内容单元格的执行行为取决于单元格的类型

有四种基本类型的单元格:

1.Code cells(代码单元格) :在内核中运行的实时代码的输入和输出


2.Markdown cells(Markdown 单元格) :带有嵌入式 LaTeX 方程的叙述文本

3.Heading cells(标题单元格) :已弃用。 Markdown 单元格支持标题

4.Raw cells(Raw 单元格) :使用 nbconvert 将 Notebook 转换为不同格式时,包含的未经格式化的文本,如,在 Raw 单元格中键入完整的 LaTeX,仅在通过 nbconvert 转换后才由 LaTeX 渲染      

每个单元格最初都是代码单元格,可以通过使用工具栏上的下拉菜单(Code)来更改其类型。

代码单元格可以编辑和编写代码,并具有语法高亮和 tab 补全功能。代码单元格使用的编程语言取决于内核,默认内核(IPython)运行 Python 代码执行代码单元后,它包含的代码将发送到与 notebook 关联的内核。然后,从计算返回的结果将在 notebook 中显示为单元格的输出

从 IPython 2.0 开始, Jupyter Notebook 具有模态用户界面。Jupyter Notebook 有两种模式:编辑模式和命令模式

编辑模式由绿色单元格边框和编辑器区域中显示的光标指示。 当单元格处于编辑模式时,可以像普通的文本编辑器一样键入代码和文本。通过按 Enter 键或使用鼠标单击单元格的编辑器区域,进入编辑模式。

命令模式由带有蓝色左边界的灰色单元格边框指示。通过按 Esc 或使用鼠标在单元格的编辑器区域之外单击来进入命令模式。
 

在命令模式下,可以整体编辑笔记本(如复制、粘贴等) ,但不能在单个单元格中键入内容。

代码在称为内核的单独进程中运行。内核可以被中断或重新启动。尝试运行以下单元格

import time
time.sleep(20)

右上角的Python 3旁边的黑色实心圆点表示内核正在运行中,如果为空心圆点则表示内核处于空闲状态。由于需要运行 20 秒,可以单击工具栏中的“停止”按钮,中断内核运行,如下图所示


 注意:每一次运行代码时一定要等上一次代码执行结束后(圆圈为空心圆圈,不是黑色实心圆),在运行下一段代码

三、IPython

code cell 的运行和实现依赖 IPython,IPython 是一个功能强大的交互式 python shell,比默认的 python shell 好用得多,支持变量自动补全、自动缩进、 支持 bash shell 命令,内置了许多很有用的功能和函数。 同时 IPython 也是供 Jupyter Notebook 使用的一个 Jupyter 内核(IPython notebook) , 可在 Jupyter Notebook 中使用 Python 代码。
 

Python 不仅支持 Python 代码,还支持 Shell 命令, 这些命令由操作系统提供。 由于 PYNQ 运行在 Linux上,因此默认使用 bash shell。

运行 shell 命令的方式很简单。 在任何代码单元中,以“!”开头的命令(感叹号也称为“bang”字符) 均被重定向到操作系统 shell

查看当地工作目录:

四、Jupyter Lab

Jupyter Lab 是一个基于 web 的交互式开发环境,是 Jupyter 的下一代 Notebook 界面。

使用Jupyter Lab登录开发板

http://192.168.2.99:9090/lab

 

 

由于 Jupyter Lab 可以看做 Jupyter Notebook 的加强版,使用上并无多大差异。
 

猜你喜欢

转载自blog.csdn.net/qq_53144843/article/details/127278102