ATC模型转换环境问题案例
ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具:它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型;模型转换过程中,ATC会进行算子调度优化、权重数据重排、内存使用优化等具体操作,对原始的深度学习模型进行进一步的调优,从而满足部署场景下的高性能需求,使其能够高效执行在昇腾AI处理器上。
本期就分享几个关于ATC环境搭建问题的典型案例,并给出原因分析及解决方法:
- 未设置环境变量,导致ATC工具无法使用
- 模型转换时,Python版本不匹配,导致模型转换失败
01 未设置环境变量,导致ATC工具无法使用
问题现象描述
输入模型转换的命令后,按回车,提示如下信息:
bash: atc: command not found
原因分析
ATC工具在CANN软件包中以二进制形式存在,使用该工具前,必须通过环境变量使能二进制才可以运行工具;若使用atc --help命令回车,仍旧回显上述信息,则说明ATC工具无法使用。
解决措施
ATC工具运行前,先设置运行所需环境变量。
- 以root用户安装Ascend-cann-toolkit包
. /usr/local/Ascend/ascend-toolkit/set_env.sh
#若开发套件包Ascend-cann-toolkit在非昇腾设备上安装,则如下环境变量必须执行,用于设置动态链接库所在路径,否则无需执行
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/<arch>-linux/devlib:$LD_LIBRARY_PATH
-
以非root用户安装Ascend-cann-toolkit包
. $HOME/Ascend/ascend-toolkit/set_env.sh
#若开发套件包Ascend-cann-toolkit在非昇腾设备上安装,则如下环境变量必须执行,用于设置动态链接库所在路径,否则无需执行
export LD_LIBRARY_PATH=$HOME/Ascend/ascend-toolkit/latest/<arch>-linux/devlib:$LD_LIBRARY_PATH
其中,<arch>请替换为操作系统具体架构。
设置环境变量后,使用atc --help命令回车,若回显了atc相关参数信息,则说明工具可以正常使用,可以进行后续的模型转换。
02 模型转换时,Python版本不匹配,导致模型转换失败
问题现象描述
输入模型转换的命令后,按回车,提示如下信息:
ATC run failed, Please check the detail log, Try 'atc --help' for more information
E40002: The current Python version is [Python 3.6.9]. The system supports only [Python 3.7] or later.TraceBack (most recent call last):[GraphOpt][InitializeInner][InitTbeFunc] Failed to init tbe.[FUNC:InitializeInner][FILE:tbe_op_store_adapter.cc][LINE:1585][SubGraphOpt][PreCompileOp][InitAdapter] InitializeAdapter adapter [tbe_op_adapter] failed! Ret [4294967295][FUNC:InitializeAdapter][FILE:op_store_adapter_manager.cc][LINE:86][SubGraphOpt][PreCompileOp][Init] Initialize op store adapter failed, OpsStoreName[tbe-custom].[FUNC:Initialize][FILE:op_store_adapter_manager.cc][LINE:133][FusionMngr][Init] Op store adapter manager init failed.[FUNC:Initialize][FILE:fusion_manager.cc][LINE:109]PluginManager InvokeAll failed.[FUNC:Initialize][FILE:ops_kernel_manager.cc][LINE:101]OpsManager initialize failed.[FUNC:InnerInitialize][FILE:gelib.cc][LINE:238] GELib::InnerInitialize failed.[FUNC:Initialize][FILE:gelib.cc][LINE:167]
原因分析
ATC工具进行模型编译或者单算子编译时,依赖Python版本,当前要求的Python版本为:Python3.7.x(3.7.0~3.7.11)、Python3.8.x(3.8.0~3.8.11)、Python3.9.x(3.9.0~3.9.7)。查看报错信息,发现当前使用的Python版本,比如上述的Python 3.6.9并不在版本要求范围内。
解决措施
若还未安装符合要求的Python版本,则优先安装对应的Python版本;若已安装,则执行如下环境变量,指定需要使用的版本,以Python3.7.5为例,设置相关环境变量:
#如果用户环境存在多个python3版本,则指定使用python3.7.5版本
export PATH=/usr/local/python3.7.5/bin:$PATH
#设置python3.7.5库文件路径
export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH
03 更多介绍
[1]昇腾文档中心:https://www.hiascend.com/zh/document
[2]昇腾社区在线课程:https://www.hiascend.com/zh/edu/courses
[3]昇腾论坛:https://www.hiascend.com/forum
相关文章:
ATC模型转换环境问题案例
ATC(Ascend Tensor Compiler)是异构计算架构CANN体系下的模型转换工具:它可以将开源框架的网络模型(如TensorFlow等)以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型;模型转换过程中&a…...
dart其他语法
dart其他语法 类型相关 空安全 不能将一个普通类型对象赋值为 null 避免 为空 报错:对 null 的使用语法进行限制(str ! null)对空安全的允诺 late 延迟初始化的时机 ! 在此时该可用变量一定不为空 void main() {String name zh…...
C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once
C11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once 1.设计模式2.单例设计模式:3.单例设计模式共享数据分析、解决4.std::call_once(): 1.设计模式 程序灵活,维护起来可能方便,…...
FANUC机器人加减速倍率指令ACC的使用方法说明
FANUC机器人加减速倍率指令ACC的使用方法说明 单位有一台FANUC机器人(型号:M-900iB 360kg),偶尔会在启动的瞬间会报SRVO-050碰撞检测报警,而事实上机器人并没有开始移动或和其他工件产生碰撞,一直查了很长时间,也没有查到具体的原因,也尝试过重新进行负载推算,但是偶尔…...
奥威BI数据可视化工具:360度呈现数据,告别枯燥表格
随着企业数据量的不断增加,如何有效地进行数据分析与决策变得越来越重要。奥威BI数据可视化工具作为一款强大的数据分析工具,在帮助企业深入挖掘数据价值方面具有显著优势。 奥威BI数据可视化工具是一款基于数据仓库技术的数据分析工具,具有…...
C# Linq源码分析之Take (三)
概要 本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。 源码及分析 TakeRangeFromEndIterator方法用于处理Range中的开始和结束索引存在倒数的情况。该方法位于Take.cs文件中。通过yie…...
Linux journalctl命令详解(journalctl指令)(systemd服务默认日志管理工具)
文章目录 Linux Journalctl命令详解1. Journalctl简介2. Journalctl基础使用3. 过滤日志条目4. 时间戳和日志轮转5. 高级应用6. journalctl --help指令文档英文中文 注意事项journal日志不会将程序输出的空行显示,日志会被压缩得满满当当。journal日志不会自动持久化…...
学习内容--
C后台开发_c做后台_人面桃花相映红的博客-CSDN博客 C/C后端开发学习路线总结(附带实习学习经历分享)_c后端开发需要学什么_Linux后台开发狮的博客-CSDN博客 学到什么程度才可以面试大厂?c/c后台开发进阶指南 后端开发(超全&…...
Stable Diffusion:使用自己的数据集微调训练LoRA模型
Stable Diffusion:使用自己的数据集微调训练LoRA模型 前言前提条件相关介绍微调训练LoRA模型下载kohya_ss项目安装kohya_ss项目运行kohya_ss项目准备数据集生成关键词模型参数设置预训练模型设置文件夹设置训练参数设置 开始训练LoRA模型TensorBoard查看训练情况 测…...
软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一
软考高级系统架构设计师系列之:论文典型试题写作要点和写作素材总结系列文章一 一、论软件体系结构风格及其应用1.论文题目2.写作要点和写作素材二、论开放系统应用的互操作性技术1.论文题目2.写作要点和写作素材三、论多层分布结构系统的开发1.论文题目2.写作要点和写作素材四…...
06 mysql all查询 和 主键查询 和 非索引列查询
前言 本文主要调试一下 mysql 的如下两种查询语句 我们也来深入的看一下, 究竟如下两个普通的查询, mysql 做了什么事情 1. select * from user where id 991; 2. select * from user; 3. select * from user where name jerry991; 环境介绍 测试表 user schema 如下…...
黑马点评-项目集成git及redis实现短信验证码登录
目录 IDEA集成git 传统session存在的问题 redis方案 业务流程 选用的数据结构 整体访问流程 发送短信验证码 获取校验验证码 配置登录拦截器 拦截器注册配置类 拦截器 用户状态刷新问题 刷新问题解决方案 IDEA集成git 远程仓库采用码云,创建好仓库&…...
mac苹果电脑怎么运行Windows软件?怎么安装Win虚拟机?
近年来,苹果电脑的用户群体不断扩大,许多用户对于苹果电脑是否可以运行Windows软件产生了疑问。苹果电脑和Windows操作系统有着明显的区别,是否能够在苹果电脑上运行Windows软件。下面我们就来看苹果电脑可以运行Windows软件吗,苹…...
Jmeter对websocket进行测试
JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪,需要带认证信息进行长连接,通过websocket插件是请求失败,如下图,后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下: pa…...
从2023年世界机器人大会发现机器人新趋势
机器人零部件为何成2023年世界机器人大会关注热门? 在原先,机器人的三大核心零部件是控制系统中的控制器、驱动系统中的伺服电机和机械系统中的精密减速器。如今,机器人的主体框架结构已经落实,更多机器人已经开始深入到各类场景中…...
Kafka单节点部署
🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…...
生成式AI和大语言模型 Generative AI LLMs
在“使用大型语言模型(LLMs)的生成性AI”中,您将学习生成性AI的基本工作原理,以及如何在实际应用中部署它。 通过参加这门课程,您将学会: 深入了解生成性AI,描述基于LLM的典型生成性AI生命周期中的关键步骤ÿ…...
Obsidian 入门使用手册
文章目录 一、Obsidian 入门1.1 什么是 Obsidian1.2 安装 Obsidian 二、Obsidian 配置2.1 创建第一个笔记2.2 设置界面语言使用中文2.3 主题 三、小结 一、Obsidian 入门 1.1 什么是 Obsidian Obsidian 是一款基于 Markdown 语法编辑的笔记软件。与传统的 Markdown 软件不同的…...
GuLi商城-前端基础Vue指令-单向绑定双向绑定
什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM 例如我们在入门案例中的 v-on,代表绑定事…...
前端(十三)——JavaScript 闭包的奥秘与高级用法探索
😶博主:小猫娃来啦 😶文章核心:深入理解 JavaScript 中的闭包 文章目录 不理解闭包?这玩意很难?闭包的定义与原理闭包是什么创建一个闭包 闭包的应用场景闭包与作用域闭包与作用域之间的关系全局作用域、函…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
