【深度学习】pytorch 与 PyG 安装(pip安装)

【深度学习】pytorch 与 PyG 安装(pip安装)

  • 一、PyTorch安装和配置
    • (一)、安装 CUDA
    • (二)、安装torch、torchvision、torchaudio三个组件
      • (1)下载镜像文件
      • (2)创建一个新的虚拟环境
      • (3)加载.whl文件并测试安装是否成功
  • 二、PyG 安装
    • (一)安装 torch_scatter 、torch_sparse 、torch_cluster 、torch_spline_conv
      • 测试:
    • 一般方式(电脑已安装好pytorch)

一、PyTorch安装和配置

深度神经网络是一种目前被广泛使用的工具,可以用于图像识别、分类,物体检测,机器翻译等等。深度学习(DeepLearning)是一种学习神经网络各种参数的方法。因此,我们将要介绍的深度学习,指的是构建神经网络结构,并且运用各种深度学习算法训练网络参数,进而解决各种任务。本文从PyTorch环境配置开始。PyTorch是一种Python接口的深度学习框架,使用灵活,学习方便。还有其他主流的深度学习框架,例如Caffe,TensorFlow,CNTK等等,各有千秋。笔者认为,初期学习还是选择一种入门,不要期望全都学会。须知,发力集中才能深入挖掘。乱花渐欲迷人眼,选择适合自己的,从一而终,相信会对科研大有裨益!

(一)、安装 CUDA

一、查看 cuda 版本

在命令行中输入 nvcc --version

nvcc --version

在这里插入图片描述

注:电脑环境此前安装好了 cuda,可参考下述教程安装cuda

https://blog.csdn.net/weixin_43848614/article/details/117221384

(二)、安装torch、torchvision、torchaudio三个组件

以python3.8为例,当然其他版本也适用。

经验:

  1. 安装cuda10.2(又写作cu102)版本对应的三个组件,是比较稳妥的

  2. 国内源容易在安装时自动替换为cpu版本,因此从pytorch官网下载较稳妥

  3. 建议使用pip安装,conda安装很可能会安装为cpu版本

(1)下载镜像文件

点击网址,下载相关镜像文件:https://download.pytorch.org/whl/cu102

在这里插入图片描述
首先选择torch,ctrl + F 搜索 [cu102-cp38-cp38-win] 这里cu102 是我们下载的 CUDA 10.2 版本,cp38-cp38 是说我们的 Python 版本是 3.8。如果要安装python3.9那将cp3.8改为cp3.9即可。

whl文件是一个压缩包,包含了所需的所有安装文件和元数据。它其中的文件是编译过得到的二进制文件,而不是C++ 源码。如果是后者,显然系统还需要 C++ 的编译器才能运行文件。

在这里插入图片描述单击即可下载,这里torch版本为1.10.0,我们要去官网查找该版本对应的torchvision 和torchaudio版本。ctrl + F 搜索 [pip install torch==1.10.0] 并且对应cuda为10.2。

在这里插入图片描述
因此torchvision需要安装0.11.0版本,torchaudio需要安装0.10.0版本。

在之前的网址中选择torchaudio,ctrl + F 搜索 [cu102-cp38-cp38-win],选择版本为0.10.0的。高亮处单击下载。

在这里插入图片描述
同理在之前的网址中选择torchvision,ctrl + F 搜索 [cu102-cp38-cp38-win],选择版本为0.11.0的。高亮处单击下载。

在这里插入图片描述

下载了3个.whl文件,建议都安装到同一个文件夹下,比如D:\pytorch_whl

下载完成后,将三个镜像文件放入一个文件夹,推荐创建一个新的虚拟环境安装。

(2)创建一个新的虚拟环境

pip 方式的创建虚拟环境见下方链接内容

https://blog.csdn.net/weixin_43848614/article/details/131906596
在这里插入图片描述

在这里插入图片描述

本人习惯使用pip方式,如果安装 Anaconda 的话,使用conda的命令创建虚拟环境。

