【Python · Pytorch】Conda介绍 DGL-cuda安装

news2025/3/6 20:53:25

本文仅涉及DGL库介绍与cuda配置,不包含神经网络及其训练测试。

起因:博主电脑安装了 CUDA 12.4 版本,但DGL疑似没有版本支持该CUDA版本。随即想到可利用Conda创建CUDA12.1版本的虚拟环境。

起因

1. Conda环境

1.1 Conda环境简介

Conda:一个开源的 软件包管理系统环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换,这有助于进行不同的数据科学实验。

1.1.1 Conda关系

Conda 各版本间关系如下图所示:

Conda关系

  • Anaconda = Miniconda + 150高质量库
  • Miniconda = Python (多版本) + 基础库

1.1.2 Anaconda安装

Anaconda官网 Anaconda安装网址

进入安装网址,可找到Anaconda和Miniconda的安装包。

Anaconda安装

Miniconda安装

下载后完成安装步骤即可。

安装步骤

安装步骤

安装步骤

安装步骤

安装完成后,由此进入Anaconda终端。

进入终端

1.1.3 Navigator安装

Anaconda Navigator:配合Anaconda使用的可视化软件。


找到Anaconda安装路径下的scripts文件夹,以管理员身份运行cmdPowerShell窗口,执行安装命令。

conda install -c anaconda anaconda-navigator

这里在cmd中调用了这个脚本。

利用conda脚本

执行安装命令,中途需要输入y确认安装。

Navigator安装命令

Navigator安装步骤

Navigator安装步骤

安装完成后,可在开始菜单找到Anaconda Navigator,证明安装成功。

Navigator安装完成

打开即可使用 Anaconda 的可视化界面。

Anaconda Navigator

1.2 常用命令

1.2.1 Conda相关

查询conda版本

conda --version

更新conda版本

conda update conda

查看conda环境详细信息

conda info

1.2.2 环境管理

查看环境列表

conda env list
conda info --envs

创建环境

在需要特指环境的名称时 -n 等价于--name

最新Python版本

conda create --name env_name

指定Python版本

conda create --name env_name python=3.9.0

激活环境

conda activate env_name

退出环境

conda deactivate

删除环境

conda remove --name env_name --all

复制环境

conda create --name env_name --clone old_env_name

分享/备份一个虚拟环境

可通过导出 .yml 文件,快速向他人分享实验环境。

导出虚拟环境

conda env export > environment.yml

导入虚拟环境(利用cd命令切换至路径 / 更换为绝对路径)

conda env create -f environment.yml

1.2.3 包管理

镜像源配置

配置清华镜像源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

查看镜像源

conda config --show channels

安装库

安装最新版本

conda install [package]

安装指定版本

conda install [package]=[version]

删除库

当前环境

conda remove [package]

升级库

当前环境某库

conda update [package]

当前环境所有库

conda update --all

注:Conda包管理与Pip包管理相互独立,彼此不能删除对方安装的库,一般不在Conda与Pip中安装相同的库。

2. DGL库 & cuda版本

2.1 DGL库 简介

DGL

DGL,全称为Deep Graph Library(深度图库),是一个用于处理图结构数据的Python库。

它提供了用于图神经网络(Graph Neural Networks,GNNs)和图分析的工具和接口。

DGL的主要目标是简化图深度学习的开发,并使其更容易应用于各种任务,包括节点分类、链接预测、图分类、图生成等。

其相较于原实现内存开销更小、训练速度更快,可结合NetworkX实现图数据的可视化。


官方网站:DGL官网

Why DGL?

为什么选择DGL?

In the last few years, deep learning has enjoyed plenty of extraordinary successes. Many challenging tasks have been solved or close to being solved by Deep Learning, such as image recognition, rich-resource machine translation, game playing. These were made possible by a set of techniques that are composed of a number of representationally powerful building-blocks, such as convolution, attention and recurrence, applied to images, video, text, speech and beyond.

在过去的几年里,深度学习取得了许多非凡的成功。深度学习已经解决或接近解决了许多具有挑战性的任务,如图像识别、资源丰富的机器翻译、游戏等。这些都是通过一系列技术实现的,这些技术由许多具有代表性的强大构建模块组成,例如卷积、注意力和递归,应用于图像、视频、文本、语音等领域。

The development and deployment of these techniques often depend on the simple correlation of the given data; for example, CNN is based on the spatial correlation between nearby pixels while RNN family dwells on the assumption that its input is sequence-like.

这些技术的发展和部署往往取决于给定数据的简单相关性;例如,CNN基于附近像素之间的空间相关性,而RNN家族则假设其输入是序列式的。

More recently, there has been a steady flow of new deep learning research focusing on graph-structured data. Some of them are more conventional graph related problems, like social networks, chemical molecules and recommender systems, where how the entity interacts with its neighborhood is as informative as, if not more than, the features of the entity itself.

最近,不断有新的深度学习研究聚焦于图结构数据。其中一些是更传统的图形相关问题,如社交网络、化学分子和推荐系统,在这些问题中,实体与其邻居的互动方式与实体本身的特征一样有信息,如果不是更多的话。

