简介:桨的深度学习框架采用基于网络的网络范式。对于普通开发人员来说,开始更容易。同时,它支持声明和命令编程,既具有发展的灵活性和高性能。
根据Baidu多年的深度学习技术研究和业务应用,PaddlePaddle是中国的第一个工业级深度学习平台,完整的功能,开源和开放性,并整合了深度学习核心培训和推理框架,基本模型图书馆终点 -- 末端开发套件和丰富的工具组件。
桨的深度学习框架基于编程逻辑采用了基于网络的网络范式。对于普通开发人员来说,开始更容易。同时,它支持声明和命令编程,既具有开发的灵活性又具有高性能。此外,飞行桨不仅与第三方 - 党派开源框架培训的模型部署广泛兼容,而且还提供了一个完整的针对不同生产环境的推理引擎,包括桨推理,适用于高性能服务器和云推理的本地推理库。在组装线的生产环境中,面向服务的推理框架桨式服务,例如自动云,例如自动云,A/B测试等是移动终端和物联网场景的轻量级推理引擎的桨式灯泡,以及前端推理引擎使用的Aspaddle.js。在不同情况下的主流硬件和异质计算的支持,桨的推理性能也导致了大多数主流Impl电子。
可以将飞行桨视为Python依赖库,该库正式提供了各种安装方法,例如PIP,CONDA,源代码汇编。以PIP安装方法为例,Flage Paddle提供了CPU和GPU版本的两个版本:
PIP安装桨板
PIP安装PaddlePaddle-GPU
MNIST是一个非常著名的手写数字识别数据集。无论是Tensorflow的官方网站还是PaddlePaddle的新手,它都是通过它的实用解释。它由图片和手写号码数量的相应标签组成,例如:::
MNIST数据集分为训练图像和测试图像。有60,000张培训图像,10,000张测试图像,每个图像代表0-9,图片大小为28*28矩阵。本节将进行官方MNIST手写。Paddelpaddle提供的数字标识任务是对PaddlePaddle框架进行基本学习的一个例子。就像其他深度学习任务一样,飞行桨也必须通过以下四个步骤完成相对完整的深度学习任务:
桨叶框架中有一些常见的数据集。在此示例中,开发人员可以加载飞行桨框架的数据集,例如在这种情况下涉及的手写数字数据集。两个数据集已在此处加载,一个用于训练模型,另一个用于使用评估模型。
导入paddle.vision.transforms作为ttransform = t.normalize(平均值= [127.5],std = [127.5],data_format ='chw')
train_dataset = paddle.vision.datasets.mnist(mode ='train',transform = transform)val_dataset = paddle.vision.datasets.mist(mode ='test',transform)
通过顺序建立网络结构层。注意,需要先执行数据的数据,并且[1,28,28]形状的图像数据改变了形状的形状。
mnist = paddle.nn.Sequeential(
paddle.nn.flatten(),,
paddle.nn.linear(784,512),
paddle.nn.relu(),
paddle.nn.dropout(0.2),
paddle.nn.linear(512,10))
在训练模型之前,您需要在训练模型时配置计算方法和优化损失方法。开发人员可以使用桨框架提供的准备,然后使用FIT界面来启动训练模型。
#预计将生成模型对象,这对于后续配置,培训和验证非常方便
型号= paddle.model(mnist)
#模型培训相关的配置,准备损失计算方法,优化器和准确度计算方法
model.prepare(paddle.optimizer.adam(parameters = model.parameters()),paddle.nn.crossesntropyloss(),
PADDLE.METRIC.ACCURACY())
#开始模型培训
model.fit(train_dataset,
时代= 5,
batch_size = 64,
详细= 1)
培训结果:
日志中打印的损失值是thecurrent步骤,度量是上一个步骤的平均值。EPOCH1/5TEP 938/938 ======================8ms/stepepoch 2/5tep 938/938 [=========================================================================================================================================-8ms/stepepoch 3/5tep 938/938 [=============================================================:0.9595 -7ms/stepepoch 4/5Tep 938/938 [===============================================] - 损失:0.0094--ACC:0.9638 -7ms/stepepoch 5/5step 938/938 [===================================================================================================================================================ACC:0.9670 -8ms/step
开发人员可以使用预定义的验证数据集来评估以前训练的模型的准确性。
模型。
结果如下:
{'损失':[2.145765e-06],'acc':0.9751}
可以看出,通过初步培训获得的模型效应约为97.5%。逐渐理解桨板后,开发人员可以通过调整训练参数来提高模型的准确性。
PaddlePaddle团队首次开源文本识别模型Kit Paddleocr,其目标是创建一个丰富的,领先和实用的文本识别模型/工具库。此模型套件是一个实用的超级重量级OCR系统。它主要由三个零件:DB文本检测,检测框校正和CRNN文本识别。该系统使用骨干网络选择和调整,预测头部设计,数据增强,学习速率转换策略,正则化参数选择,预训练模型使用以及自动切割量化量化该模型的模型被调整和纤细,并最终获得了中文英语OCR的超光量和2.80万英语数字OCR,总体大小为350万。
#index.py
导入基础64
进口瓶
导入随机
从paddlecr进口paddleocr
ocr = paddleocr(use_gpu = false)
@瓶
def login():
filepath ='htts://www.shouxicto.com/article/temp/' +(''.join(random.sample('zyxwvutsrqponmlkjihgfedcba','
用开放式(filepath,'wb')作为f:
lyrresult = ocr.ocr(filepath,cls = false)
返回{'result':[[line [1] [0],float(line [1] [1])] for ocrresult中的行]}}
botter.run(主机='0.0.0.0',端口= 8080)
开发完成后,运行项目:
python index.py
您可以看到该服务已经启动:
然后浏览邮递员工具进行测试,首先准备图片(在这里作为基于paddleocr项目测试的测试图片的示例):)::
通过将图片转换为base64编码,并使用邮政方法请求仅启动的Web服务,您可以看到Paddlecr的执行结果:
目前,主要云制造商的FAA平台逐渐支持了容器镜像部署。因此,您可以将项目包装到镜像中,并通过无服务器开发人员将其部署到Alibaba Cloud功能。
首先,您需要完成Dockerfile文件:
来自Python:3.7-Slim
#创建应用程序目录
workdir/usr/src/app
#捆绑应用程序源
复制..
编写符合无服务器开发规范的YAML文档:
#s.yaml
.1'命令:'[“ python”]'args:'[“ index.py”]'触发器: - 名称:httptrigger类型:http config:authtype:authtype:匿名甲基:http ruteconfigs:-path:-path:-path:-path: /*
首先建立镜子。在这里,您可以通过无服务器开发人员构建它:
S Build-user-Docker
施工完成后,可以通过工具直接执行部署:
S DEMATION-PUSH-REGISTRAIN-ACR-INTERNET-USER-LOGAL -Y
部署完成后,您可以看到系统返回的测试地址:
目前,可以测试测试地址,并且还获得了预期效果:
通过请求部署在无服务器体系结构上的项目,您可以看到冷启动和热量开始的时间消耗:
通过比较冷启动和热量,我们可以发现当热量启动时,整个系统的性能相对出色。目前,您可以考虑优化的方法:
资料来源:阿里巴巴云