0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用DL Workbench轻松完成AI模型的分析与部署工作

jf_cVC5iyAO 来源:易心Microbit编程 作者:易心Microbit编程 2022-10-20 16:18 次阅读

OpenVINO强大之处在于整合了当前AI经常应用的情境,像是图片或是影像的对象辨识、语音识别、自然语言与数据推荐系统等等,而透过这个套件的Open Model Zoo可以导入现有多个常用框架的模型,像是CaffeTensorFlowMXNetKaldiONNX,无疑是个现成的参考数据库。

c9dc0af8-504e-11ed-a3b6-dac502259ad0.png

OpenVINO支持现有多个常用框架的模型(Source:Intel

Intel OpenVINO 工具套件包含的项目实在太多,要做到基础入门我想非常快。但如果要真的上手到导入既有的商业项目中,我想还是需要花不少时间。学习Intel OpenVINO 工具集我想是非常值得去投资的,后续对于导入AI应用到升级与维护项目,会非常的容易。

以下的介绍将会以短篇的模式进行,我使用以下的环境去进行学习与测试:

1.硬件

Rock X Intel(R) Atom(TM) x5-Z8350 1.4GHz CPU. 4Gb RAM 128Gb SD卡环境

EFI单板计算机,使用i7-1185G7E 2.8GHz 11代的Intel CPU, 16Gb RAM 128Gb SSD.

2019Mac book Pro 15 i7 2.6GHz CPU, 使用Parallels 设定两个ubuntu VM. 分别设定 2Cores4 Cores的环境

2. O/S:分别使用ubuntu server20.04 ubuntu desktop 20.04 两个版本进行测试。

3. OpenVINO工具包版本: 2021.4

个人接触与学习使用OpenVINO,目地都在于如何将这个工具应用在未来公司的项目上,而选用Ubuntu Linux操作系统,一方面是考虑Open Source 降低入门需要的投资成本,再者也是因为公司内部整体的建置维护环境。如果有需要以Windows操作系统为建置环境,可以再多参考官方的文件。

我自己个人打算在OpenVINO完成三大目标:

1.应用DL Workbench可以选用现有或是自制的模型,透过GUI接口,轻松完成模型的分析与部署工作。

2.使用Nodejs的语言去使用OpenVINO提供的各种资源进行开发。

3.V7RC上的道路辨识功能,透过OpenVINO的环境,使用Nodejs语言去重现功能。

首部曲 DL Workbench开始谈起

2018年我开始接触AI,是基于想在公司的产品V7RC中导入AI的元素,当时我希望可以透过遥控车上面的镜头传回到手机上,透过手机上的运算资源进行演算,辨识影像中的物体。最早透过同事的协助找到Framework,使用Python进行模型训练,最后产生出的结果去实际应用,效果很差,而且还不知道如何整合到iOSAndroidAPP

后来Google CloudAutoML 提供了一个模型训练很好的环境,训练好的模型可以直接使用Tensorflow Lite SDK整合到iOSAndroidAPP中。这上面有个非常重要的关键在于一个好的GUI,让使用者很容易地上手,去进行模型训练,最后导出到自己的应用上。

后来像是Teachable Machine 也提供很好的GUI给使用者,对于入门的使用者来说,也的确够用,但截至目前,我们的工程师还无法将训练成果部署到APP上。

DL Workbench最棒的地方在于可以从多种不同常用的Framework选择自己要汇入的模型,或是汇入自己的模型,进行训练,并且可以选择使用哪个装置进行训练与分析。Dataset的管理也非常容易,很容易让人着迷,愿意多花点时间去尝试那些已经训练好的模型进行比较。

/如果要了解如何安装,可以参考之前的文章。/

而我想分享的是在实际安装过程中遇到的问题排解与疑问,以下使用自问自答方式来进行:

1.DL Workbench是个Application,所以需要Desktop执行吗?

答案是不需要。DL Workbench是一个Web Server,安装好了之后可以透过其他的计算机以访问网站的方式来操作,就跟AutoML或是Teachable Machine一样。多人操作应该也没有问题。我喜欢装在Ubuntu Server上,减少像是Desktop版本还要跑个X Window浪费效能。

2.安装DL Workbench需不需要在机器上面安装OpenVINO套件?

答案是不需要。原本我的理解是一个步骤一个步骤去安装OpenVINO所有的工具套件,Workbench放在最后面,当然就要先装好套件后才可以安装Workbench。但其实Workbench使用Docker Container安装,是不需要先下载与安装工具包。为了方便各位进行测试,我也提供我的安装方式作为参考:

Step 1. Docker执行环境安装

确认与安装docker环境:如果不确定Docker的版本,可以重新参考官方文件,

https://docs.docker.com/engine/install/ubuntu/

以下是我安装流程:

A.移除旧版的docker套件:

~$ sudo apt-get remove docker docker-enginedocker.io containerd runc

B.安装docker需要使用到的套件:

~$ sudoapt-get update

~$ sudoapt-get install

apt-transport-https

ca-certificates

curl

gnupg

lsb-release

C.设定apt安装所需要的套件库与环境(x86环境为例)

~$ echo

"deb [arch=amd64signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee/etc/apt/sources.list.d/docker.list > /dev/nul

D.实际进行安装:

~$ sudoapt-get update

~$ sudoapt-get install docker-ce docker-ce-cli containerd.io

E.安装后,需要将ubuntu的用户加入docker的群组:

~$ sudo usermod -aG docker ${USER}

F.重新注销用户,再次登入,才会将新加入的docker群组生效。或是重新启动也可以。

Step 2. 安装GPU Driver

建议可以再次安装Intel GPUDriver,使用DFI 的单板计算机曾经遇到过无法正确安装GPU Driver,导致Workbench无法使用GPU,仅能使用CPU进行训练。安装方次可以参考以下的网址:

https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_linux.html#additional-GPU-steps

https://dgpu-docs.intel.com/installation-guides/ubuntu/ubuntu-focal.html

参考安装流程如下:

A.安装必要的套件,并增加apt套件库的信息

~$ sudoapt-get install -y gpg-agent wget

~$ wget-qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo apt-keyadd -

~$ sudoapt-add-repository

'deb[arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main'

B.安装:

~$ sudoapt-get update

~$ sudoapt-get install

intel-opencl-icd

intel-level-zero-gpu level-zero

intel-media-va-driver-non-freelibmfx1

C.选择性安装开发工具包,如果要执行某些API,还是需要安装才会正常运作:

~$ sudoapt-get install

libigc-dev

intel-igc-cm

libigdfcl-dev

libigfxcmrt-dev

level-zero-dev

D. 设定权限:

可以先检查用户是否在render的群组,使用以下命令来检查,列出目前这个用户所拥有的群组:

~$ groups ${USER}

如果这个用户有没有加入rendervideo的群组,使用以下方法加入:

~$ sudogpasswd -a ${USER} render

~$ sudogpasswd -a ${USER} video

~$newgrp render

~$newgrp video

Step 3. 安装DL Workbench DockerContainer

有实际用过Docker Container的朋友应该知道,如果没有设定将数据储存在外部空间,只要每次重新开启Container,所有数据将会清空,还原成一开始的“干净”状态。因此除了安装之外,还要确保相关设定与项目都有储存到Server的储存装置上,而不是在Container里面。

参考官网的文件进行安装:

https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Persist_Database.html

A. 使用pip安装openvino-workbench套件,这不是下载与安装WorkbenchContainer,可以当作是方便启动的script,简化后面的流程:

~$ python3 -m pip install -Uopenvino-workbench

B.建立一个可以放设定与项目的目录,例如放在自己目录下的openvino-workbench目录:

~$ mkdir -m 777 ~/openvino-workbench

C.执行以下命令启动Workbench

~$ openvino-workbench --imageopenvino/workbench:2021.4 --assets-directory ~/openvino-workbench --enable-gpu--container-name openvino-workbench

这个命令,我们将Container名称命名为 openvino-workbench,并且指定~/openvino-workbench作为项目与设定储存的目录,另外也启动GPU如果发生错误,像是找不到/dev/rencer/*的目录等等,就是系统没有正确的设定GPU,可以尝试先吧–enable-gpu拿掉试试看。

完成后,就可以在本机打开Browser连结上这个网站,例如Workbench主机的IP10.211.55.17,那么就在Browser上面键入:http:// 10.211.55.17:5665

ca10fb96-504e-11ed-a3b6-dac502259ad0.png

3. DL Workbench最吸引我的地方在哪?

看到DL Workbench的接口上,Environment的右边有个Add Remote Target按钮。没错,可以将多台机器的资源统一在这个见面上管理,这样可以将项目切换到不同机器上进行训练与分析。

经过一番努力,测试成功了,真的可以将项目指派到其他机器上面去进行训练,但可惜的是只能在本机进行验证与测试,我想未来的版本应该会解决这个问题。

以下提供安装方式,以及参考网址。

https://docs.openvinotoolkit.org/latest/workbench_docs_Workbench_DG_Setup_Remote_Target.html

Step 1. 在远程主机进行设定,下载并且安装必要套件:

A.安装套件:

~$ sudoapt-get update

~$ sudoapt-get install -y --no-install-recommends

openssh-server

ssh

python3

ython3-distutils

python3-apt

python3-dev

python3-pip

gcc

libgtk-3-0

ffmpeg

~$python3 -m pip install --upgrade pip

B. 更新python3-virtualenvwrapper套件。就个人的经验上我分别在AtomVM的环境上尝试安装时,会遇到个套件出现问题,导致最后的安装无法完成,避免麻烦在一开始就先完成更新套件。以下是更新方式

~$ sudo apt removepython3-virtualenvwrapper

~$ sudo apt autoremove

~$ sudo apt purge python3-virtualenv

~$ /usr/bin/python3 -m pip install--force-reinstall virtualenvwrapper

Step 2. 设定ssh远程登录,并取得privatekey

回到安装DL Workbench的机器上,我们需要可以使用ssh直接登入到远程主机的相关权限。设定的过程中我们将会设定一个private key, 这个档案将要使用在Workbench的设定上。以下是相关执行步骤(如果对于ssh非常熟悉的朋友,可以简化这个流程,直接取得ssh登入的private key)

A. 使用ssh-keygen 产生sshKey

~$ ssh-keygen

B.将刚刚产生的public key 复制到远程的主机,可以使用ssh-copy-id命令,使用方法是:

~$ ssh-copy-id louis@192.168.1.100

# 请将louis改成远程可以登入账号,192.68.1.100改成远程的主机

过程中会需要填写登入的密码,请正确的进行填写。

C.验证是否正确,使用ssh登入远程主机,将不再需要填写密码,可以直接登入。

~$ ssh louis@192.168.1.100

如果可以正常登入,就表示完成这个步骤

Step 3. 确认远程主机的用户拥有根权限(SudoPrivileges),不需要输入密码就可以执行sudo的命令。

A.首先简单的确认是否有sudo的权限以及是否不需要输入密码就可以执行sudo,执行以下指令:

~$ sudo ls -la /

B.如果可以顺利列出根目录下所有的档案与目录,表示这个用户已经拥有根权限,并且不需要密码就可以执行。如果显示没有sudo权限,则表示这个用户没有sudo使用权,请使用以下命令,将这个用户加入到sudo群组中:

~$ su

~$ usermod -a -G sudo USERNAME

~$ exit

C. 加入后,请注销再重新登入,并且再次使用sudols -la / 确认目前用户使用已经拥有sudo权限。

D. 如果用户已经拥有sudo权限,但需要填写密码,则使用visudo,将这个用户加入到/etc/sudoers.tmp档案中:

~$ sudo visudo

此时会开启编辑画面,并且显示档案内容,接着将光标移到档案的最后,加入以下权限:

louis ALL=(ALL) NOPASSWD: ALL #请将louis改成这个账户的名称

接着存挡离开,再重新测试这个用户的sudo命令:

~$ sudo ls -la /

此时应该不需要密码就可以执行了。

*特别注意:使用 visudo 编辑并存挡,务必确认正确填写,否则有可能导致系统严重的问题发生。

Step 4

进入 DL Workbench 设定目前准备进入到DL Workbench设定的步骤,在此之前,必须要先下载id_rsa的私钥到本机来,方便等一下再接口上需要上传这个档案。再次使用ssh登入到安装Workbench的主机上,可以使用vi或是其他编辑器,打开私钥档案,使用以下命令开启:

~$ vi ~/.ssh/id_rsa

ca3cd978-504e-11ed-a3b6-dac502259ad0.png

将会看到以上的编辑画面,可以使用圈选复制,然后在本机新增加一个文本文件,然后贴上刚刚复制的内容,储存成一个文本文件,例如:id_rsa_192.168.0.1.key

接着,在本机打开Browser,进入Workbench的网站,然后按下Create的按钮,产生一个新的项目:

ca6f07e0-504e-11ed-a3b6-dac502259ad0.png

Create Project画面上,可以看到Environment的功能,有个Add Remote Target的按钮,按下后开始新增新的远程主机:

caa29998-504e-11ed-a3b6-dac502259ad0.png

这时可以看到Target Machine的列表,第一个显示的就是Workbench内建预设的环境。按下『Add』按钮后,进行新增机器的画面:

caca8d40-504e-11ed-a3b6-dac502259ad0.png

Add Remote Target窗体中,请填入以下信息:

Hostname (远程主机IP)

Port (远程主机ssh port, 除非有手动变更,预设都是22)

Target Name(自己为这个远程命名)

User (登入远程主机用的账号)

Ssh key (就是一开始我们先存下来的私钥文本文件)

以上正确填写后,下方的Save Target将会从灰色变成深红色,按下后,就开始启动安装与设定程序了。

cae65eda-504e-11ed-a3b6-dac502259ad0.png

安装进行中的画面:

cb09da18-504e-11ed-a3b6-dac502259ad0.png

安装中,每个阶段都可以实时显示状态以及正在设定中的项目:

cb371514-504e-11ed-a3b6-dac502259ad0.png

安装完成后,在Target Machines的列表中会清楚出现该设备,如果安装出现问题,也会出现错误信息。

cb596600-504e-11ed-a3b6-dac502259ad0.png

安装中如果出现错误,也会出现在下方的信息中:

cb7979c2-504e-11ed-a3b6-dac502259ad0.png

回到Create Project画面后,下方的Environment,就可以选择远程的主机来进行演算了。

cb96ce3c-504e-11ed-a3b6-dac502259ad0.png

实际简单的测试一下,可以看到远程主机上跑出来的结果,项目列表上可以看到第二列,使用我们刚刚新增的远程主机资源进行演算的结果:

cbd393da-504e-11ed-a3b6-dac502259ad0.png

4.目前有没有什么可以进一步厘清的地方?

截至目前无法正确的设定远程主机使用GPU或是VPU的资源,算是一种遗憾。我想后续应该是有机会可以解决,后续再做更新。

小结

如果各位希望打造一群工作的主机,可以进行选择模型、设定数据集、建立基准到分析与部署,Workbench正好提供了分布式Environment的安装方式,设定起来不难。后续在商业上思考可以如何客户运用OpenVINO打造一个私有的AI运算环境应该不是问题。

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    29922

    浏览量

    268211
  • 数据库
    +关注

    关注

    7

    文章

    3754

    浏览量

    64253
  • 自然语言
    +关注

    关注

    1

    文章

    286

    浏览量

    13322

原文标题:用DL Workbench轻松完成AI模型的分析与部署工作

文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI模型托管原理分析

    AI模型托管是指将训练好的AI模型部署在云端或边缘服务器上,由第三方平台提供模型运行、管理和优化
    的头像 发表于 11-07 09:33 84次阅读

    企业AI模型部署怎么做

    AI模型部署作为这一转型过程中的关键环节,其成功实施对于企业的长远发展至关重要。在此,AI部落小编为您介绍企业AI
    的头像 发表于 11-04 10:15 84次阅读

    AI模型市场分析

    随着人工智能技术的快速发展,AI模型已成为全球科技竞争的新高地、未来产业的新赛道以及经济发展的新引擎。下面,AI部落小编分析了当前AI
    的头像 发表于 11-01 09:51 102次阅读

    使用AI模型进行数据分析的技巧

    使用AI模型进行数据分析的技巧涉及多个方面,以下是一些关键的步骤和注意事项: 一、明确任务目标和需求 在使用AI模型之前,首先要明确数据
    的头像 发表于 10-23 15:14 380次阅读

    三行代码完成生成式AI部署

    LLM加载与推理部署能力,实现了OpenVINO对CNN网络、生成式模型、LLM网络主流模型的全面推理支持。
    的头像 发表于 08-30 16:49 374次阅读
    三行代码<b class='flag-5'>完成</b>生成式<b class='flag-5'>AI</b><b class='flag-5'>部署</b>

    利用恩智浦云实验室部署AI模型

    如今,人工智能(AI)非常火爆,这个风口该如何把握?作为一个电子工程师,和AI最主要的交集应该就是边缘计算了,具体来讲,就是在一些性能、功耗以及价格相对较低的嵌入式平台上部署和运行AI
    的头像 发表于 08-02 11:46 2655次阅读
    利用恩智浦云实验室<b class='flag-5'>部署</b><b class='flag-5'>AI</b><b class='flag-5'>模型</b>

    揭秘NVIDIA AI Workbench 如何助力应用开发

    能够根据其具体需求调整 AI 模型。 此类工作在过去可能需要复杂的设置,而新工具使这项工作变得空前简单。 NVIDIA AI
    发表于 07-10 18:51 603次阅读
    揭秘NVIDIA <b class='flag-5'>AI</b> <b class='flag-5'>Workbench</b> 如何助力应用开发

    使用esp-dl中的example量化我的YOLO模型时,提示ValueError: current model is not supported by esp-dl错误,为什么?

    使用esp-dl中的example量化我的YOLO模型时,提示:ValueError: current model is not supported by esp-dl 错误, 请看我的代码和
    发表于 06-28 06:47

    STM CUBE AI错误导入onnx模型报错的原因?

    使用cube-AI分析模型时报错,该模型是pytorch的cnn转化成onnx ``` Neural Network Tools for STM32
    发表于 05-27 07:15

    为什么CubeIDE导入AI模型进行分析会报错?

    python已经安装好了,但是在用CubeAI的时候,导入模型进行分析会报错,无法分析。有知道为什么会报[AI:persondetection][12152] Failed to ex
    发表于 05-22 06:38

    搭载星火认知大模型AI鼠标:一键呼出AI助手,办公更高效

    丰富多样的功能,让你的办公变得更高效。 它能够帮助你完成各种工作任务,不管是做PPT、回答问题、写作还是绘画,只需简单操作,AI鼠标就能完成你的要求。 你可以利用它
    的头像 发表于 03-25 11:52 447次阅读
    搭载星火认知大<b class='flag-5'>模型</b>的<b class='flag-5'>AI</b>鼠标:一键呼出<b class='flag-5'>AI</b>助手,办公更高效

    使用CUBEAI部署tflite模型到STM32F0中,模型创建失败怎么解决?

    CRC IP,MX生成工程时已经启用了CRC,代码中也有。 但是依旧无法生成模型。 想问问该如何解决,还是说F0还是无法部署AI模型
    发表于 03-15 08:10

    使用cube-AI分析模型时报错的原因有哪些?

    使用cube-AI分析模型时报错,该模型是pytorch的cnn转化成onnx ``` Neural Network Tools for STM32
    发表于 03-14 07:09

    巨人网络大模型GiantGPT完成备案

    今日,巨人网络正式宣布,已完成游戏AI模型GiantGPT的备案工作,即日起,该AI模型的相
    的头像 发表于 02-03 11:28 770次阅读

    如何轻松完成刚柔结合 PCB 弯曲的电磁分析

    如何轻松完成刚柔结合 PCB 弯曲的电磁分析
    的头像 发表于 11-27 17:46 427次阅读
    如何<b class='flag-5'>轻松</b><b class='flag-5'>完成</b>刚柔结合 PCB 弯曲的电磁<b class='flag-5'>分析</b>?