掌桥专利:专业的专利平台
掌桥专利
首页

TensorFlow在Windows系统下的部署方法

文献发布时间:2023-06-19 10:41:48


TensorFlow在Windows系统下的部署方法

技术领域

本申请涉及计算机技术领域,特别是涉及一种TensorFlow在Windows系统下的部署方法。

背景技术

TensorFlow为一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现中,传统的TensorFlow大多部署在Linux系统下,在Windows系统下部署较少,且在Windows系统下的部署主要依靠编译TensorFlow在Windows系统下的动态编译库,并通过TensorFlow的C扩展应用程序接口(API,Application Programming Interface)重写TensorFlow代码,TensorFlow代码主要通过Python语言来实现,重写代码的工作量较大,且在TensorFlow版本升级后,不再支持Windows系统下的动态编译库文件,因而亟需一种新的TensorFlow在Windows系统下部署的方法。

发明内容

本申请主要解决的技术问题是提供一种TensorFlow在Windows系统下的部署方法,能够降低将TensorFlow应用到Windows系统上所需修改的代码量。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种TensorFlow在Windows系统下的部署方法,所述方法包括:在获取到待处理对象时,应用软件调用深度学习类对象,其中,所述应用软件是采用第一语言开发的应用软件,所述深度学习类对象是所述应用软件调用python代码生成的,所述第一语言与python语言不同;所述应用软件根据所述深度学习类对象中保存的地址运行会话,以对所述待处理对象进行处理,得到第一执行结果;所述应用软件将所述第一执行结果转换为第二执行结果,得到所述待处理对象的处理结果。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机装置,包括处理器以及存储器,且所述计算机装置安装有应用软件,所述处理器耦接所述存储器,所述存储器中存储有程序数据,所述处理器通过执行所述存储器内的所述程序数据以控制所述应用软件实现上述方法中的步骤。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序能够被处理器执行以实现上述方法中的步骤。

本申请的有益效果是:本申请中的方法在获取到待处理对象时,首先调用深度学习类对象,该深度学习类对象是应用软件调用python代码生成的,然后应用软件根据深度学习类对象中保存的地址运行会话,使用运行的会话对待处理对象进行处理,得到第一执行结果,由于该第一执行结果的数据类型是python的数据类型,因此还将第一执行结果转换为第二执行结果,使得最终的执行结果与使用第一语言开发的应用软件适配,最终与Windows系统适配,从而实现当将TensorFlow在Windows系统下部署时,无需使用应用软件所支持的第一语言重新对TensorFlow原有的python代码进行修改,既能够降低将TensorFlow应用到Windows系统上所需修改的代码量,也能够使升级后的TensorFlow与Windows系统兼容。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请TensorFlow在Windows系统下的部署方法一实施方式的流程示意图;

图2是本申请TensorFlow在Windows系统下的部署方法一实施方式的部分流程示意图;

图3是本申请计算机装置一实施方式的结构示意图;

图4是本申请计算机可读存储介质一实施方式的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

首先需要说明的是,通过本申请中的方法可以将TensorFlow部署到安装有Windows系统的计算机装置上,其中,TensorFlow是一个基于数据流编程的符号数学系统,被广泛应用于各类深度学习算法的编程实现中,目前TensorFlow的代码主要是python代码。

参阅图1,图1是本申请TensorFlow在Windows系统下的部署方法一实施方式的流程示意图,该方法包括:

S110:在获取到待处理对象时,应用软件调用深度学习类对象,其中,应用软件是采用第一语言开发的应用软件,深度学习类对象是应用软件调用python代码生成的,第一语言与python语言不同。

具体地,待处理对象可以是待处理图片、待处理视频、待处理音频等,应用软件是对待处理对象进行处理的软件,例如,应用软件是一款视觉应用软件,其具有目标检测功能,待处理对象是包括待检测工件的待处理图片,该视觉应用软件用于对待处理图片进行识别,以判断待检测工件上是否存在缺陷。

同时应用软件是采用与python语言不同的第一语言开发的应用软件,第一语言开发的应用软件可以应用到Windows系统上。在一应用场景中,第一语言为C语言或者C++语言,在其他应用场景中,第一语言还可以是java语言等其他语言,在此不做限制。

