新手入门:DGL在昇腾上的安装问题

简介: 本文介绍了在aarch64架构和Python 3.10环境下安装DGL(Deep Graph Library)的过程。首先通过`uname -a`确认硬件架构,接着使用`python --version`检查Python版本。为确保兼容性,从指定链接下载适合的whl包或通过pip安装dgl。过程中遇到了torchdata版本不兼容的问题,通过降级torchdata至0.7.1版本解决。此外,针对NPU芯片适配,重新安装了与CANN 8.0.RC2兼容的torch和torch_npu组件。最终成功导入dgl包并准备进行模型训练验证。

首先需要确定下自己的硬件,在terminal中输入指令

uname -a

返回结果

aarch64

接着判断当前环境的python版本,在terminal中输入指令

python --version

返回结果

Python 3.10.14

可以判断需要安装aarch64的版本,如果使用whl包安装dgl,以该链接(data.dgl.ai/wheels/cu118/repo.html)为例,需要安装指定Python3.10-aarch64版本的包


比较便捷的方式是直接通过pip来安装,指令如下

pip install dgl

注意安装完成后,terminal显示成功安装的dgl版本以及对应的配套安装的其他包的版本,信息如下

Successfully installed dgl-2.1.0 sympy-1.13.1 torch-2.5.1 torchdata-0.10.1

接下来先简单导入下dgl看是否安装成功,终端执行指令如下

python -c "import dgl"

发现报错信息如下


按住Ctrl健点击traceback信息,可以检查安装路径下的python文件,经检查发现,pip install自动安装的配套torchdata的版本为0.10.1,但是该版本做了改动,已经没有了datapipes属性,由此可以推断需要改动torchdata的版本。经尝试,当dgl版本为2.1时,对应的0.7.1版本的torchdata满足要求,终端执行指令如下

pip install torchdata==0.7.1

安装成功后,再次尝试导入dgl

python -c "import dgl"

新的报错信息如下


按照指示安装缺失的包

pip install pydantic

安装成功后,再次尝试导入dgl

python -c "import dgl"

根据如下报错信息,推断在NPU芯片上,torch2.5.1与dgl2.1版本无法正常导入,并且注意的是,因为是在昇腾上运行,所以在安装torch时需要考虑到能否充分调动NPU算力,因此应当优先考虑torch_npu组件能覆盖的torch版本 pytorch: Ascend Extension for PyTorch (gitee.com)


接下来重新装torch,需要先确定CANN版本(在笔者机器上装的是CANN 8.0.RC2),并根据对照关系安装

版本对照关系

由此可知,应安装pytorch与torch_npu组件的版本与指令如下

pip3 install torch==2.1.0
pip3 install torch-npu==2.1.0.post6

安装成功后,再次尝试导入dgl,发现能成功导入

导入dgl包成功

接下来,基于导入的dgl包进行一个简单的模型训练验证,将在下文中记载。

相关文章
|
存储 虚拟化 Docker
windows系统安装docker(Hyper-V方式)
windows系统安装docker(Hyper-V方式)
2043 2
|
存储 网络协议 Linux
360嵌入式软开面经,纯八股文~
360嵌入式软开面经,纯八股文~
360嵌入式软开面经,纯八股文~
|
缓存 移动开发 JavaScript
跨桌面端Web容器演进
随着客户端技术的逐渐发展,Web容器已经深入客户端,为客户端构建了丰富多彩的页面和交互体验,成为客户端的一个不可或缺的重要组成部分。在千牛客户端上,Web容器不仅承载了千牛的开放容器(经历了H5插件到千牛小程序的变革),而且一些核心功能,比如聊天窗口,消息中心,也都是由Web容器承载的。
1337 0
跨桌面端Web容器演进
|
机器学习/深度学习 人工智能 监控
GPU云服务器上部署Stable Diffusion玩
GPU云服务器上部署Stable Diffusion玩
851 1
|
11月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
3116 77
|
存储 关系型数据库 MySQL
基于Seata实现分布式事务
通过以上步骤,你可以使用 Seata 实现分布式事务,确保在微服务架构中的事务一致性。Seata 支持多种语言和框架,能够满足不同业务场景的需求。欢迎关注威哥爱编程,一起学习成长。
558 1
|
机器学习/深度学习 人工智能 并行计算
图机器学习调研洞察:PyG与DGL
图神经网络(GNN)是人工智能领域的研究热点,广泛应用于社交网络、电商推荐、欺诈检测等。主流开源图学习引擎如DGL、PyG、GraphScope等在性能和社区活跃度上各有优劣。基于ogbn-products数据集的测试显示,DGL性能最优、内存占用最低,PyG次之。在AI for Science领域,PyG应用更广泛,尤其在小分子和晶体结构预测中表现突出。DGL采用Graph Centric方式,保留图结构;PyG则采用Tensor Centric方式,适合小图场景。
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
13301 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
数据库
利用massdatabase包提取物种KEGG通路与基因/化合物对应信息
最近手头处理一批代谢组数据, 想基于几十个关键差异代谢物代谢物进行下KEGG富集,能想到有两种方式解决,一种常用方式就是基于MetaboAnalyst在线富集,另一种就是解析出该物种的通路与代谢物的对应关系文件,然后用Y叔叔的Clusterprofiler包富集。经一番搜索,massdatabase包可帮我们轻松获得这个文件。 作者:凯凯何_Boy 链接:https://www.jianshu.com/p/654784925903 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1184 1
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
915 0