Anaconda 操作:

默认大家都安装好Anaconda了。在开始菜单中搜索anaconda Prompt,点击进入。

创建python虚拟环境:

conda create -n your_env_name python=x.x

这里your_env_name表示你即将安装的虚拟环境的名字,x.x表示python版本。我这里设置名称为gym_gpu,安装的python版本为3.8,于是输入 conda create -n gym_gpu python=3.8 后回车:

conda activate your_env_name

(3)加载.whl文件并测试安装是否成功

pip install F:\pytorch_whl\torch-1.10.0+cu102-cp38-cp38-win_amd64.whl
pip install F:\pytorch_whl\torchaudio-0.10.0+cu102-cp38-cp38-win_amd64.whl
pip install F:\pytorch_whl\torchvision-0.11.0+cu102-cp38-cp38-win_amd64.whl

在这里插入图片描述

安装过程耐心等待,中间会从安装某些比较大的第三方库。安装结束后需要测试是否成功安装gpu版本的pytorch。

#接着检查cuda,cudnn版本
#首先进入python的交互模式
#python交互模式,直接输入python即可进入#接着输入下述代码
python
import torch #导入pytorch库
print(torch.cuda.is_available()) #查看是否有cuda
print(torch.backends.cudnn.is_available()) #查看是否有cudnn
print(torch.cuda_version) #打印cuda的版本
print(torch.backends.cudnn.version()) #打印cudnn的版本
#结果如下图

在这里插入图片描述

二、PyG 安装

PyG 全称是PyTorch-Geometric,是一个PyTorch基础上的一个库,专门用于图形式的数据,可以加速图学习算法的计算过程,比如稀疏化的图等。

(一)安装 torch_scatter 、torch_sparse 、torch_cluster 、torch_spline_conv

接上文内容,在安装 pytorch 后安装 PyG

进入下述网址后,下载 torch_scatter 、torch_sparse 、torch_cluster 、torch_spline_conv 四个包:

https://data.pyg.org/whl/torch-1.10.0%2Bcu102.html

在这里插入图片描述

下载后将四个包放置在同一个文件夹。

在这里插入图片描述

可以使用绝对路径安装,也可以cd 安装包的位置后,使用pip安装(注:)

cd /d D:\XXX\XX\  # 安装包所存的位置
pip install torch_scatter-2.0.5-cp38-cp38-win_amd64.whl
pip install torch_sparse-0.6.7-cp38-cp38-win_amd64.whl
pip install torch_cluster-1.5.7-cp38-cp38-win_amd64.whl
pip install torch_spline_conv-1.2.0-cp38-cp38-win_amd64.whl

在这里插入图片描述
最后选择好版本PyG版本直接安装即可。

pip install torch-geometric

测试:

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch_geometric.nn import MessagePassing
from torch_geometric.utils import softmax, add_remaining_self_loopsclass GATConv(MessagePassing):def __init__(self, in_feats, out_feats, alpha, drop_prob=0.0):super().__init__(aggr="add")self.drop_prob = drop_probself.lin = nn.Linear(in_feats, out_feats, bias=False)self.a = nn.Parameter(torch.zeros(size=(2*out_feats, 1)))self.leakrelu = nn.LeakyReLU(alpha)nn.init.xavier_uniform_(self.a)def forward(self, x, edge_index):edge_index, _ = add_remaining_self_loops(edge_index)# 计算 Whh = self.lin(x)# 启动消息传播h_prime = self.propagate(edge_index, x=h)return h_primedef message(self, x_i, x_j, edge_index_i):# 计算a(Wh_i || wh_j)e = torch.matmul((torch.cat([x_i, x_j], dim=-1)), self.a)e = self.leakrelu(e)alpha = softmax(e, edge_index_i)alpha = F.dropout(alpha, self.drop_prob, self.training)return x_j * alphaif __name__ == "__main__":conv = GATConv(in_feats=3, out_feats=3, alpha=0.2)x = torch.rand(4, 3)edge_index = torch.tensor([[0, 1, 1, 2, 0, 2, 0, 3], [1, 0, 2, 1, 2, 0, 3, 0]], dtype=torch.long)x = conv(x, edge_index)print(x.shape)

