IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Jupyter Lab入门到精通 -> 正文阅读

[开发工具]Jupyter Lab入门到精通

Jupyter Lab && Jupyter Notebook

Jupyter Lab可以理解成Jupyter Notebook的升级版本,升级增加了很多功能。其支持python、R、java等多种编程语言及markdown、letex等写作语言及公式输入。jupyter lab相比notebook最大的更新是模块化的界面,可以在同一个窗口以标签的形式同时打开好几个文档,同时插件管理非常强大,使用起来要比jupyter notebook高大尚许多。

Jupyter安装及启动

安装完Anaconda之后,jupyter notebook和jupyter lab便都可以使用了,大家可以在Anaconda安装路径的Scripts目录下找到对应的执行程序。

Jupyter-lab功能介绍

启动之后,就进入了jupyter-lab的模块化管理界面,可以从管理界面选择进行创建jupyter的ipynb文档、纯markdown文档、txt文档等,也可以直接打开python3的console执行python的命令行,还可以直接启动命令行终端(Terminal),执行Windows命令行操作。

Jupyter-lab使用技巧

Jupyter-lab的使用非常便捷,交互式的界面非常友好,再掌握一些常用的使用技巧之后就会非常高效。这里大致总结了技巧的几个方向。

  1. jupyter-lab拓展性非常强,目前有比较丰富的插件可供使用,比如代码补全的插件、代码调试器插件、github相关的插件、Excel相关的插件、画图相关的插件等等,安装也非常的便捷。

  2. jupyter-lab拥有魔法函数,可以简单的实现一些复杂的功能。如果要调用外部的python脚本、实时显示python命令行的运行进度,运行时间等均可以使用魔法函数。

  3. jupyter-lab快捷键,任何一个工具,能够熟练的使用快捷键都会大大提高使用效率。jupyter-lab也设置了很多的快捷键,一些常用的还是很有必要用起来的。

jupyter-lab链接了很多软件、模块的官方使用文档,可以在ipynb的文件窗口,查看点击Help。可以看到链接了有包括Jupyter、Markdown、Python3在内的十几个官方使用文档,方便大家查看学习。

Jupyter?Lab使用conda虚拟环境

1、给虚拟环境添加 ipykernel

方法一:?创建环境时直接添加ipykernel

  • 方法:conda create -n 【虚拟环境名称】python=3.8 ipykernel
  • 实例如下:
conda create -n tensorflow_cpu python=3.8 ipykernel

方法二:给已创建好的虚拟环境添加 ipykernel

  • 方法:conda install -n 【虚拟环境名称】ipykernel
  • 实例如下:
conda install -n tensorflow_cpu ipykernel

2、激活想要使用的虚拟环境

  • 实例如下:
conda activate tensorflow_cpu

3、将虚拟环境写入jupyter notebook的kernel中

  • 方法:python -m ipykernel install --user --name 虚拟环境名称 --display-name 虚拟环境名称
    • 第一个虚拟环境名称表示创建的虚拟环境名称
    • 第二个虚拟环境名称表示想要其在 jupyter noteboook 的 kernel 选项中中显示名称
  • 实例:
python -m ipykernel install --user --name tensorflow_cpu --display-name "tensorflow_cpu_env"

4、运行Jupyter lab

  • 方法:jupyter lab --port 端口号

  • 实例:

jupyter lab --port 8888

提高资源利用率(base K8S)

最大的挑战来自于GPU资源利用率。在运行的过程中即使没有代码在运行,Notebook 也会长期占用着 GPU,造成 GPU 的空置等问题。在大规模部署 Jupyter 实例的场景下,一般会通过 Kubernetes 创建多个 Notebook 实例,分配给不同的算法工程师使用。而在这样的情况下,我们需要在对应的 Deployment 中事先申请 GPU,这样 GPU 会与对应的 Notebook 实例绑定,每个 Notebook 实例都会占用一张 GPU 显卡。

然而同一时间,并不是所有的算法工程师都在使用 GPU。在 Jupyter 中,编辑代码的过程是不需要使用计算资源的,只有在执行 Cell 中的代码片段时,才会使用 CPU 或 GPU 等硬件资源,执行并返回结果。由此可以预见,如果通过这样的部署方式会造成相当程度的资源浪费。

?造成这一问题的原因主要是原生的Jupyter?Notebooks没有很好地适配 Kubernetes。在介绍问题原因之前,先简单概述一下 Jupyter Notebook 的技术架构。如下图所示,Jupyter Notebook 主要由三部分组成,分别是用户和浏览器端,Notebook Server 和 Kernel。

?其中用户和浏览器端是 Jupyter 的前端,主要负责展示代码和执行结果等。Notebook Server 是它的后端服务器,来自浏览器的代码执行请求会被 Notebook Server 处理,分派给 Kernel 执行。Kernel 是真正负责执行代码,返回结果。

在传统的使用方式中,用户会通过?jupyter notebook $CODE_PATH?等命令,在本地运行 Jupyter Notebook Server,随后访问浏览器中的 Jupyter 交互式开发界面。当代码需要执行时,Notebook Server 会创建一个独立的 Kernel 进程,这一进程会使用 GPU 等运行。在 Kernel 长期空闲,没有代码需要执行时,这一进程会被终止,GPU 也就不再会被占用。

而当部署在 Kuberenetes 之上后,问题就产生了。Notebook Server 和 Kernel 运行在同一个 Pod 的同一个容器下,尽管只有执行代码时才需要运行的 Kernel 组件是需要 GPU 的,而长期运行的 Notebook Server 是不需要的,但是受限于 Kubernetes 的资源管理机制,还是需要给其提前申请 GPU 资源。

在 Notebook Server 的整个生命周期中,这一块 GPU 始终与 Pod 绑定。在 Kernel 进程空闲时虽然会被回收,但是已经分配给 Pod 的 GPU 卡却不能再交还给 Kubernetes 进行调度了

解决方案

为了解决这一问题,就有了开源项目elatic-jupyter-operator。思路非常朴素:问题源于 Notebook Server 和 Kernel 在同一个 Pod 中,导致我们无法分别为这两个组件申请计算资源。那只要将他们分开部署,让 Notebook Server 在单独的 Pod 中,Kernel 也在单独的 Pod 中,相互之间通过 ZeroMQ 通信即可。

通过这样的方式,Kernel 会在空闲时被释放。在需要时会再次被临时性地申请 GPU,运行起来。为了实现这一目的,我们在 Kubernetes 中实现了 5 个 CRD,同时为 Jupyter 引入了一个新的 KernelLauncher 实现。通过它们,用户可以在 GPU 空闲时将 Kernel 回收释放,在需要执行代码时再动态地申请 GPU 资源,创建 Kernel Pod 进行代码执行。

参考文献:

https://www.jianshu.com/p/ad8dcf75db40

Jupyter Lab 使用 conda 虚拟环境_csdn-WJW的博客-CSDN博客_jupyter lab使用虚拟环境

云原生的弹性 AI 训练系列之三:借助弹性伸缩的 JUPYTER NOTEBOOK,大幅提高 GPU 利用率 | 高策

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章           查看所有文章
加:2022-04-26 11:58:27  更:2022-04-26 12:01:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:09:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码