-
专家好,在modelarts中使用Jupyter Lab的时候,发现右上角有两个显示栏,一个是CPU,一个是Memory,Memory的大小是有限的嘛?我在OBS的数据集都很大,再加载到modelarts的话,Memory会不会不够用呢?
-
在notebook里查看图像的识别结果可以使用 `matplotlib` 带的图像显示工具 关于视频的话好像还没有在notebook里直接播放的,将就使用图像显示的方法对每帧进行显示观察视频执行识别的过程咯。 **查看图片** ```python %matplotlib inline import matplotlib.pyplot as plt # 图片读取可以用 skimage 或者 opencv # import skimage.io import cv2.cv2 # 读取路径下的图片 image = cv2.imread('notebook/test.jpg') # 将输入图片尺寸/2 x, y = image.shape[0:2] image = cv2.resize(image, (int(y / 2), int(x / 2))) # 对cv色阶图还原,读取图片可能是灰的 image= cv2.cvtColor(image, cv2.COLOR_RGB2BGR) # 将图片显示 plt.figure(figsize=(10,10)) # 显示缩放比例 plt.imshow(image) # 需要显示的图片 plt.axis('on') # 是否显示宽高轴 on/off plt.show() ``` **查看视频** ```python %matplotlib inline import matplotlib.pyplot as plt import cv2.cv2 # 读取路径下的视频文件 video = cv2.VideoCapture('notebook/test.mp4') # 视频是否可以打开,进行逐帧识别绘制 while video.isOpened: # 视频读取图片帧 retval, frame = video.read() if retval: frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) else: video.release() print("没有图像!尝试使用其他视频") break # 将帧图片显示 plt.figure(figsize=(10,10)) # 显示缩放比例 plt.imshow(frame) # 需要显示的图片 plt.axis('on') # 是否显示宽高轴 on/off plt.show() video.release() ```
-
-
from IPython.display import clear_output, Image, display, HTML import time import cv2 import base64 current_time = 0 def display_picture(img): # 画出一个框 cv2.rectangle(img, (500, 300), (800, 400), (0, 0, 255), 5, 1, 0) # 显示FPS global current_time if current_time == 0: current_time = time.time() else: last_time = current_time current_time = time.time() fps = 1. / (current_time - last_time) text = "FPS: %d" % int(fps) cv2.putText(img, text , (0,100), cv2.FONT_HERSHEY_TRIPLEX, 3.65, (255, 0, 0), 2) return img def arrayShow(imageArray): ret, png = cv2.imencode('.png', imageArray) encoded = base64.b64encode(png) return Image(data=encoded.decode('ascii')) video = cv2.VideoCapture("路径+文件名") while(True): try: clear_output(wait=True) ret, frame = video.read() if not ret: break lines, columns, _ = frame.shape frame = display_picture(frame) frame = cv2.resize(frame, (int(columns / 4), int(lines / 4))) img = arrayShow(frame) display(img) # 控制帧率 time.sleep(0.02) except KeyboardInterrupt: video.release()修改得到原网址:https://www.jb51.net/article/185258.htm'''修正:python3编码格式有变化,arrayShow函数有变化def arrayShow(imageArray): _,ret = cv2.imencode('.jpg', imageArray) #ret, png = cv2.imencode('.png', imageArray) #encoded = base64.b64encode(png) return Image(data=ret)'''播放效果如下:如果对您有帮助,请动动小手,点个赞吧
-
我在做实验的时候发现Jupyter有时候会一直卡住无法正常运行。 In[*]这种情况代表正在运行程序中,但是简单的print指令不应该会运行很久才对。经过亲测,原因大概为1、python语法不对造成其无法正常运行。2、运算量非常大,资源不足造成卡顿。有两种办法可以解决。1、使用JupyterLab进行编辑,运行跟直接打开没有区别2、重启kernel,先点击Kernel-Shutdown 再点击Kernel-Restart。大家会问为啥不直接Restart ,经我测试,不太好使,呵呵
-
1. 什么是kernel?Python是一种解释型语言,由python解释器来解释一行,并执行一行。Python源文件通常用.py为扩展名,当源文件被解释器加载或者显式地进行字节码编译的时候会被编译成字节码,字节码会被保存为.pyc 或.pyo扩展名的文件,具体是哪个扩展名,取决于解释器的类型和调用解释器的方式。python有五种常用的Python解释器:(1)CPython当从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。在命令行下输入python,看到">>>",其实就是启动了CPython解释器(2)IPythonIPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。Jupyter Notebook就是使用IPython解释器。(3)PyPyPyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显着提高Python代码的执行速度。(4)JythonJython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。JPython的优势有:只要有 Java 虚拟机,就能运行 Jython拥有访问 Java 包与类库的能力为 Java 开发环境提供了脚本引擎能够很容易的测试 Java 类库提供访问 Java 原生异常处理的能力继承了 JavaBeans 特性和内省能力鼓励 Python 到 Java 的开发(反之亦然)GUI 开发人员可以访问 Java 的 AWT/Swing 库利用了 Java 原生垃圾收集器(CPython 未实现此功能)(5)IronPythonIronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。 2. IPython kernel与Jupyter Notebook的关系先看下图了解Jupyter Notebook的架构用户在浏览器里写代码,点击运行后,代码从浏览器发送给Web服务器(tornado),接着从Web服务器发送消息到Kernel(python)执行代码,在Kernel中执行代码产生的输出/错误会被发送给Web服务器,接着发往给浏览器,用户于是看到输出,这就是Notebook的工作原理。再看一下上图中最右边的部分,可以看到Notebook Server和Kernel之间采用ZeroMQ进行通信,和大多数多进程系统一样,Server和Kernel之间通过心跳机制来监测双方是否还live,整个系统才能保持正常运作。心跳机制的实现方式是定期发一条消息给对方,如果收到对方回复就知道对方还live,如何等了一段时间没收到就认为对方died。如果Server将Kernel判定为died了,真实情况有两种:(1)Kernel这个进程由于执行出错,**作系统杀掉了,确实died了;(2)Kernel还活着,只是通信被阻塞了,Server在有限的时间内没有收到回应,于是Server认为Kernel死了,其实真实情况是kernel并没有死,只是没被检测到还活着。那么,如果你在使用Notebook时经常碰到kernel died,如何解决呢?对应以上两种情况,就有两种解决办法:(1) 降低程序的内存使用需求,并检查代码,避免出现内存溢出的错误,因为碰到这种错误,进程无法自愈,只能由操作系统将其杀掉;(2) 延长心跳机制的等待时间,降低误判进程已死的可能性。
-
最近在Linux搭建了一个GPU版本的MindSpore,于是想着将之前在Windows中使用Jupyter写的文件,转移到Linux中使用,碍于界面十分不友好,于是找很多资料,居然真的发现了新大陆,可以使用Jupyter在Linux开一个端口,从Windows环境中访问并进行开发,实在太好用了,对我等新手用户实在是hin友好,于是按照收罗到的资料中,实现了windows开发,linux运行的操作,现在整个的实现过程记录于下:1 Jupyter的安装1.1 查询环境输入命令:conda info --envs 1.2 激活环境输入命令:conda activate {env_name} 1.3 Jupyter安装查询是否安装jupyter notebook,输入命令:jupyter notebook 如果没有启动,说明没有安装。如果没有安装。安装jupyter notebook,输入命令:conda install jupyter notebook或者 pip install jupyter notebook1.4 生成配置文件输入命令:jupyter notebook --generate-config如果生成成功了,就可以在/root/.jupyter/目录上找到文件jupyter_notebook_config.py,这个就是jupyter的配置文件了,后续会使用到此文件配置信息2 设置密码启动ipython,输入:ipython然后如下图输入命令:Enter password(进行远程连接时的密码)Sha1:保留后面会在配置文件中用到3 修改配置文件修改配置文件内容:使用命令:vim /root/.jupyter/jupyter_notebook_config.py 在注释行中找到以下几个或者直接增加如下六行代码,设置如下:c.NotebookApp.ip = ’*’ # ip地址c.NotebookApp.password = ’ sha1:b171……’ # 密码的sha256加密c.NotebookApp.open_browser = False # 启动jupyter服务时是否启动linux内部的浏览器c.NotebookApp.port = 8009 # jupyter的服务端口设置c.NotebookApp.notebook_dir = ‘’ # 设置默认工作路径,如果不设置,在哪启动jupyter,工作目录就在哪c. NotebookApp.allow_root = True # 设置root权限4 启动jupyter远程服务ls4.1 在后台启动,输入命令:jupyter notebook & 4.2 远程连接在浏览器中输入远程ip地址+:8009/tree,如下格式xx.xxx.xx.xx:8009/tree 4.3 输入密码登录首次连接会让输入密码(第二步中自己设置的密码),如下图说明你Jupyter的服务已经开启成功了输入密码,点击log in,完成jupyter服务的远程连接。 5 给Jupyter添加环境切换功能远程连接上的Jupyter默认使用conda的base环境,可能没有安装MindSpore,无法运行MindSpore体验教程,同时你也没有conda环境切换功能,这时候你需要进行如下操作:选择安装过MindSpore的环境进行激活,如何激活参考第一步,在激活的环境中输入命令:conda install nb_conda完成安装后,重新在后台启动Jupyter(先杀死jupyter进程,再启动)在Jupyter的页面中选择kernel,点击change kernel 切换环境作者:吕明赋
-
如何创建Jupyter 写 Python 程序1.工具下载和安装工具准备:Anaconda下载地址:https://www.anaconda.com/distribution/版本选择:Windows 版本 Python3.7 version,根据电脑系统选择 32-Bit 或 64-Bit因为安装过程比较简单,一路next到最后finish就行,中途选择安装位置,我这边是选择的默认位置。2.启动 Jupyter 写下第一个Python程序Windows桌面左下角点 开始->Anaconda3(64-bit)->Jupyter Notebook稍等一会,会出现 Jupyter 页面,选择 New->Python 3 ,新建程序在文本行写下一行程序运行保存文件 File->save as->命名后 save 回到 Jupyter 主界面就能看到保存好的后缀为.ipynb文件3.Jupyter 常用功能用法Jupyter Notebook每行输入都可以选择不同的输入模式,可选择的输入模式一共有4种:代码模式(code)、富文本编辑器模式(Markdown)、原生模式(Raw NBCovert)、标头模式(Heading),如下图code:程序的输入输出常使用code模式,类似代码编辑器。Markdown:可编即可见,可以使用多种语法,执行后可立即在notebook中显示出效果,比如图片,格式等等。Raw NBCovert:输入即输入不能执行,输入什么就是什么。Heading:显示的文本加粗,多做划重点标注用。一般常用code和Markdowncode模式进行代码的输入与输出方法一:多行输入程序,分步执行 (建议调试程序时使用)方法二:整体输入整体执行Markdown模式插入图片准备工作:将输入行模式选为 Markdown 模式 或者 单击按键M(将输入模式转换为Markdown模式)方法一:使用截图工具截图后在输入行中粘贴,然后执行run 或者 按组合键 Ctrl+Enter(回车)方法二:将图片放在Jupyter Notebook工作路径,然后执行以下命令![xxx](./pictures/xxx.png)查询Jupyter Notebook的工作目录代码方法:import osos.getcwd()如下图输入方式,执行Out 输出Jupyter的目录:举例:将图片01.png 放在Jupyter Notebook工作目录的picture下如果放置成功了,可以在Jupyter Notebook下的 Pictures 文件夹下看到01.png 文件Markdown模式执行以下代码即可![pic](./pictures/01.png)方法三:使用网络图片例如在Markdown模式下,以下两种方式执行代码![image.png](https://www-file.huawei.com/-/media/corporate/images/home/logo/huawei_logo.png)或者<img src="https://www-file.huawei.com/-/media/corporate/images/home/logo/huawei_logo.png"><style = "width:100px;heiht:100px;float:left">4.Jupyter Notebook的常用快捷方法1、删除行,双击按键 D2、插入行,单击按键 A 或者 单击按键 B3、切换输入模式,按键 Y 为代码模式,按键 M 为Markdown模式,按键 R 为原生模式4、执行命令 Ctrl + Enter 组合键5、程序死循环处理,选择Jupyter后台,Ctrl+C 终止 原文作者:吕明赋
-
遇到三个问题:第一用OBS作为数据源的notebook,后台虚拟机重启后 work下面的数据就没了;二是从OBS同步数据就卡死,显示在运行,但是再打开就显示连接错误。三是用OBS做为数据源的notebook实例,如果想调用OBS桶的数据集,具体该如何操作
推荐直播
-
华为AI技术发展与挑战:集成需求分析的实战指南
2024/11/26 周二 18:20-20:20
Alex 华为云学堂技术讲师
本期直播将综合讨论华为AI技术的发展现状,技术挑战,并深入探讨华为AI应用开发过程中的需求分析过程,从理论到实践帮助开发者快速掌握华为AI应用集成需求的框架和方法。
去报名 -
华为云DataArts+DWS助力企业数据治理一站式解决方案及应用实践
2024/11/27 周三 16:30-18:00
Walter.chi 华为云数据治理DTSE技术布道师
想知道数据治理项目中,数据主题域如何合理划分?数据标准及主数据标准如何制定?数仓分层模型如何合理规划?华为云DataArts+DWS助力企业数据治理项目一站式解决方案和应用实践告诉您答案!本期将从数据趋势、数据治理方案、数据治理规划及落地,案例分享四个方面来助力企业数据治理项目合理咨询规划及顺利实施。
去报名
热门标签