深度学习类对象是一个用于执行深度学习任务的类对象,而执行深度学习任务会使用到TensorFlow,同时TensorFlow的代码主要是python代码。

在一应用场景中,应用软件除了具备基于深度学习的处理功能外,还具备非基于深度学习的处理功能,用户可以对该应用软件的处理功能进行选择,此时为了节省能耗,在接收到待处理对象后,只有侦测到用户选择使用基于深度学习的处理功能对待处理对象进行处理时,应用软件才会调用深度学习类对象。具体地,此时步骤S110具体包括:在获取到待处理对象时,若接收到用户输入的选择指令,则应用软件调用深度学习类对象。其中,选择指令为用户选择使用应用软件基于深度学习的处理功能对待处理对象进行处理的指令。

为了便于理解,依旧以应用软件为上述所提及的视觉应用软件进行举例说明:

该视觉应用软件可以对待处理图片进行识别,以判断待检测工件上是否存在缺陷。其中,该视觉应用软件分为两种方式对待处理图片进行处理,一种是基于深度学习的功能,另一种是普通的、非基于深度学习的功能(例如基于数据库进行检测)。同时假设基于深度学习的功能又具备两个目标检测模型,一个是用于对待测工件上的圆形缺陷进行检测的第一检测模型,另一个是用于对待测工件上的方形缺陷进行检测的第二检测模型。

当用户将待处理图片输入到应用软件后,若检测到用户选择使用第一检测模型或第二检测模型对待处理图片进行处理,则判定接收到用户输入的选择指令,而后应用软件调用深度学习类对象;若检测到用户选择使用普通功能对待处理图片进行处理时,则不调用深度学习类对象。

可以理解的是,在其他应用场景中,当应用软件只具备基于深度学习的处理功能时,在获取到待处理对象后,无需用户进行选择,应用软件会自动调用深度学习类对象。

S120:应用软件根据深度学习类对象中保存的地址运行会话,以对待处理对象进行处理,得到第一执行结果。

具体地,深度学习类对象中保存有一会话的地址,应用软件根据该地址运行对应的会话,并使用该会话对待处理对象进行处理,从而得到第一执行结果。

可以理解的是,由于深度学习类对象是应用软件调用python代码生成的,因此生成的第一执行结果的数据类型为python的数据类型,在一应用场景中,第一执行结果的数据类型为NumPy数据类型,其中,NumPy(Numerical Python)是Python的一种开源的数值计算扩展,这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested liststructure)结构要高效的多,能够支持大量的维度数组与矩阵运算,此外也能针对数组运算提供大量的数学函数库。

S130:应用软件将第一执行结果转换为第二执行结果,得到待处理对象的处理结果。

具体地,第二执行结果的数据类型与第一语言相对应,例如,当第一语言是C++语言时,第二执行结果的数据类型是C++数据类型,当第一语言是C语言时,第二执行结果的数据类型是C数据类型。

例如,当第一语言是C++语言时,可利用如下代码将第一执行结果转换为第二执行结果:

Py_object=py_fun(res);

C_data=func(Py_objec)

其中,第一行代码表示的是获取第一执行结果,第二行代码的意思是将第一执行结果转换为第二执行结果。

将第一执行结果转换为第二执行结果的目的在于,使得最终得到的处理结果与应用软件相适配,最终与Windows系统适配。

从上述内容可以看出,本实施方式在获取到待处理对象时,首先调用深度学习类对象,该深度学习类对象是应用软件调用python代码生成的,然后应用软件根据深度学习类对象中保存的地址运行会话,使用运行的会话对待处理对象进行处理,得到第一执行结果,由于该第一执行结果的数据类型是python的数据类型,因此还将第一执行结果转换为第二执行结果,使得最终的执行结果与使用第一语言开发的应用软件适配,最终与Windows系统适配,从而实现当将TensorFlow在Windows系统下部署时,无需使用应用软件所支持的第一语言重新对TensorFlow原有的python代码进行修改,既能够降低将TensorFlow应用到Windows系统上所需修改的代码量,也能够使升级后的TensorFlow与Windows系统兼容。

