当前位置: 首页 > news >正文

精品课程教学网站wordpress5导航图标

精品课程教学网站,wordpress5导航图标,正一品网站建设,公司网站建设服务费计入什么科目场景介绍 MindSpore Lite 是一款 AI 引擎#xff0c;它提供了面向不同硬件设备 AI 模型推理的功能#xff0c;目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。 本文介绍使用 MindSpore Lite 推理引擎进行模型推理的通用开发流程。 基本概念 在进行开…场景介绍 MindSpore Lite 是一款 AI 引擎它提供了面向不同硬件设备 AI 模型推理的功能目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。 本文介绍使用 MindSpore Lite 推理引擎进行模型推理的通用开发流程。 基本概念 在进行开发前请先了解以下概念。 张量 它与数组和矩阵非常相似是 MindSpore Lite 网络运算中的基本数据结构。 Float16 推理模式 Float16 又称半精度它使用 16 比特表示一个数。Float16 推理模式表示推理的时候用半精度进行推理。 接口说明 这里给出 MindSpore Lite 推理的通用开发流程中涉及的一些接口具体请见下列表格。 Context 相关接口 Model 相关接口 Tensor 相关接口 开发步骤 使用 MindSpore Lite 进行模型推理的开发流程如下图所示。**图 1 **使用 MindSpore Lite 进行模型推理的开发流程 进入主要流程之前需要先引用相关的头文件并编写函数生成随机的输入具体如下 #include stdlib.h #include stdio.h #include mindspore/model.h//生成随机的输入 int GenerateInputDataWithRandom(OH_AI_TensorHandleArray inputs) {for (size_t i 0; i inputs.handle_num; i) {float *input_data (float *)OH_AI_TensorGetMutableData(inputs.handle_list[i]);if (input_data NULL) {printf(MSTensorGetMutableData failed.\\n);return OH_AI_STATUS_LITE_ERROR;}int64_t num OH_AI_TensorGetElementNum(inputs.handle_list[i]);const int divisor 10;for (size_t j 0; j num; j) {input_data[j] (float)(rand() % divisor) / divisor; // 0--0.9f}}return OH_AI_STATUS_SUCCESS; }然后进入主要的开发步骤具括包括模型的准备、读取、编译、推理和释放具体开发过程及细节请见下文的开发步骤及示例。 模型准备。 需要的模型可以直接下载也可以通过模型转换工具获得。 a. 下载模型的格式若为.ms则可以直接使用。本文以 mobilenetv2.ms 为例。 b. 如果是第三方框架的模型比如 TensorFlow、TensorFlow Lite、Caffe、ONNX 等可以使用 模型转换工具 转换为.ms 格式的模型文件。 创建上下文设置线程数、设备类型等参数。 // 创建并配置上下文设置运行时的线程数量为2绑核策略为大核优先 OH_AI_ContextHandle context OH_AI_ContextCreate(); if (context NULL) {printf(OH_AI_ContextCreate failed.\\n);return OH_AI_STATUS_LITE_ERROR; } const int thread_num 2; OH_AI_ContextSetThreadNum(context, thread_num); OH_AI_ContextSetThreadAffinityMode(context, 1); //设置运行设备为CPU不使用Float16推理 OH_AI_DeviceInfoHandle cpu_device_info OH_AI_DeviceInfoCreate(OH_AI_DEVICETYPE_CPU); if (cpu_device_info NULL) {printf(OH_AI_DeviceInfoCreate failed.\\n);OH_AI_ContextDestroy(context);return OH_AI_STATUS_LITE_ERROR; } OH_AI_DeviceInfoSetEnableFP16(cpu_device_info, false); OH_AI_ContextAddDeviceInfo(context, cpu_device_info);创建、加载与编译模型。 调用 OH_AI_ModelBuildFromFile 加载并编译模型。 本例中传入 OH_AI_ModelBuildFromFile 的 argv[1]参数是从控制台中输入的模型文件路径。 // 创建模型 OH_AI_ModelHandle model OH_AI_ModelCreate(); if (model NULL) {printf(OH_AI_ModelCreate failed.\\n);OH_AI_ContextDestroy(context);return OH_AI_STATUS_LITE_ERROR; }// 加载与编译模型模型的类型为OH_AI_MODELTYPE_MINDIR int ret OH_AI_ModelBuildFromFile(model, argv[1], OH_AI_MODELTYPE_MINDIR, context); if (ret ! OH_AI_STATUS_SUCCESS) {printf(OH_AI_ModelBuildFromFile failed, ret: %d.\\n, ret);OH_AI_ModelDestroy(model);return ret; }输入数据。 模型执行之前需要向输入的张量中填充数据。本例使用随机的数据对模型进行填充。 // 获得输入张量 OH_AI_TensorHandleArray inputs OH_AI_ModelGetInputs(model); if (inputs.handle_list NULL) {printf(OH_AI_ModelGetInputs failed, ret: %d.\\n, ret);OH_AI_ModelDestroy(model);return ret; } // 使用随机数据填充张量 ret GenerateInputDataWithRandom(inputs); if (ret ! OH_AI_STATUS_SUCCESS) {printf(GenerateInputDataWithRandom failed, ret: %d.\\n, ret);OH_AI_ModelDestroy(model);return ret; }执行推理。 使用 OH_AI_ModelPredict 接口进行模型推理。 // 执行模型推理 OH_AI_TensorHandleArray outputs; ret OH_AI_ModelPredict(model, inputs, outputs, NULL, NULL); if (ret ! OH_AI_STATUS_SUCCESS) {printf(OH_AI_ModelPredict failed, ret: %d.\\n, ret);OH_AI_ModelDestroy(model);return ret; }获取输出。 模型推理结束之后可以通过输出张量得到推理结果。 // 获取模型的输出张量并打印 for (size_t i 0; i outputs.handle_num; i) {OH_AI_TensorHandle tensor outputs.handle_list[i];int64_t element_num OH_AI_TensorGetElementNum(tensor);printf(Tensor name: %s, tensor size is %zu ,elements num: %lld.\\n, OH_AI_TensorGetName(tensor),OH_AI_TensorGetDataSize(tensor), element_num);const float *data (const float *)OH_AI_TensorGetData(tensor);printf(output data is:\\n);const int max_print_num 50;for (int j 0; j element_num j max_print_num; j) {printf(%f , data[j]);}printf(\\n); }释放模型。 不再使用 MindSpore Lite 推理框架时需要释放已经创建的模型。 // 释放模型 OH_AI_ModelDestroy(model);调测验证 编写 CMakeLists.txt。 cmake_minimum_required(VERSION 3.14) project(Demo)add_executable(demo main.c)target_link_libraries(demomindspore-lite.huaweipthreaddl )● 使用 ohos-sdk 交叉编译需要对 CMake 设置 native 工具链路径即-DCMAKE_TOOLCHAIN_FILE“/xxx/native/build/cmake/ohos.toolchain.camke”。 ● 工具链默认编译 64 位的程序如果要编译 32 位需要添加-DOHOS_ARCH“armeabi-v7a”。 运行。 ● 使用 hdc_std 连接设备并将 demo 和 mobilenetv2.ms 推送到设备中的相同目录。 ● 使用 hdc_std shell 进入设备并进入 demo 所在的目录执行如下命令即可得到结果。 ./demo mobilenetv2.ms得到如下输出 # ./QuickStart ./mobilenetv2.ms Tensor name: Softmax-65, tensor size is 4004 ,elements num: 1001. output data is: 0.000018 0.000012 0.000026 0.000194 0.000156 0.001501 0.000240 0.000825 0.000016 0.000006 0.000007 0.000004 0.000004 0.000004 0.000015 0.000099 0.000011 0.000013 0.000005 0.000023 0.000004 0.000008 0.000003 0.000003 0.000008 0.000014 0.000012 0.000006 0.000019 0.000006 0.000018 0.000024 0.000010 0.000002 0.000028 0.000372 0.000010 0.000017 0.000008 0.000004 0.000007 0.000010 0.000007 0.000012 0.000005 0.000015 0.000007 0.000040 0.000004 0.000085 0.000023为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》共计890页希望对大家有所帮助https://qr21.cn/FV7h05 《鸿蒙 (Harmony OS)开发学习手册》 入门必看https://qr21.cn/FV7h05 应用开发导读(ArkTS)应用开发导读(Java) HarmonyOS 概念https://qr21.cn/FV7h05 系统定义技术架构技术特性系统安全 如何快速入门https://qr21.cn/FV7h05 基本概念构建第一个ArkTS应用构建第一个JS应用…… 开发基础知识https://qr21.cn/FV7h05 应用基础知识配置文件应用数据管理应用安全管理应用隐私保护三方应用调用管控机制资源分类与访问学习ArkTS语言…… 基于ArkTS 开发https://qr21.cn/FV7h05 Ability开发UI开发公共事件与通知窗口管理媒体安全网络与链接电话服务数据管理后台任务(Background Task)管理设备管理设备使用信息统计DFX国际化开发折叠屏系列……
http://www.zqtcl.cn/news/595501/

