设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

基于PaddlePaddle搭建工业级ICNET应用 预测速度超TensorFlow 20%(2)

发布时间:2019-04-19 15:48 所属栏目:19 来源:数行僧
导读:自ICNET问世以来,各家深度学习架构都快速的推出了相应的模型实现,包括PaddlePaddle,tensorflow和pytorch。以下将主要基于精密零件智能分拣场景对比PaddlePaddle和tensorflow中ICNET网络的应用性能。 PaddlePaddl

自ICNET问世以来,各家深度学习架构都快速的推出了相应的模型实现,包括PaddlePaddle,tensorflow和pytorch。以下将主要基于精密零件智能分拣场景对比PaddlePaddle和tensorflow中ICNET网络的应用性能。

PaddlePaddle介绍

PaddlePaddle (PArallel Distributed Deep LEarning) 最初由百度深度学习实验室于 2013 年创建,一直被百度内部的研发工程师们所使用。在2016年百度世界大会上对外开放,它是国内第一个开源的机器学习平台。它从一开始就专注于充分利用 GPU 集群的性能,为分布式环境的并行计算进行加速,所以在对大规模数据进行AI训练和应用上要比TensorFlow要快得多。同时,它对国内用户尤其友好,有完善的中文文档支持,它在开发效率和易用性方面有较明显的优势,它可以使用一两行代码实现TensorFlow需要数行代码才能实现的功能,从而使开发者将工作的重点放在构建深度学习模型的高层部分。

PaddlePaddle中ICNET在工业界的应用

截至目前, PaddlePaddle已在互联网行业CTR预测、搜索排序、大规模图像分类等数亿级用户量的产品和服务上成功部署使用。当下,传统行业正在进行深度变革,利用AI技术赋能,实现传统行业工作的自动化,智能化,使其工作人员的工作内容技术含量更高、更人性化,从而促进传统行业的现代化转型和产业升级,对工厂经营效率和效益的提高有很大的帮助和意义。

就在最近,领邦智能联合百度PaddlePaddle团队对公司的精密零件质检工作进行了AI赋能升级。在精密零件的人工质检工作中,工人每天需要8~12小时在注意力高度集中亮光的条件下目视检查直径45mm以内零件的质量,工作的强度非常大,对工人视力也有很大的伤害。目前基于PaddlePaddle平台实现的ICNET模型在机器质检的应用上已经达到了人工质检的准确度,从机器代人这个角度进行经济测算,可使工厂生产成本平均降低15%,效益提升15%;由于机器检验水平稳定,大大提高了产品的交付质量,交付投诉率平均降低了30%。由于精密零件质检数据的是保密非公开的,所以我们用公开数据集cityscape来介绍一下如何在PaddlePaddle上训练和应用ICNET实现图像语义分割,整个流程可以仅在几天内完成。

开发环境

操作系统:Linux x86_64

CPU版本:Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz

GPU版本:Nvidia-P40(运行状况如下图所示) 

Figure 8 gpu运行状况

数据准备-Cityscapes

Cityscapes( https://www.cityscapes-dataset.com/ )包含从50个城市收集的不同季节的5,000个高质量像素级精细注释图像(定义了19个类别)。各有2975/500/1525张图用于训练/验证/测试。

下载后得到cityscape数据集,下载后的文件结构如下:

Figure 9 cityscapes数据集结构

安装PaddlePaddle

PaddlePaddle支持Ubuntu 14.04/16.04/18.04;CentOS 7/6;MacOS;Windows7/8/10。具体请参考官方教程,非常详细(http://staging.PaddlePaddle.org/documentation/docs/zh/0.14.0/new_docs/beginners_guide/install/install_doc.html )

因为PaddlePaddle已经在pip封装了自己的安装包,我这里选择构建虚拟环境,并直接从pip傻瓜式安装。

  • 如果不使用gpu,直接通过pip安装
  1. pip install PaddlePaddle   
  • 如果是使用gpu,需要先查看系统的cuda和cudnn版本

查看cuda版本

  1. cat /usr/local/cuda/version.txt   

查看cudnn 版本

  1. cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2   

按照系统的cuda和cudnn版本选择需要安装的PaddlePaddle-gpu版本

  1. pip install PaddlePaddle-gpu==1.3.0.post97   
构建模型

根据ICNET网络结构构建模型,创建不同比例采样的低分辨率图像,再通过CCF融合逐步提高精度:

基于PaddlePaddle搭建工业级ICNET应用 预测速度超TensorFlow 20%

模型训练

利用已经写好的model构建trainer:

基于PaddlePaddle搭建工业级ICNET应用 预测速度超TensorFlow 20%

执行以下命令进行训练,同时指定checkpoint保存路径:

  1. python train.py --batch_size=16 --checkpoint_path="./chkpnt/" --use_gpu=True  --random_mirror=True --random_scaling=True 

加载提供的预训练模型可以加快训练进度。(不过这里官方的预训练模型缺少部分参数文件,会导致最终的效果降低)

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读