在这里插入图片描述

一般方式(电脑已安装好pytorch)

如果你的电脑此前已经安装好了 pytorch,使用下述步骤进行安装

  1. 首先检查 Pytorch 的版本:
python -c "import torch; print(torch.__version__)"
  1. 检查一下 cuda 版本
python -c "import torch; print(torch.version.cuda)"
  1. 然后按照你的 Pytorch 版本和 cuda 版本,下载相应的轮子(whl文件)
pip install pyg-lib torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-${TORCH}+${CUDA}.html

把 ${TORCH} 换成 pytorch 的主版本号.次版本号.0。不要管补丁版本!比如你的 pytorch 版本是 1.13.1,这里只需要填 1.13.0 . 其实你可以先访问这个网址,看看它是不是存在。

软件包的命名方式:主版本号.次版本号.补丁版本号。

把 ${CUDA} 换成 cuda 版本或者 cpu。我在这里遇到了另一个坑。我是在 amazon SageMaker Studio Lab里运行的 jupyter lab,开的是 CPU 实例,因此GPU是不可用的(可以用 torch.cuda.is_available()查看)。

命令示例:

pip install pyg-lib torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-1.13.0+cpu.html

安装完毕后,再安装 torch-geometric 即可。

pip install torch-geometric

参考:

https://blog.csdn.net/zzlyw/article/details/78674543

https://zhuanlan.zhihu.com/p/612181449

https://repo.anaconda.com/archive/

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

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

相关文章

2024腾讯云游戏服务器租用多少钱一年?

2024年更新腾讯云游戏联机服务器配置价格表,可用于搭建幻兽帕鲁、雾锁王国等游戏服务器,游戏服务器配置可选4核16G12M、8核32G22M、4核32G10M、16核64G35M、4核16G14M等配置,可以选择轻量应用服务器和云服务器CVM内存型MA3或标准型SA2实例&am…

TCP/IP协议以及UDP(超详细,看这一篇就够了)

💓 博客主页:从零开始的-CodeNinja之路 ⏩ 收录专栏:TCP/IP协议以及UDP(超详细,看这一篇就够了) 🎉欢迎大家点赞👍评论📝收藏⭐文章 TCP/IP协议以及UDP(超详细,看这一篇就够了 前提概括接收端和发送端客户…

5G NR 信道号计算

一、5G NR的频段 增加带宽是增加容量和传输速率最直接的方法,目前5G最大带宽将会达到400MHz,考虑到目前频率占用情况,5G将不得不使用高频进行通信。 3GPP协议定义了从Sub6G(FR1)到毫米波(FR2)的5G目标频谱。 其中FR1是5G的核心频段&#xff0…

ARP欺骗攻击利用之内网截取图片

Arp欺骗:目标ip的流量经过我的网卡,从网关出去。 Arp断网:目标ip的流量经过我的网卡 1. echo 1 >/proc/sys/net/ipv4/ip_forward 设置ip流量转发,不会出现断网现象 有时不能这样直接修改,还有另外一种方法 修…

【原理图PCB专题】Cadence17.4 PCB位号重排与反标

在文章:【原理图专题】Cadence 16.6如何把PCB元件位号重排并反标到原理图 中我们讲到了Cadence16.6版本对原理图进行反标的操作。 对于反标之前我们是通过如下所示的绘制流程来讲的,一般在首板或是大改板操作器件里有很多不同的很大的位号,这时我们可以通过Backannotate功能…

Spring第二天

一、第三方资源配置管理 说明:以管理DataSource连接池对象为例讲解第三方资源配置管理 1 管理DataSource连接池对象 问题导入 配置数据库连接参数时,注入驱动类名是用driverClassName还是driver? 1.1 管理Druid连接池【重点】 数据库准备…

Go内存优化与垃圾收集

Go提供了自动化的内存管理机制,但在某些情况下需要更精细的微调从而避免发生OOM错误。本文介绍了如何通过微调GOGC和GOMEMLIMIT在性能和内存效率之间取得平衡,并尽量避免OOM的产生。原文: Memory Optimization and Garbage Collector Management in Go 本…

MySQL ——group by子句使用with rollup

group by 子句使用with rollup关键字之后,具有分组加和的功能。即:在所有的分组记录之后,自动新增一条记录,从全局计算所有记录的数据。 0 问题描述 求出每年的学生平均成绩,及历史至今的平均成绩,结果保留…

Linux线程 分离和同步与互斥 条件变量

Linux线程 分离和同步与互斥 条件变量 1. 分离线程2. 线程互斥与互斥量3. 线程同步与竞态条件4. pthread库与条件变量5. 生产者-消费者 1. 分离线程 什么是线程分离? 线程分离是指线程在结束时,操作系统会自动回收其资源,而无需其他线程显式地…

【开源】JAVA+Vue+SpringBoot实现公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)

