【深度学习】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_loops


class GATConv(MessagePassing):
    def __init__(self, in_feats, out_feats, alpha, drop_prob=0.0):
        super().__init__(aggr="add")
        self.drop_prob = drop_prob
        self.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)
        # 计算 Wh
        h = self.lin(x)
        # 启动消息传播
        h_prime = self.propagate(edge_index, x=h)
        return h_prime

    def 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 * alpha


if __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://www.mfbz.cn/a/379324.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧自助餐饮系统(SpringBoot+MP+Vue+微信小程序+JNI+ncnn+YOLOX-Nano)

一、项目简介 本项目是配合智慧自助餐厅下的一套综合系统,该系统分为安卓端、微信小程序用户端以及后台管理系统。安卓端利用图像识别技术进行识别多种不同菜品,识别成功后安卓端显示该订单菜品以及价格并且生成进入小程序的二维码,用户扫描…

【芯片设计- RTL 数字逻辑设计入门 7 -- 同步复位与异步复位详细介绍】

文章目录 复位的类型和划分同步复位综合后电路优缺点 异步复位优缺点 异步复位的时序分析(recovery time/removal time)异步复位,同步释放综合后电路优缺点 转自:https://blog.csdn.net/qq_40281783/article/details/128969188 复…

使用Python语言生成区块链地址

# 单次运行 import binascii import sha3 from ecdsa import SigningKey, SECP256k1priv SigningKey.generate(curveSECP256k1) # 生成私钥 pub priv.get_verifying_key() # 生成公钥keccak sha3.keccak_256() keccak.update(pub.to_string()) # keccak_256哈希运算 addr…

计算机视觉讲座PPT分享

最近在电子工业出版社做的《计算机视觉入门路线图》讲座的部分PPT。 主要介绍了计算机视觉的学习基本路线。

github拉取项目,pycharm配置远程服务器环境

拉取项目 从github上拉取项目到pycharmpycharm右下角选择远程服务器上的环境 2.1. 如图 2.2. 输入远程服务器的host,port,username,password连接 2.3. 选择服务器上的环境 链接第3点 注:如果服务器上环境不存在,先创建…

【CV论文精读】EarlyBird: Early-Fusion for Multi-View Tracking in the Bird’s Eye View

【CV论文精读】EarlyBird: Early-Fusion for Multi-View Tracking in the Bird’s Eye View 0.论文摘要 多视图聚合有望克服多目标检测和跟踪中的遮挡和漏检挑战。多视图检测和3D对象检测中的最新方法通过将所有视图投影到地平面并在鸟瞰视图(BEV)中执…

django admin 自定义界面时丢失左侧导航 nav_sidebar

只显示了自定义模板的内容,左侧导航没有显示出来。 原因:context 漏掉了,要补上。 # 错误写法(左侧导航不显示)def changelist_view(self, request, extra_contextNone):form CsvImportForm()payload {"form&qu…

Gitlab和Jenkins集成 实现CI (二)

配置Gitlab api token 配置 Gitlab 进入gitlab #mermaid-svg-QQWExcx5fpZ59Sk7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}#mermaid-svg-QQWExcx5fpZ59Sk7 .error-icon{fill:#552222;}#mermaid-svg-QQWExcx5fpZ59Sk7 .e…

ubuntu22.04@laptop OpenCV Get Started: 005_rotate_and_translate_image

ubuntu22.04laptop OpenCV Get Started: 005_rotate_and_translate_image 1. 源由2. translate/rotate应用Demo3 translate_image3.1 C应用Demo3.2 Python应用Demo3.3 平移图像过程 4. rotate_image4.1 C应用Demo4.2 Python应用Demo4.3 旋转图像过程 5. 总结6. 参考资料 1. 源由…

【开源】SpringBoot框架开发校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

【龙年大礼】| 2023中国开源年度报告!

【中国开源年度报告】由开源社从 2015 年发起,是国内首个结合多个开源社区、高校、媒体、风投、企业与个人,以纯志愿、非营利的理念和开源社区协作的模式,携手共创完成的开源研究报告。后来由于一些因素暂停,在 2018 年重启了这个…

JavaScript实现轮播图方法

效果图 先来看下效果图,嫌麻烦就不用具体图片来实现了,主要是理清思路。(自动轮播,左右按钮切换图片,小圆点切换图片,鼠标移入暂停轮播,鼠标移出继续轮播) HTML 首先是html内容&am…

从0开始学Docker ---Docker安装教程

Docker安装教程 本安装教程参考Docker官方文档,地址如下: https://docs.docker.com/engine/install/centos/ 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest…

Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller

Springboot拦截器中跨域失效的问题 一、概述 1、具体场景 起因: 同一个接口,传入不同参数进行值的修改时,一个成功,另一个竟然失败,而且是跨域问题拦截器内的request参数调用getHeader方法时,获取不到前端…

[CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理

文章目录 前言一、所需环境二、实现思路2.1. 定义了LeNet网络模型结构,并训练了20次2.2 以txt格式导出训练结果(模型的各个层权重偏置等参数)2.3 (可选)以pth格式导出训练结果,以方便后期调试2.4 C CUDA要做的事 三、C CUDA具体实现3.1 新建.cu文件并填好…

day29打卡

day29打卡 491. 非递减子序列 使用uset记录本层元素是否使用即可。 class Solution { public:vector<vector<int>> ret;vector<int> path;vector<vector<int>> findSubsequences(vector<int>& nums) {//不能排序&#xff0c;排序后…

股票K线简介

股票K线&#xff08;K-Line&#xff09;是用于表示股票价格走势的图形&#xff0c;主要由四个关键价格点组成&#xff1a;开盘价、收盘价、最高价和最低价。K线图广泛应用于股票市场技术分析中&#xff0c;它提供了丰富的信息&#xff0c;帮助分析师和投资者理解市场的行情走势…

【Linux】Shell编程

Shell编程 目录 Shell编程1.shell基础1.输入重定向 & 输出重定向2.管道3.特殊字符(3.1)通配符(3.2)引号(3.3)注释符(#) 4.别名5.命令历史history 2.Shell脚本Shell脚本的执行方式(1)为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行。(2)sh shell脚本名(…

【RT-DETR进阶实战】利用RT-DETR进行视频划定区域目标统计计数

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 Hello,各位读者,最近会给大家发一些进阶实战的讲解,如何利用RT-DETR现有的一些功能进行一些实战, 让我们不仅会改进RT-DETR,也能够利用RT-DETR去做一些简单的小工作,后面我也会将这些功能利用PyQt或者是…

华清作业day56

SQLite特性&#xff1a; 零配置一无需安装和管理配置&#xff1b;储存在单一磁盘文件中的一个完整的数据库&#xff1b;数据库文件可以在不同字节顺序的机器间自由共享&#xff1b;支持数据库大小至2TB&#xff1b;足够小&#xff0c;全部源码大致3万行c代码&#xff0c;250KB…