相关文章:

  • 大连做网站 选领超科技网站建设公司的成本有哪些方面
  • 文章网站是怎么做的宁波网站建设lonoo
  • 做网站学cdr吗企业年金险是什么意思
  • 芜湖炎黄做的网站北京高端网站公司哪家好
  • 帮人做网站一定要先收费网站构建免费
  • 营销型网站的优缺点如何在腾讯云做网站
  • 现在做网站怎么样网站运营与管理规划书
  • 国际物流公司网站建设有关应用网站
  • 网站后台维护技能娱乐公司网站模板
  • 有建网站的公司吗p2p理财网站开发要求
  • 做私单的网站高端html5网站设计工作室织梦模板 dedecms5.7
  • 视频网站切片怎么做如何做网站结构及栏目策划
  • 公司和网站备案查询龙江网站建设公司
  • 建一个平台网站需要多少钱安徽网站建设大全
  • 做网站接广告网站注册页面怎么做
  • 西安建站价格表电脑做视频的网站比较好
  • 建筑中级职称查询网站百度指数功能模块
  • 建设网站只慧聪网怎样做网站友情链接
  • 德阳网站开发dedecms5.7装饰公司网站模板
  • 下步我院将建设网站信息保密浙江温州网络公司
  • 一键建站网站seo关键词快速排名介绍
  • 自己做网站 什么wordpress博客文章加密
  • 怎样做音视频宣传网站wordpress 推送
  • 网站图片上传代码专业的企业进销存软件定制
  • 商品网站模板wordpress文章推荐
  • 十里堡网站建设做吃的教程网站
  • 比较好的源码网站河南网站seo推广
  • 做网站推广什么好网站界面结构
  • 龙岗网站优化常见的渠道推广方式有哪些
  • wordpress 后台乱码成都百度推广优化