Some others nevertheless have applied graph neural networks to images, text or games. Very broadly speaking, any of the data structures we have covered so far can be formalized to graphs. For instance an image can be seen as grid of pixel, text a sequence of words… Together with matured recognition modules, graph can also be defined at higher abstraction level for these data: scene graphs of images or dependency trees of language.

然而,还有一些人将图形神经网络应用于图像、文本或游戏。从广义上讲,到目前为止我们所讨论的任何数据结构都可以形式化为图。例如,图像可以看作是像素的网格,文本可以看作是单词的序列,再加上成熟的识别模块,图也可以在更高的抽象层次上定义:图像的场景图或语言的依赖树。

To this end, we made DGL. We are keen to bringing graphs closer to deep learning researchers. We want to make it easy to implement graph neural networks model family. We also want to make the combination of graph based modules and tensor based modules (PyTorch or MXNet) as smooth as possible.

为此,我们制作了DGL。我们热衷于让图表更接近深度学习研究人员。我们希望使图神经网络模型族的实现变得容易。我们还希望使基于图的模块和基于张量的模块(PyTorch或MXNet)的组合尽可能平滑。

——以上内容摘自 DGL官网

2.2 DGL库 cuda版本

本文介绍安装DGL-cuda库,配置cuda环境相关内容 可参考博客:配置cuda环境 & cuDNN库


由于Pytorch已经弃用利用conda的安装方式,所以不推荐使用conda安装。

(注:如果要使用最新的cuda版本,Python至少需要3.9版本及以上)

CUDA不支持conda

DGL库的pip命令安装方式:版本对应关系

dgl-cuda

操作系统、Python、PyTorch、Apache MXNet、TensorFlow所需版本 如下图所示。
系统+torch版本需求_表格

系统+torch版本需求

确认版本后,进入下载列表,找到所需的版本下载即可。

这里可下载cu121最新版本的DGL库,还需要下载对应版本的Pytroch库。

下载链接:DGL全列表 PyTorch全列表

全版本列表

2.3 Conda 环境 配置库

创建名为DemoConda虚拟环境

创建conda环境

创建conda环境

激活(进入) 环境,前侧括号内表示虚拟环境所处路径,后者为cmdPowerShell当前路径。

激活环境

下载 torch-2.4.1+cu121-cp39-cp39-win_amd64.whldgl-2.0.0+cu121-cp39-cp39-win_amd64.whl文件,并切换至所处路径。

切换路径

利用pip命令安装其他所需库,以下是常见pip镜像源和常用库。

常见pip镜像源

# 清华镜像
https://pypi.tuna.tsinghua.edu.cn/simple
# 中国科学技术大学
https://pypi.mirrors.ustc.edu.cn/simple
# 豆瓣
http://pypi.douban.com/simple/
# 阿里云
http://mirrors.aliyun.com/pypi/simple/

pip换源方式

# 换清华镜像
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 换回默认源
pip config unset global.index-url

数据+数值库

pip install numpy
pip install scipy
pip install openpyxl

sk-learn库

pip install scikit-learn

JupyterLab库

pip install juyterlab

绘图相关库

pip install matplotlib
pip install seaborn
pip install networkx

PyQt6窗口库

pip install PyQt6
pip install pyqt6-tools

Pytorch库(CUDA版本)

pip install "torch-2.4.1+cu121-cp39-cp39-win_amd64.whl"

DGL库(CUDA版本)

pip install "dgl-2.0.0+cu121-cp39-cp39-win_amd64.whl"

Torchvision(CUDA版本)

pip install "torchvision-0.20.1+cu121-cp39-cp39-win_amd64.whl"

torch

dgl

安装成功后,便可执行DGL相关代码。
安装成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2310694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode:2965. 找出缺失和重复的数字(python3解法)

难度:简单 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从…

Android U 分屏——SystemUI侧处理

WMShell相关的dump命令 手机分屏启动应用后运行命令:adb shell dumpsys activity service SystemUIService WMShell 我们可以找到其中分屏的部分,如下图所示: 分屏的组成 简图 分屏是由上分屏(SideStage)、下分屏(MainStage)以及分割线组…

flink集成tidb cdc

Flink TiDB CDC 详解 1. TiDB CDC 简介 1.1 TiDB CDC 的核心概念 TiDB CDC 是 TiDB 提供的变更数据捕获工具,能够实时捕获 TiDB 集群中的数据变更(如 INSERT、UPDATE、DELETE 操作),并将这些变更以事件流的形式输出。TiDB CDC 的…

推荐1款OCR的扫描仪软件,无需安装,打开即用!

聊一聊 现在日常办公,很多时候还是需要扫描仪配合。 很多时候需要将文件搜索成PDF再传输。 今天给大家分享一款OCR扫描仪软件。 软件介绍 OCR的扫描仪软件 支持扫描仪共享。 支持WIA、TWAIN、SANE和ESCL驱动程序。 还可以批量多扫描仪配置扫描,支持…

SpringBoot为什么默认使用CGLIB?

