CN115660104A - 面向arm处理器的深度学习模型部署方法及设备 - Google Patents
面向arm处理器的深度学习模型部署方法及设备 Download PDFInfo
- Publication number
- CN115660104A CN115660104A CN202211333628.4A CN202211333628A CN115660104A CN 115660104 A CN115660104 A CN 115660104A CN 202211333628 A CN202211333628 A CN 202211333628A CN 115660104 A CN115660104 A CN 115660104A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- learning model
- model
- arm processor
- docker
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Analysis (AREA)
Abstract
本发明提供了一种面向ARM处理器的深度学习模型部署方法及设备。所述方法包括:步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。本发明降低了模型部署和运维的难度,大幅提升了边缘计算环境下模型部署和成果应用的速度,为深度学习技术的快速转化和落地应用提供了重要的技术支撑。
Description
技术领域
本发明实施例涉及人工智能技术领域,尤其涉及一种面向ARM处理器的深度学习模型部署方法及设备。
背景技术
与传统机器学习模型相比,深度学习模型凭借其强大的表征能力,已经在机器视觉视觉、自然语言处理等众多领域取得了令人满意的性能。深度学习模型的训练和部署需要搭建一整套复杂繁琐的基础环境,容器技术的隔离沙箱机制可以确保模型部署在一个独立的运行环境,不依赖于特定的编程语言、框架或系统。不同容器可以提供不同的微服务,相互之间调用和通讯比较方便,大大提升了模型部署的灵活性。但是,采用本地部署的方式无法实现线上快速自动化的部署。随着边缘计算技术的兴起和海量嵌入式设备的普及,有些研究基于容器技术构建了深度学习模型基础运行环境镜像,但是这些镜像仍然无法应用于基于ARM架构的嵌入式设备。因此,开发一种面向ARM处理器的深度学习模型部署方法及设备,可以有效克服上述相关技术中的缺陷,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种面向ARM处理器的深度学习模型部署方法及设备。
第一方面,本发明的实施例提供了一种面向ARM处理器的深度学习模型部署方法,包括:步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤1具体包括:在本地Windows计算机安装Docker Desktop,并开启Windows系统中的WSL,通过虚拟化技术在Windows虚拟机中运行Linux内核,在DockerDesktop的虚拟环境中启用交叉编译,以实现在AMD处理器上编译面向ARM处理器的可执行镜像文件。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤2具体包括:在步骤1开启的交叉编译环境下,根据开源的OpenVINO源码及其Dockerfile文件以交叉编译的方式,构建面向ARM处理器的深度学习推理引擎镜像;在所述引擎镜像中搭建面向多种主流深度学习框架和经典深度学习模型的基础运行环境,提供对Ubuntu操作系统、Python编程语言、OpenCV计算机视觉框架、Pytorch和Tensorflow深度学习框架等环境依赖的支持,将所述引擎镜像推送到公共镜像仓库DockerHub,在深度学习模型部署时实现对该镜像的快速获取。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤3具体包括:准备用于深度学习模型训练的数据,并基于主流深度学习框架在本地Windows计算机的GPU上训练深度学习模型,读取训练好的模型文件并将其重新导出为OpenVINO支持的模型格式,包括ONNX模型或OpenVINO的IR模型,IR模型由两个名字相同的文件共同构成,一个是包含网络拓扑信息的.bin格式文件,另一个是包含权重和偏差二进制数据的.xml格式文件。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤4具体包括:基于本地的Docker Desktop软件,从公共镜像仓库Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,在该容器的基础运行环境中运行步骤3中导出的面向指定任务的深度学习模型,并基于Docker buildx命令将运行有深度学习模型的容器以交叉编译的方式构建为一个新镜像,该镜像便是面向指定任务的深度学习模型镜像,运行在具有ARM处理器的嵌入式设备系统环境中。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤5具体包括:准备一具有ARM处理器的嵌入式设备,并为该设备配置合适的操作系统,安装Docker所需的基础组件并为其添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本。
在上述方法实施例内容的基础上,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤6具体包括:在用于模型部署的嵌入式设备上,从公共镜像仓库Docker Hub中拉取步骤4中构建的面向指定任务的深度学习模型镜像,通过在所述镜像上执行Docker启动命令,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入神经计算棒用于加速模型推理,将指定数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型部署。
第二方面,本发明的实施例提供了一种面向ARM处理器的深度学习模型部署装置,包括:第一主模块,用于实现步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;第二主模块,用于实现步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;第三主模块,用于实现步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;第四主模块,用于实现步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器;以及
与处理器通信连接的至少一个存储器,其中:
存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种实现方式中任一种实现方式所提供的面向ARM处理器的深度学习模型部署方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种实现方式中任一种实现方式所提供的面向ARM处理器的深度学习模型部署方法。
本发明实施例提供的面向ARM处理器的深度学习模型部署方法及设备,确保了嵌入式设备对多种深度学习模型的兼容性,降低了模型部署和运维的难度,大幅提升了边缘计算环境下模型部署和成果应用的速度,为深度学习技术的快速转化和落地应用提供了重要的技术支撑。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的面向ARM处理器的深度学习模型部署方法流程图;
图2为本发明实施例提供的面向ARM处理器的深度学习模型部署装置结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图;
图4为本发明实施例提供的面向ARM处理器的深度学习模型快速部署设备内部结构图;
图5为本发明实施例提供的计算机视觉图像的预测结果图;
图6为本发明实施例提供的卫星遥感影像的预测结果图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明实施例提供了一种面向ARM处理器的深度学习模型部署方法,参见图1,该方法包括:步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤1具体包括:在本地Windows计算机安装DockerDesktop,并开启Windows系统中的WSL,通过虚拟化技术在Windows虚拟机中运行Linux内核,在Docker Desktop的虚拟环境中启用交叉编译,以实现在AMD处理器上编译面向ARM处理器的可执行镜像文件。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤2具体包括:在步骤1开启的交叉编译环境下,根据开源的OpenVINO源码及其Dockerfile文件以交叉编译的方式,构建面向ARM处理器的深度学习推理引擎镜像;在所述引擎镜像中搭建面向多种主流深度学习框架和经典深度学习模型的基础运行环境,提供对Ubuntu操作系统、Python编程语言、OpenCV计算机视觉框架、Pytorch和Tensorflow深度学习框架等环境依赖的支持,将所述引擎镜像推送到公共镜像仓库Docker Hub,在深度学习模型部署时实现对该镜像的快速获取。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤3具体包括:准备用于深度学习模型训练的数据,并基于主流深度学习框架在本地Windows计算机的GPU上训练深度学习模型,读取训练好的模型文件并将其重新导出为OpenVINO支持的模型格式,包括ONNX模型或OpenVINO的IR模型,IR模型由两个名字相同的文件共同构成,一个是包含网络拓扑信息的.bin格式文件,另一个是包含权重和偏差二进制数据的.xml格式文件。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤4具体包括:基于本地的Docker Desktop软件,从公共镜像仓库Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,在该容器的基础运行环境中运行步骤3中导出的面向指定任务的深度学习模型,并基于Docker buildx命令将运行有深度学习模型的容器以交叉编译的方式构建为一个新镜像,该镜像便是面向指定任务的深度学习模型镜像,运行在具有ARM处理器的嵌入式设备系统环境中。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤5具体包括:准备一具有ARM处理器的嵌入式设备,并为该设备配置合适的操作系统,安装Docker所需的基础组件并为其添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署方法,步骤6具体包括:在用于模型部署的嵌入式设备上,从公共镜像仓库Docker Hub中拉取步骤4中构建的面向指定任务的深度学习模型镜像,通过在所述镜像上执行Docker启动命令,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入神经计算棒用于加速模型推理,将指定数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型部署。
本发明实施例提供的面向ARM处理器的深度学习模型部署方法,确保了嵌入式设备对多种深度学习模型的兼容性,降低了模型部署和运维的难度,大幅提升了边缘计算环境下模型部署和成果应用的速度,为深度学习技术的快速转化和落地应用提供了重要的技术支撑。
在实施例1中,在树莓派4B(Raspberry PI 4B)设备上实现城市火灾检测模型的快速部署,包括步骤:
步骤1,本地计算机安装Docker Desktop。在微星GL65笔记本电脑的默认Windows环境下安装Docker Desktop软件,并开启WSL功能,通过虚拟化技术在Windows虚拟机中运行Linux内核,在Docker Desktop中新建一个Linux虚拟环境,并通过运行binfmt_misc镜像来启用交叉编译功能,实现在AMD处理器上编译面向ARM处理器的可执行镜像文件。
步骤2,交叉编译面向ARM处理器的深度学习推理引擎。登录OpenVINO官网下载开源的OpenVINO源码及其提供的Dockerfile文件,在步骤1开启的交叉编译环境下,通过Docker Buildx命令以交叉编译的方式构建面向ARM处理器的深度学习推理引擎镜像。该镜像搭建面向多种主流深度学习框架和经典深度学习模型的基础运行环境,提供对armv7架构、Ubuntu操作系统、Python编程语言、OpenCV计算机视觉框架、Pytorch和Tensorflow深度学习框架等环境依赖的支持,使用Docker命令将该镜像推送到公共镜像仓库Docker Hub,在深度学习模型部署时实现对该镜像的快速获取。
步骤3,训练城市火灾检测模型并导出。将开源的火焰和烟雾检测数据集(FASDD)中的计算机视觉数据(FASDD_CV)作为深度学习模型(YOLOv5s-v2.0)的输入数据,并在GPU上基于深度学习框架(Pytorch1.5.1)训练深度学习城市火灾检测模型,迭代训练周期设置为300次。读取训练好的模型文件(best.pt),将其导出为OpenVINO支持的ONNX格式,并命名为best.onnx。
步骤4,构建城市火灾检测模型镜像。启动本地计算机中的Docker Desktop软件,从Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,将导出的城市火灾检测模型best.onnx复制到该容器的基础运行环境中并运行。程序可正常运行之后,再次基于Docker buildx命令将运行有城市火灾检测模型的容器以交叉编译的方式构建为一个新镜像。该镜像便是面向城市火灾检测任务的深度学习模型镜像,可成功运行在具有ARM处理器的嵌入式设备系统环境中。
步骤5,嵌入式设备安装Docker。准备一个树莓派4B设备,并为该设备配置官网发布的操作系统(Raspberry Pi Desktop),安装Docker所需的基础组件,包括apt-transport-https、software-properties-common、ntp、ntpdate、curl和ca-certificates,并为Docker添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本19.03.5。
步骤6,快速的模型部署和推理加速。在安装有Docker软件的树莓派4B设备上,从Docker Hub中拉取步骤4中构建的城市火灾检测模型镜像。执行Docker run命令启动城市火灾检测模型镜像,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入英特尔神经计算棒(Intel Neural Compute Stick,NCS2)用于加速模型推理,将城市火灾监控系统拍摄的计算机视觉图像作为测试数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型快速部署全部流程。
在实施例2中,在树莓派4B设备上实现森林野火监测模型的快速部署,包括步骤:
步骤1和步骤2采用与实施例1相同的操作流程,后续步骤将直接使用其执行结果,此处不再赘述。
步骤3,训练森林野火监测模型并导出。将开源的火焰和烟雾检测数据集(FASDD)中的卫星遥感数据(FASDD_RS)作为深度学习模型(YOLOv5s-v2.0)的输入数据,并在GPU上基于深度学习框架(Pytorch1.5.1)训练深度学习森林野火监测模型,迭代训练周期设置为300次。读取训练好的模型文件(best.pt),将其导出为OpenVINO支持的ONNX格式,并命名为best.onnx。
步骤4,构建森林野火监测模型镜像。启动本地计算机中的Docker Desktop软件,从Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,将导出的森林野火监测模型best.onnx复制到该容器的基础运行环境中并运行。程序可正常运行之后,再次基于Docker buildx命令将运行有森林野火监测模型的容器以交叉编译的方式构建为一个新镜像。该镜像便是面向森林野火监测任务的深度学习模型镜像,可成功运行在具有ARM处理器的嵌入式设备系统环境中。
步骤5,嵌入式设备安装Docker。准备一个树莓派4B设备,并为该设备配置官网发布的操作系统(Raspberry Pi Desktop),安装Docker所需的基础组件,包括apt-transport-https、software-properties-common、ntp、ntpdate、curl和ca-certificates,并为Docker添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本19.03.5。
步骤6,快速的模型部署和推理加速。在安装有Docker软件的树莓派4B设备上,从Docker Hub中拉取步骤4中构建的森林野火监测模型镜像。执行Docker run命令启动森林野火监测模型镜像,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入英特尔神经计算棒(Intel Neural Compute Stick,NCS2)用于加速模型推理,融合Sentinel-2遥感影像的红绿蓝波段并将其转换为8位的真彩色图像,将8位的真彩色图像作为测试数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型快速部署全部流程。
图4展示面向ARM处理器的深度学习模型快速部署设备的内部结构,包括:ARM处理器,在高性能四核ARM处理器实现模型,上述实施例均为其配置与armv7架构相匹配的树莓派操作系统;智能(AI)协处理器,神经计算棒是基于USB模式的深度学习推理工具和独立的智能(AI)协处理器;存储器,存储器用于存储可在ARM处理器上运行的计算机可执行程序。当所述可执行程序被所述处理器执行时,使得面向ARM处理器的深度学习模型快速部署设备实现所述的面向ARM处理器的深度学习模型快速部署方法。
表1城市火灾检测模型在不同处理器上的推理速度
表1对比本发明生成的城市火灾检测模型在不同处理器上的推理速度。从表1中得知,英特尔的高性能CPU取得每秒25帧的最高的帧率,基本达到实时检测的需求。由于ONNX模型基于序列化数据结构存储神经网络的权重信息,而GPU擅长的是并行计算,所以ONNX模型在GPU上的推理速度受到一定的限制。凭借NCS2的辅助计算,成本极低的树莓派4B也取得令人满意的检测速度,CPU和GPU的推理速度仅是的3-4倍。而且值得注意的是,基于本发明提供的方法、设备和存储介质,在嵌入式设备上部署深度学习模型仅需分钟级的时长成本,且大大降低模型部署的难度,这为智能成果在边缘计算环境中的快速落地应用提供有力支撑。
图5展示实施例1中计算机视觉图像的预测结果。从图5中看出,本发明实施例1构建的城市火灾检测模型在树莓派4B上取得良好的推理检测效果。使在城市地下通道的暗环境下,该模型仍然将火焰和烟雾的轮廓进行精准地框选。附图6展示本发明实施例2中卫星遥感影像的预测结果图。从预测结果中看出,对于大尺度的遥感影像,森林野火监测模型也取得良好的检测结果,甚至对于面积占比极小的火焰小目标都能实现精准预测。实施例1和实施例2证实本发明为深度学习模型提供稳定可靠的推理运行环境,并能毫无保留地发挥出深度学习模型的优良性能。
本发明为多种深度学习模型提供稳定的、容器化的、可快速获取和部署的模型推理环境,将嵌入式设备上的深度学习模型部署时长缩短至分钟级。,面向ARM处理器的深度学习模型推理引擎提供深度学习模型在ARM处理器上的推理能力。与现有技术相比,本发明确保嵌入式设备对多种深度学习模型的兼容性,降低模型部署和运维的难度,有助于大幅提升边缘计算环境下模型部署和成果应用的速度。为深度学习技术的快速转化和落地应用提供重要的技术支撑,对于边缘计算和智能领域的交叉融合发展具有重要意义。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种面向ARM处理器的深度学习模型部署装置,该装置用于执行上述方法实施例中的面向ARM处理器的深度学习模型部署方法。参见图2,该装置包括:第一主模块,用于实现步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;第二主模块,用于实现步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;第三主模块,用于实现步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;第四主模块,用于实现步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
本发明实施例提供的面向ARM处理器的深度学习模型部署装置,采用图2中的若干模块,确保了嵌入式设备对多种深度学习模型的兼容性,降低了模型部署和运维的难度,大幅提升了边缘计算环境下模型部署和成果应用的速度,为深度学习技术的快速转化和落地应用提供了重要的技术支撑。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征获得相应的技术手段,以及由这些技术手段构成的技术方案,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第一子模块,用于实现步骤1具体包括:在本地Windows计算机安装Docker Desktop,并开启Windows系统中的WSL,通过虚拟化技术在Windows虚拟机中运行Linux内核,在Docker Desktop的虚拟环境中启用交叉编译,以实现在AMD处理器上编译面向ARM处理器的可执行镜像文件。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第二子模块,用于实现步骤2具体包括:在步骤1开启的交叉编译环境下,根据开源的OpenVINO源码及其Dockerfile文件以交叉编译的方式,构建面向ARM处理器的深度学习推理引擎镜像;在所述引擎镜像中搭建面向多种主流深度学习框架和经典深度学习模型的基础运行环境,提供对Ubuntu操作系统、Python编程语言、OpenCV计算机视觉框架、Pytorch和Tensorflow深度学习框架等环境依赖的支持,将所述引擎镜像推送到公共镜像仓库Docker Hub,在深度学习模型部署时实现对该镜像的快速获取。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第三子模块,用于实现步骤3具体包括:准备用于深度学习模型训练的数据,并基于主流深度学习框架在本地Windows计算机的GPU上训练深度学习模型,读取训练好的模型文件并将其重新导出为OpenVINO支持的模型格式,包括ONNX模型或OpenVINO的IR模型,IR模型由两个名字相同的文件共同构成,一个是包含网络拓扑信息的.bin格式文件,另一个是包含权重和偏差二进制数据的.xml格式文件。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第四子模块,用于实现步骤4具体包括:基于本地的Docker Desktop软件,从公共镜像仓库Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,在该容器的基础运行环境中运行步骤3中导出的面向指定任务的深度学习模型,并基于Docker buildx命令将运行有深度学习模型的容器以交叉编译的方式构建为一个新镜像,该镜像便是面向指定任务的深度学习模型镜像,运行在具有ARM处理器的嵌入式设备系统环境中。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第五子模块,用于实现步骤5具体包括:准备一具有ARM处理器的嵌入式设备,并为该设备配置合适的操作系统,安装Docker所需的基础组件并为其添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的面向ARM处理器的深度学习模型部署装置,还包括:第六子模块,用于实现步骤6具体包括:在用于模型部署的嵌入式设备上,从公共镜像仓库Docker Hub中拉取步骤4中构建的面向指定任务的深度学习模型镜像,通过在所述镜像上执行Docker启动命令,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入神经计算棒用于加速模型推理,将指定数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型部署。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图3所示,该电子设备包括:至少一个处理器(processor)、通信接口(Communications Interface)、至少一个存储器(memory)和通信总线,其中,至少一个处理器,通信接口,至少一个存储器通过通信总线完成相互间的通信。至少一个处理器可以调用至少一个存储器中的逻辑指令,以执行前述各个方法实施例提供的方法的全部或部分步骤。
此外,上述的至少一个存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个方法实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的一些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种面向ARM处理器的深度学习模型部署方法,其特征在于,包括:步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
2.根据权利要求1所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤1具体包括:在本地Windows计算机安装Docker Desktop,并开启Windows系统中的WSL,通过虚拟化技术在Windows虚拟机中运行Linux内核,在Docker Desktop的虚拟环境中启用交叉编译,以实现在AMD处理器上编译面向ARM处理器的可执行镜像文件。
3.根据权利要求2所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤2具体包括:在步骤1开启的交叉编译环境下,根据开源的OpenVINO源码及其Dockerfile文件以交叉编译的方式,构建面向ARM处理器的深度学习推理引擎镜像;在所述引擎镜像中搭建面向多种主流深度学习框架和经典深度学习模型的基础运行环境,提供对Ubuntu操作系统、Python编程语言、OpenCV计算机视觉框架、Pytorch和Tensorflow深度学习框架等环境依赖的支持,将所述引擎镜像推送到公共镜像仓库Docker Hub,在深度学习模型部署时实现对该镜像的快速获取。
4.根据权利要求3所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤3具体包括:准备用于深度学习模型训练的数据,并基于主流深度学习框架在本地Windows计算机的GPU上训练深度学习模型,读取训练好的模型文件并将其重新导出为OpenVINO支持的模型格式,包括ONNX模型或OpenVINO的IR模型,IR模型由两个名字相同的文件共同构成,一个是包含网络拓扑信息的.bin格式文件,另一个是包含权重和偏差二进制数据的.xml格式文件。
5.根据权利要求4所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤4具体包括:基于本地的Docker Desktop软件,从公共镜像仓库Docker Hub中拉取步骤2构建的面向ARM处理器的深度学习推理引擎镜像,并进入其容器内部环境,在该容器的基础运行环境中运行步骤3中导出的面向指定任务的深度学习模型,并基于Docker buildx命令将运行有深度学习模型的容器以交叉编译的方式构建为一个新镜像,该镜像便是面向指定任务的深度学习模型镜像,运行在具有ARM处理器的嵌入式设备系统环境中。
6.根据权利要求5所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤5具体包括:准备一具有ARM处理器的嵌入式设备,并为该设备配置合适的操作系统,安装Docker所需的基础组件并为其添加GPG密钥,根据操作系统的具体情况,安装当前系统支持的Docker版本。
7.根据权利要求6所述的面向ARM处理器的深度学习模型部署方法,其特征在于,步骤6具体包括:在用于模型部署的嵌入式设备上,从公共镜像仓库Docker Hub中拉取步骤4中构建的面向指定任务的深度学习模型镜像,通过在所述镜像上执行Docker启动命令,进入到用于模型推理的容器环境,在嵌入式设备的USB端口插入神经计算棒用于加速模型推理,将指定数据输入到模型中进行推理预测,完成面向ARM处理器的深度学习模型部署。
8.一种面向ARM处理器的深度学习模型部署装置,其特征在于,包括:第一主模块,用于实现步骤1,在本地电子设备上安装Docker Desktop;步骤2,交叉编译面向ARM处理器的深度学习推理引擎;第二主模块,用于实现步骤3,训练面向指定任务的深度学习模型并将训练好的深度学习模型导出;第三主模块,用于实现步骤4,构建面向指定任务的深度学习模型镜像;步骤5,在嵌入式设备上安装Docker;第四主模块,用于实现步骤6,在公共镜像仓库Docker Hub中拉取之前训练好的深度学习模型,并在嵌入式设备上对训练好的深度学习模型进行部署和推理加速。
9.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器和通信接口;其中,
所述处理器、存储器和通信接口相互间进行通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以执行权利要求1至7任一项权利要求所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求1至7中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211333628.4A CN115660104A (zh) | 2022-10-28 | 2022-10-28 | 面向arm处理器的深度学习模型部署方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211333628.4A CN115660104A (zh) | 2022-10-28 | 2022-10-28 | 面向arm处理器的深度学习模型部署方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115660104A true CN115660104A (zh) | 2023-01-31 |
Family
ID=84994056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211333628.4A Pending CN115660104A (zh) | 2022-10-28 | 2022-10-28 | 面向arm处理器的深度学习模型部署方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115660104A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048542A (zh) * | 2023-02-11 | 2023-05-02 | 之江实验室 | 一种计算机视觉深度学习模型的优化部署方法与装置 |
-
2022
- 2022-10-28 CN CN202211333628.4A patent/CN115660104A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048542A (zh) * | 2023-02-11 | 2023-05-02 | 之江实验室 | 一种计算机视觉深度学习模型的优化部署方法与装置 |
CN116048542B (zh) * | 2023-02-11 | 2023-10-31 | 之江实验室 | 一种计算机视觉深度学习模型的优化部署方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021136365A1 (zh) | 基于机器学习模型的应用开发方法、装置及电子设备 | |
US20210065058A1 (en) | Method, apparatus, device and readable medium for transfer learning in machine learning | |
US11868896B2 (en) | Interface for working with simulations on premises | |
US10210434B1 (en) | Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation | |
US10474934B1 (en) | Machine learning for computing enabled systems and/or devices | |
US10878197B2 (en) | Self-learning user interface with image-processed QA-pair corpus | |
WO2020186899A1 (zh) | 一种提取机器学习训练过程中的元数据的方法、装置 | |
US10102449B1 (en) | Devices, systems, and methods for use in automation | |
BR102019003207A2 (pt) | uso de modelo de aprendizagem de máquinas e processamento de linguagem natural para gerenciar e atribuir tarefas | |
EP3973381A1 (en) | Translating between programming languages using machine learning | |
US20210397418A1 (en) | Utilizing natural language understanding and machine learning to generate an application | |
US20080215508A1 (en) | Method and apparatus for human behavior modeling in adaptive training | |
US7844424B2 (en) | Human behavioral modeling and simulation framework | |
CN115660104A (zh) | 面向arm处理器的深度学习模型部署方法及设备 | |
CN109492749B (zh) | 在局域网中实现神经网络模型线上服务的方法及装置 | |
US20230161561A1 (en) | Intelligent Recommendation for Creation of Software Architectural Diagrams | |
Nüst et al. | The rockerverse: packages and applications for containerization with r | |
Altinbas et al. | GUI element detection from mobile UI images using YOLOv5 | |
CN111427684A (zh) | 一种服务部署的方法、系统、及装置 | |
CN114035803A (zh) | 代码自动生成方法、装置、设备及计算机可读存储介质 | |
US20230011461A1 (en) | Method and system for generating engineering diagrams in an engineering system | |
EP4363965A1 (en) | Source code synthesis for domain specific languages from natural language text | |
US20240061674A1 (en) | Application transition and transformation | |
US20080301631A1 (en) | Human transparency paradigm | |
US11762758B2 (en) | Source code fault detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |