昇腾环境ppstreuct部署问题记录

news/2025/1/20 3:04:11/

测试代码

我是在华为昇腾910B3上测试的PPStructure

import os
import cv2
from PIL import Image
#from paddleocr import PPStructure,draw_structure_result,save_structure_res
from paddleocr_asyncio import PPStructuretable_engine = PPStructure(show_log=True, image_orientation=True, use_npu=True) #use_npu=False可以使用cpu推理img_path = '/Users/fulva/Desktop/PicRec/table3.png'
img = cv2.imread(img_path)
result = table_engine(img)print(f"result:", result)

问题1: Cannot open file inference.json

完整的报错如下:

[2025/01/18 03:22:27] ppcls WARNING: The current running environment does not support the use of GPU. CPU has been used instead.
Traceback (most recent call last):File "/home/aicc/paddleocr/test_pps.py", line 7, in <module>table_engine = PPStructure(show_log=True, image_orientation=True, use_npu=False)
.......
RuntimeError: (NotFound) Cannot open file /root/.paddleclas/inference_model/PULC/text_image_orientation/inference.json, please confirm whether the file is normal.[Hint: Expected paddle::inference::IsFileExists(prog_file_) == true, but received paddle::inference::IsFileExists(prog_file_):0 != true:1.] (at /paddle/paddle/fluid/inference/api/analysis_config.cc:111)(MindIE_1.0.RC2) root@5e3540875002:/home/aicc/paddleocr# ls /root/.paddleclas/inference_model/PULC/text_image_orientation/
inference.pdiparams  inference.pdiparams.info  inference.pdmodel

报错很明显,找不到/root/.paddleclas/inference_model/PULC/text_image_orientation/inference.json这个文件,这个文件目录是自动下载的模型目录,的确没这个文件。应该是百度的模型格式改了,导致找不到。

参考:https://github.com/PaddlePaddle/PaddleClas/issues/3329

解决方法:

export FLAGS_enable_pir_api=0 

问题2:StridedSliceAssignD算子不支持

模型加载出错,查看plog看到如下打印

[ERROR] GE(3453963,python):2025-01-18-04:45:16.963.458 [dnnengine_manager.cc:399]3459354 GetDNNEngineName: ErrorNo: 1343242282(assign engine failed) [COMP][SUB_OPT][Check][OpSupported]Op type StridedSliceAssignD of ops kernel AIcoreEngine is unsupported, reason : [tbe-custom]:op type StridedSliceAssignD is not found in this op store.[tbe-custom1]:op type StridedSliceAssignD is not found in this op store.[tbe-custom]:op type StridedSliceAssignD is not found in this op store.[tbe-custom1]:op type StridedSliceAssignD is not found in this op store.The op is dynamic shape, but is not configured to support dynamic shape in op store
[ERROR] GE(3453963,python):2025-01-18-04:45:16.963.946 [dnnengine_manager.cc:416]3459354 GetDNNEngineName: ErrorNo: 1343242282(assign engine failed) [COMP][SUB_OPT][Get][DNNEngineName]Can't find any supported ops kernel and engine of StridedSliceAssign34, type is StridedSliceAssignD
[ERROR] GE(3453963,python):2025-01-18-04:45:16.964.163 [engine_place.cc:68]3459354 SelectEngine: ErrorNo: 1343229963(GE is not yet initialized or is finalized.) [COMP][SUB_OPT][Check][Param] Can not find engine of op name StridedSliceAssign34 type StridedSliceAssignD
[ERROR] GE(3453963,python):2025-01-18-04:45:16.964.368 [engine_place.cc:144]3459354 operator(): ErrorNo: 4294967295(failed) [COMP][SUB_OPT]Assert ((SelectEngine(node_ptr, exclude_engines, is_check_support_success, op_info)) == ge::SUCCESS) failed

临时解决方案:https://gitee.com/ascend/modelzoo/issues/I6Y31Z?from=project-issue&search_text=StridedSliceAssignD

也就是将其它算子修改名字和配置假装是StridedSliceAssignD算子。我没事,网上说这个方法有效。


http://www.ppmy.cn/news/1564564.html

相关文章

[Easy] leetcode-14 最长公共前缀

一、题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 ""。 输入&#xff1a;strs ["flower","flow","flight"] 输出&#xff1a;"fl"输入&#xff1a;strs [&qu…

springCloudGateway+nacos自定义负载均衡-通过IP隔离开发环境

先说一下想法&#xff0c;小公司开发项目&#xff0c;参考若依框架使用的spring-cloud-starter-gateway和spring-cloud-starter-alibaba-nacos, 用到了nacos的配置中心和注册中心&#xff0c;有多个模块&#xff08;每个模块都是一个服务&#xff09;。 想本地开发&#xff0c;…

Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现

什么是 Ocelot ? Ocelot是一个开源的ASP.NET Core微服务网关&#xff0c;它提供了API网关所需的所有功能&#xff0c;如路由、认证、限流、监控等。 Ocelot是一个简单、灵活且功能强大的API网关&#xff0c;它可以与现有的服务集成&#xff0c;并帮助您保护、监控和扩展您的…

Gradio Tunneling 支持固定域名啦

这里是视频 实用的内网穿透小工具更新了&#xff0c;这次可以给个固定域名了 的笔记。 项目地址&#xff1a;https://github.com/arkohut/gradio-tunneling 之前我介绍过一个小工具 gradio-tunneling&#xff0c;它可以让非 gradio 创建的服务也使用 gradio 的 --share 功能。…

消息队列实战指南:三大MQ 与 Kafka 适用场景全解析

前言&#xff1a;在当今数字化时代&#xff0c;分布式系统和大数据处理变得愈发普遍&#xff0c;消息队列作为其中的关键组件&#xff0c;承担着系统解耦、异步通信、流量削峰等重要职责。ActiveMQ、RabbitMQ、RocketMQ 和 Kafka 作为市场上极具代表性的消息队列产品&#xff0…

使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程

使用 Java 开发 Android 应用&#xff1a;Kotlin 与 Java 的混合编程 在开发 Android 应用程序时&#xff0c;我们通常可以选择使用 Java 或 Kotlin 作为主要的编程语言。然而&#xff0c;有些开发者可能会想要在同一个项目中同时使用这两种语言&#xff0c;这就是所谓的混合编…

论文略读:ASurvey of Large Language Models for Graphs

2024 KDD 归纳了四种主要的graph大模型 GNNs as PrefixLLMs as PrefixLLMs-Graphs IntegrationLLMs-Only 1 GNNs as Prefix 1.1 节点级 Token 化 将图结构中的每个节点单独输入到 LLM 中使 LLM 能够深入理解细粒度的节点级结构信息&#xff0c;并准确辨别不同节点间的关联与…

Objective-C语言的数据类型

Objective-C数据类型详解 Objective-C是一种面向对象的编程语言&#xff0c;主要用于macOS和iOS应用程序的开发。作为C语言的超集&#xff0c;Objective-C继承了C语言的基本数据类型&#xff0c;同时也引入了一些独特的特性。本文将对Objective-C的各种数据类型进行详细的介绍…