大家好,我是锋哥。今天分享关于【SpringBoot为什么默认使用CGLIB?】面试题。希望对大家有帮助; SpringBoot为什么默认使用CGLIB? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 默认使用 CGLIB(Code Generation Li…

神经网络|(十三)|SOM神经网络

【1】引言 前序已经对神经网络有了基础认识,今天先学习SOM神经网络。 前序学习文章链接包括且不限于: 神经网络|(十一)|神经元和神经网络-CSDN博客 神经网络|(十二)|常见激活函数-CSDN博客 【2】SOM神经网络 SOM神经网络是一种结构比较简单、但是理…

IP协议、DNS协议、DHCP协议、Telent协议的记忆总结

首先记忆一下几个协议的端口号 HTTP:超文本传输协议 80 HTTPS:安全传输协议 443 DHCP:动态主机配置协议 67/68 DNS:域名解析协议 53 FTP:文件传输协议 20/21 TFTP:简单文件传输协议 69 TELENT:远…

Pico 4 Enterprise(企业版)与Unity的交互-有线串流调试篇

入手了Pico 4 E做VR开发,谁知入了天坑...根据官方文档,尝试了串流助手、企业串流、PICO Developer Center,陷入了各种版本问题、环境问题的陷阱。而且Pico4E的OS自24年12开始就不再更新,头盔中预装的企业串流版本也较低&#xff0…

DeepSeek-R1:使用KTransformers实现高效部署指南

KTransformers作为一个开源框架,专门为优化大规模语言模型的推理过程而设计。它支持GPU/CPU异构计算,并针对MoE架构的稀疏性进行了特别优化,可以有效降低硬件要求,允许用户在有限的资源下运行像DeepSeek-R1这样庞大的模型。 硬件…

任务9:交换机基础及配置

CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、交换机基础 交换机的概念:交换机是一种网络设备,用于连接多台计算机或网络设备,实现数据包在局域网内的快速交换。交换机基于MAC地址来转发数据包&#x…

Notepad++ 8.6.7 安装与配置全攻略(Windows平台)

一、软件定位与核心优势 Notepad 是开源免费的代码/文本编辑器,支持超过80种编程语言的高亮显示,相比系统自带记事本具有以下优势: 轻量高效:启动速度比同类软件快30%插件扩展:支持NppExec、JSON Viewer等200插件跨文…

SpringMVC请求处理流程:DispatcherServlet工作原理

文章目录 引言一、DispatcherServlet概述二、DispatcherServlet初始化过程三、请求接收与处理器匹配四、请求参数绑定与处理器执行五、视图解析与渲染六、异常处理机制总结 引言 SpringMVC框架是Java Web开发中最流行的MVC框架之一,其核心组件DispatcherServlet作为…

解锁数据潜能,永洪科技以数据之力简化中粮可口可乐决策之路

企业数字化转型是指企业利用数字技术和信息通信技术来改变自身的商业模式、流程和增值服务,以提高企业的竞争力和创新能力。数字化转型已经成为企业发展的重要战略,尤其在当前信息技术高速发展的时代。数字化转型还涉及到企业与消费者之间的互动和沟通。…

双链路提升网络传输的可靠性扩展可用带宽

为了提升网络传输的可靠性或增加网络可用带宽, 通常使用双链路冗余备份或者双链路聚合的方式。 本文介绍几种双链路网络通信的案例。 5GWiFi冗余传输 双Socket绑定不同网络接口:通过Android的ConnectivityManager绑定5G蜂窝网络和WiFi的Socket连接&…

前端性能优化之同时插入100000个元素页面不卡顿

面试官:同时插入100000个元素怎么让页面不卡顿 优化前写法 首先我们来看下面的一段,点击按钮后,循环100000次,每次都插入一个元素,并且插入区域上方还有一个小球在滚动,在插入的过程中我们可以观察小球的…

Exoplayer2源码编译FFmpeg拓展模块实现音频软解码

在前面文章最新版本Exoplayer扩展FFmpeg音频软解码保姆级教程中介绍了最新版本的Exoplayer(androidx.Media3)编译FFmpeg模块的流程,有就是media3版本的explayer最低支持的sdk版本是21也就是Android5.x,但是市面上还是有很多IOT设备是很老的android4.4(sdk19)的&…

Docker安装嵌入框架Text Embeddings Inference (TEI)

Docker安装Text Embeddings Inference (TEI) 1 简单介绍 文本嵌入推理(TEI,Text Embeddings Inference )是HuggingFace研发的一个用于部署和服务开源文本嵌入和序列分类模型的工具包。TEI兼容OpenAI的嵌入模型的规范。 # 官网地址 https:/…

MAUI(C#)安卓开发起步

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

PPT小黑第26套

对应大猫28 层次级别是错的,看着是十页,导入ppt之后四十多页 选中所有 红色蓝色黑色 文本选择标题:选择 -格式相似文本(检查有没有漏选 漏选的话 按住ctrl 点下一个) 要求新建幻灯片中不包含原素材中的任何格式&…

【Linux-网络】HTTP的清风与HTTPS的密语

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚 引言 📚 一、HTTP 📖 1.概述 📖 2.URL &#x1f5…