【2023·CANN训练营第一季】ResNet50图片分类应用——运行调试

运行应用

请注意,下文中的样例目录均指“cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”目录。

export APP_HOME=$HOME/samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification
# 样例目录
  • 开发环境和运行环境分离

    即开发环境和运行环境不在同一台服务器上时

    1. 上传文件

      运行用户将开发环境的样例目录及目录下的文件上传到运行环境

      scp -r $APP_HOME 用户@运行环境IP:/目录
      
    2. 登陆运行环境

      以运行用户登录运行环境

    3. 添加权限

      切换到可执行文件main所在的目录,给该目录下的main文件加执行权限。

    4. 运行程序

      切换到可执行文件main所在的目录,运行可执行文件。

  • 开发环境和运行环境合设

    1. 运行程序

      切换到可执行文件main所在的目录,运行可执行文件。

执行成功后,在屏幕上的关键提示信息示例如下,提示信息中的index表示类别标识、value表示该分类的最大置信度,这些值可能会根据版本、环境有所不同,请以实际情况为准:

说明: 类别标签和类别的对应关系与训练模型时使用的数据集有关,本样例使用的模型是基于imagenet数据集进行训练的,您可以在互联网上查阅imagenet数据集的标签及类别的对应关系,可单击imagenet数据集类别标签和对应的英文中文对照表查看。 当前屏显信息中的类别标识与类别的对应关系如下:

"161": ["basset", "basset hound"],
"267": ["standard poodle"]

关键接口介绍

在该Sample中,涉及的关键功能点及其关键接口,如下所示:

  • 初始化

    • 调用aclInit接口初始化AscendCL配置。
    • 调用aclFinalize接口实现AscendCL去初始化。
  • Device管理

    • 调用aclrtSetDevice接口指定用于运算的Device。
    • 调用aclrtGetRunMode接口获取昇腾AI软件栈的运行模式,根据运行模式的不同,内部处理流程不同。
    • 调用aclrtResetDevice接口复位当前运算的Device,回收Device上的资源。
  • Context管理

    • 调用aclrtCreateContext接口创建Context。
    • 调用aclrtDestroyContext接口销毁Context。
  • Stream管理

    • 调用aclrtCreateStream接口创建Stream。
    • 调用aclrtDestroyStream接口销毁Stream。
  • 内存管理

    • 调用aclrtMalloc接口申请Device上的内存。
    • 调用aclrtFree接口释放Device上的内存。
  • 数据传输

    调用aclrtMemcpy接口通过内存复制的方式实现数据传输。

  • 模型推理

    • 调用aclmdlLoadFromFileWithMem接口从*.om文件加载模型。
    • 调用aclmdlExecute接口执行模型推理,同步接口。
    • 调用aclmdlUnload接口卸载模型。
  • 数据后处理

    提供样例代码,处理模型推理的结果,直接在终端上显示top5置信度的类别编号。

    另外,样例中提供了自定义接口DumpModelOutputResult,用于将模型推理的结果写入文件(运行可执行文件后,推理结果文件在运行环境上的应用可执行文件的同级目录下),默认未调用该接口,用户可在sample_process.cpp中,在调用OutputModelResult接口前,增加如下代码调用DumpModelOutputResult接口:

    // print the top 5 confidence values with indexes.use function DumpModelOutputResult
    // if want to dump output result to file in the current directory
    modelProcess.DumpModelOutputResult();
    modelProcess.OutputModelResult();
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值