参阅图2,在步骤S110中应用软件调用深度学习类对象之前还包括:

S140:应用软件进行初始化,生成python解释器。

具体地,应用软件通过python官方提供的扩展应用接口进行初始化,生成python解释器,其中该python解释器对用户是不可见的,其是面对应用软件的。

在一应用场景中,当应用软件是C++语言或者C语言开发的应用软件时,应用软件根据python官方提供的C扩展应用接口(API,Application Programming Interface)进行初始化,生成python解释器。

在一应用场景中,应用软件打开之后就进行初始化生成python解释器,也就是说,此时不管后续用户是否选择使用应用软件的基于深度学习的处理功能对待处理对象进行处理,其都会先生成python解释器。

在另一应用场景中,为了减少python解释器占用计算机装置的内存,只有接收到用户输入的选择指令时,应用软件才会进行初始化,生成python解释器,其中此处的选择指令与上述的选择指令为同一个指令,均为用户选择使用应用软件基于深度学习的处理功能对待处理对象进行处理的指令。

S150:应用软件调用python代码生成深度学习类对象。

具体地,python代码是实现深度学习功能的代码,生成的深度学习类对象用于执行深度学习任务。

其中,应用软件通过python官方提供的扩展应用接口调用python代码生成深度学习类对象。与步骤S140类似,当应用软件是C++语言或者C语言开发的应用软件时,应用软件根据python官方提供的C扩展应用接口调用python代码生成深度学习类对象。

S160:应用软件通过python解释器调用深度学习类对象,生成会话。

具体地,应用软件通过python解释器调用深度学习类对象生成的会话(session)可以理解为基于深度学习的一个识别网络,例如,一个用于对工件上的圆形缺陷进行识别的识别网络。

S170:应用软件将会话的地址保存在深度学习类对象中。

具体地,将会话地址保存在深度学习类对象中,以便后续应用软件调用深度学习类对象运行会话。

在一应用场景中,为了提高内存管理效率,避免产生内存泄漏,本申请的方法还包括:在接收到第一关闭指令时,应用软件调用深度学习类对象,以关闭会话。

具体地,当接收到第一关闭指令时,表明用户不需要使用应用软件基于深度学习的处理功能,此时则调用深度学习类对象,以关闭会话。

继续以上述所提及的例子进行说明:

当用户不再使用第一检测模型或第二检测模型对待处理图片进行目标检测时,用户可以选择关闭已经开启的第一检测模型或第二检测模型,而后应用软件调用深度学习类对象,以关闭会话,从而能够提高计算机装置的内存管理效率。

进一步地,本申请的方法还包括:在接收到第二关闭指令时,应用软件对python解释器占用的内存进行析构处理。

具体地,此时第二关闭指令具体可以是关闭应用软件的指令,也就是说,当用户关闭应用软件时,应用软件对python解释器占用的内存进行析构处理,以释放Windows系统的资源。其中,析构处理指的是释放占用的内存。

从上述内容可以看出,本实施方式一方面能够降低将TensorFlow应用到Windows系统上所需修改的代码量,另一方面能够提高计算机装置的管理内容效率,避免内存泄漏。

参阅图3,图3是本申请计算机装置一实施方式的结构示意图,该计算机装置200包括处理器210以及存储器220,且计算机装置200安装有应用软件,其中计算机装置200的处理器210耦接存储器220,处理器210通过执行存储器220内的程序数据以控制安装的应用软件实现上述任一项方法中的步骤,其中详细的步骤可参见上述实施方式,在此不再赘述。

参阅图4,图4是本申请计算机可读存储介质一实施方式的结构示意图。该计算机可读存储介质300存储有计算机程序310,计算机程序310能够被处理器执行以实现上述任一项方法中的步骤。

其中,计算机可读存储介质300具体可以为U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等可以存储计算机程序310的装置,或者也可以为存储有该计算机程序310的服务器,该服务器可将存储的计算机程序310发送给其他设备运动,或者也可以自运动该存储的计算机程序310。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • TensorFlow在Windows系统下的部署方法
  • Windows系统环境自动化部署方法及自动部署系统
技术分类

06120112641311