下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

样例介绍

获取样例

单击图片解码+缩放+同步推理获取样例。

功能描述

该样例主要是基于Caffe ResNet-50网络(单输入、单batch)实现图片分类的功能。

将Caffe ResNet-50网络的模型文件转换为适配昇腾AI处理器的离线模型(*.om文件),在样例中,加载该om文件,对2张*.jpg图片进行解码、缩放、推理,分别得到推理结果后,再对推理结果进行处理,输出最大置信度的类别标识。

转换模型时,需配置色域转换参数,用于将YUV420SP格式的图片转换为RGB格式的图片,才能符合模型的输入要求。

主要接口

主要接口如下表所示。

初始化

  • 调用acl.init接口初始化pyACL配置。
  • 调用acl.finalize接口实现pyACL去初始化。

Device管理

  • 调用acl.rt.set_device接口指定用于运算的Device。
  • 调用acl.rt.get_run_mode接口获取软件栈的运行模式,根据运行模式的不同,内部处理流程不同。
  • 调用acl.rt.reset_device接口复位当前运算的Device,回收Device上的资源。

Stream管理

  • 调用acl.rt.create_stream接口创建Stream。
  • 调用acl.rt.destroy_stream接口销毁Stream。
  • 调用acl.rt.synchronize_stream接口阻塞程序运行,直到指定Stream中的所有任务都完成。

内存管理

  • 调用acl.rt.malloc_host接口申请Host上内存。
  • 调用acl.rt.free_host释放Host上的内存。
  • 调用acl.rt.malloc接口申请Device上的内存。
  • 调用acl.rt.free接口释放Device上的内存。

执行媒体数据处理时,若需要申请Device上的内存存放输入或输出数据,需调用acl.media.dvpp_malloc申请内存、调用acl.media.dvpp_free接口释放内存。

数据传输

如果在Host上运行应用,则需调用acl.rt.memcpy接口:

  • 将数据从Host传输到Device上,作为解码的输入数据。
  • 模型推理结束后,将推理结果从Device传输到Host。

如果在板端环境上运行应用,则无需进行数据传输。

媒体数据处理V1

  • 调用acl.media.dvpp_jpeg_decode_async接口将*.jpg图片解码成YUV420SP格式图片。
  • 调用acl.media.dvpp_vpc_resize_async接口将YUV420SP格式图片缩小成分辨率为224*224的图片。

模型推理

  • 调用acl.mdl.load_from_file_with_mem接口从*.om文件加载模型。
  • 调用acl.mdl.execute接口执行模型推理。

    推理前,通过*.om文件中的色域转换参数将YUV420SP格式的图片转换为RGB格式的图片。

  • 调用acl.mdl.unload接口卸载模型。

数据后处理(单算子调用)

处理模型推理的结果,通过调用算子Cast将推理结果的数据类型从float32转成float16,再调用ArgMaxD算子从推理结果中查找最大置信度的类别标识。

通过acl.op.set_model_dir接口加载单算子模型文件,通过acl.op.cast接口执行Cast算子、通过acl.op.execute_v2接口执行ArgMaxD算子。

目录结构

目录结构如下所示。

vpc_resnet50_imagenet_classification
├──scripts
│ ├── host_version.conf //版本号配置文件。
│ └── testcase_300.sh //运行脚本。
├──src
│ ├── acl_dvpp.py //图片缩放实现文件。
│ ├── acl_model.py //模型推理实现文件。
│ ├── acl_op.py //单算子精度转换实现文件。
│ ├── acl_sample.py //运行文件。
│ ├── acl_util.py //工具类函数实现文件。
│ └── constant.py //常量定义。
├── data //测试数据,需要用户部署。
│ ├── fusion_result.json //atc转化后生成,记录融合算子信息。
│ ├── dog1_1024_683.jpg
│ └── dog2_1024_683.jpg
├── caffe_model //需要用户部署。
│ ├── aipp.cfg //模型的配置数据。
│ ├── resnet50.caffemodel //resnet50模型。
│ └── resnet50.prototxt // resnet50模型的网络文件。
├── op_models //atc转换后生成后的目录。
│ ├── 0_Cast_0_2_1000_1_2_1000.om //精度转换自定义算子。
│ ├── 1_ArgMaxD_1_2_1000_3_2_1.om //精度转换自定义算子。
│ └── op_list.json //精度转换算子配置文件。
└── model//推理模型转换后生成的目录。
│ └── resnet50_aipp.om 
└── README_CN.md
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词