[自然语言处理|NLP] 文本分类与情感分析,数据预处理流程,包括了同义词替换和拼写纠正,以及使用NLTK库和TextBlob库进行标记化和情感分析(附代码)。 自然语言处理(Natural Language Processing,简称NLP)是人工智能领域的一个重要分支,涉及了处理和理解人类语言的技术…

百卓Smart管理平台 uploadfile.php 文件上传漏洞(CVE-2024-0939)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

除夕日的每日一题(字符个数统计,多数元素)

字符个数统计_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h> #include <string.h> #include <stdlib.h>int num0,len,i,j,k,asc; int tmp[128]{0}; char str[400]; int main() {gets(str);//gets(str) 用于从标准输入读取一个字符串并存储在 str 中len…

「递归算法」:合并两个有序链表

一、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#…

华为第二批难题一:基于预训练AI模型的元件库生成

我的理解&#xff1a;华为的这个难道应该是想通过大模型技术&#xff0c;识别元件手册上的图文内容&#xff0c;与现有建库工具结合&#xff0c;有潜力按标准生成各种库模型。 正好&#xff0c;我们正在研究&#xff0c;利用知识图谱技术快速生成装配模型&#xff0c;其中也涉…

有关网络安全的课程学习网页

1.思科网络学院 免费学习skillsforall的课程 课程链接&#xff1a;Introduction to Cybersecurity by Cisco: Free Online Course (skillsforall.com) 2.斯坦福大学计算机和网络安全基础 该证书对于初学者来说最有价值&#xff0c;它由最著名的大学之一斯坦福大学提供。您可…

基于YOLOv7算法的高精度实时老鼠目标检测系统(PyTorch+Pyside6+YOLOv7)

摘要&#xff1a;基于YOLOv7算的高精度实时老鼠目标检测系统可用于日常生活中检测与定位老鼠目标&#xff0c;此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别&#xff0c;同时本系统还支持检测结果可视化与导出。本系统采用YOLOv7目标检测算法来训练数据…

nodejs+vue高校实验室耗材管理系统_m20vy

用户功能&#xff1a; 登录后要有一个首页 比如:可以看见目前的耗材消耗记录&#xff0c;可做成图表菜单栏在左侧显示 1.个人信息管理 可以对基本信息进行修改&#xff0c;(修改密码时需要验证) 2.耗材管理&#xff08;耗材信息&#xff09; 普通用户可以查询当前相关耗材信息[…

【数据结构与算法】力扣刷题记之 稀疏数组

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

OCP使用CLI创建和构建应用

文章目录 环境登录创建project赋予查看权限部署第一个image创建route检查pod扩展应用 部署一个Python应用连接数据库创建secret加载数据并显示国家公园地图 清理参考 环境 RHEL 9.3Red Hat OpenShift Local 2.32 登录 通过 crc console --credentials 可以查看登录信息&…