pytorch_sparse教程

news2024/11/8 19:45:30

pytorch_sparse教程

Coalesce

torch_sparse.coalesce(index, value, m, n, op="add") -> (torch.LongTensor, torch.Tensor)
逐行排序index并删除重复项。通过将重复项映射到一起来删除重复项。对于映射,可以使用任何一种torch_scatter操作。

参数

  • index(LongTensor) -稀疏矩阵的索引张量。
  • value (Tensor) -稀疏矩阵的值张量。
  • m (int) -稀疏矩阵的第一个维度。
  • n (int) -稀疏矩阵的第2维。
  • op (string,可选)-使用的散射操作。(默认值:“add”)

返回

  • index (LongTensor) -稀疏矩阵的合并索引张量。
  • value (Tensor) -稀疏矩阵的合并值张量。
import torch
from torch_sparse import coalesce

index = torch.tensor([[1, 0, 1, 0, 2, 1],
                      [0, 1, 1, 1, 0, 0]])
value = torch.Tensor([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]])

index, value = coalesce(index, value, m=3, n=2)
------------------------------------------------------------

Transpose

torch_sparse.transpose(index, value, m, n) -> (torch.LongTensor, torch.Tensor)
对稀疏矩阵的0维和1维进行转置。
参数

  • index(LongTensor) -稀疏矩阵的索引张量。
  • value (Tensor) -稀疏矩阵的值张量。
  • m (int) -稀疏矩阵的第一个维度。
  • n (int) -稀疏矩阵的第2维。coalesced (bool,可选)-如果设置为False,将不会合并输出。(默认值是真实的)

返回

  • index(longtensor) - 稀疏基质的转置索引张量。
  • value(张量) - 稀疏矩阵的转置值张量。
import torch
from torch_sparse import transpose
index = torch.tensor([[1, 0, 1, 0, 2, 1], [0, 1, 1, 1, 0, 0]])
value = torch.Tensor([[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]])
index, value = transpose(index, value, 3, 2)
----------------------------------------------------
print(index)
tensor([[0, 0, 1, 1],
        [1, 2, 0, 1]])
print(value)
tensor([[7.0, 9.0],
        [5.0, 6.0],
        [6.0, 8.0],
        [3.0, 4.0]])

Sparse Dense Matrix Multiplication

torch_sparse.spmm(index, value, m, n, matrix) -> torch.Tensor
一个稀疏矩阵与一个密集矩阵的矩阵乘积。
参数

  • index(LongTensor) -稀疏矩阵的索引张量。
  • value (Tensor) -稀疏矩阵的值张量。
  • m (int) -稀疏矩阵的第一个维度。
  • n (int) -稀疏矩阵的第2维。矩阵(张量)-密集矩阵。

返回

  • out(张量)-密集输出矩阵。
import torch
from torch_sparse import spmm

index = torch.tensor([[0, 0, 1, 2, 2], [0, 2, 1, 0, 1]])
value = torch.Tensor([1, 2, 4, 1, 3])
matrix = torch.Tensor([[1, 4], [2, 5], [3, 6]])
out = spmm(index, value, 3, 3, matrix)
------------------------------------------
print(out)
tensor([[7.0, 16.0],
        [8.0, 20.0],
        [7.0, 19.0]])

Sparse Sparse Matrix Multiplication

torch_sparse.spspmm(indexA, valueA, indexB, valueB, m, k, n) -> (torch.LongTensor, torch.Tensor)

两个稀疏张量的矩阵乘积。两个输入稀疏矩阵都需要合并(使用coalesced属性强制)。

参数

  • indexA (LongTensor) -第一个稀疏矩阵的索引张量。
  • valueA (Tensor) -第一个稀疏矩阵的值张量。
  • indexB (LongTensor) -第二稀疏矩阵的索引张量。
  • valueB (Tensor) -第二稀疏矩阵的值张量。
  • m (int) -第一个稀疏矩阵的第一个维度。
  • k (int) -第一个稀疏矩阵的第二次维和第二个稀疏矩阵的第一次维。
  • n (int) -第2个稀疏矩阵的第2维。
  • coalesced (bool,可选):如果设置为True,将合并两个输入稀疏矩阵。(默认值:False)

返回

  • index(LongTensor) -稀疏矩阵的输出索引张量。
  • value (Tensor) -稀疏矩阵的输出值张量。
import torch
from torch_sparse import spspmm

indexA = torch.tensor([[0, 0, 1, 2, 2], [1, 2, 0, 0, 1]])
valueA = torch.Tensor([1, 2, 3, 4, 5])

indexB = torch.tensor([[0, 2], [1, 0]])
valueB = torch.Tensor([2, 4])

indexC, valueC = spspmm(indexA, valueA, indexB, valueB, 3, 3, 2)

参考

https://github.com/rusty1s/pytorch_sparse

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

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

相关文章

来回修改的投标文件怎么做版本管理?1个工具搞定!

投标是公司市场活动中非常重要的事情,每次投标文件的编写像打仗一样,要修改很多次,不保存每个版本就只能在需要的时候后悔,多个文件、多人编写、多种方案要再最后的几个小时才能定,每次都是弄得鸡飞狗跳的,…

Python卷积神经网络CNN

Python卷积神经网络CNN 提示:前言 Python卷积神经网络CNN 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Python卷积神经网络CNN前言一、导入包二、介绍三、卷积过滤四、权重五、展示特征图六、用 ReLU…

一文快速入门哈希表

目录一、基本概念1.1 哈希冲突二、整数哈希2.1 哈希函数的设计2.2 解决哈希冲突2.2.1 开放寻址法2.2.2 拉链法三、字符串哈希3.1 应用:重复的DNA序列References一、基本概念 哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。所谓以「key-…

RA4M2开发(1)----使用串口进行打印

为什么使用Cube进行FreeRTOS配置 本篇文章主要介绍如何使用e2studio对瑞萨RA4M2开发板进行串口打印配置。 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FAM2AD3CFP的开发板: 新建工程 工程模板 保存工程路径 芯片配置 本文中使用R7F…

【GlobalMapper精品教程】043:图片自动矢量化

本文讲解Globalmapper自动矢量化教程,配套案例数据。 参考教程:ArcGIS实验教程——实验三十三:ArcScan自动矢量化完整案例教程 文章目录 一、加载实验数据二、启动矢量化工具三、矢量化栅格四、矢量化结果五、注意事项一、加载实验数据 打开配套实验数据包中的data043.rar…

参数检验与非参数检验

综述 假设检验 参数检验 T检验 T检验是通过比较不同数据的均值,研究两组数据之间是否存在显著差异。 单总体检验:单总体t检验是检验一个样本平均数与一个已知的总体平均数的差异是否显著。当总体分布是正态分布,如总体标准差未知且样本容量小…

算法——垃圾回收算法——标记清除

标记清除简介算法过程1.标记阶段2.清除阶段3.缺点3.1内存碎片化简介 标记清除算法简介。 文章中使用的动画网站地址: 限 pc: 标记清除动画 :http://www.donghuasuanfa.com/platform/portal?pcmark-sweep 算法一览表:https://blog.csdn.net…

23种设计模式之面向对象的设计原则

23种设计模式之面向对象的设计原则1. 设计模式概述1.1 什么是设计模式1.2 设计模式的好处2. 设计原则分类3. 详解3.1 单一职责原则3.2 开闭原则3.3 里氏代换原则3.4 依赖倒转原则3.5 接口隔离原则3.6 合成复用原则3.7 迪米特法则4. Awakening1. 设计模式概述 我们的软件开发技术…

18《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限,如果错误欢迎批评指正。 第四章:Protein Binding Leads to Biological Actions (蛋白质的结合会产生生物作用) -偶联结合是调控、信号传…

【Java基础】-【Spring Boot】-【Spring】

文章目录Spring BootSpring Boot的启动流程Spring Boot项目是如何导入包的?Spring Boot自动装配的过程Spring Boot注解Spring的核心Spring AOP既然有没有接口都可以用CGLIB,为什么Spring还要使用JDK动态代理?AOP的应用场景Spring AOP不能对哪…

图论(7)负环和差分约束

一、概念 给定一张有向图,如果存在一个环,环上各边权值之和是负数,则称这个环为负环。 判断方式:bellman-ford算法和spfa算法。抽屉原理 这里只介绍spfa。设立cnt数组表示从1到x的最短路径包含的边数,如果cnt[i]大于…

JZ65 不用加减乘除做加法

【答案解析】:十进制相加思想: 1507 , 先计算不考虑进位的相加结果 12 (因为 57 的不考虑进位的结果是 2 ,遇 10 进位嘛),然后计算进位 57 进位是 10 ,则 10 与 12 再次相加&#xf…

2023年山东最新交安安全员考试题库及答案

百分百题库提供交安安全员考试试题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 35.建设行政主管部门或者其他有关部门可以将施工现场的监督检查委托给建设工程()…

Visual Studio 17.5: 有关 C++ 的新特性预览

Visual Studio 17.5 在 C 代码编辑方面带来了一些新的改进,这些改进包括:C 代码中的大括号对着色,拼写检查,多合一搜索,重新设计的成员列表以及宏展开改进等。上述这些改进都融入到了 Visual Studio 的最新预览版本 17…

CTF-Horizontall HackTheBox渗透测试(一)

** 0X01 简介** #Horizontall#难度是一个相对“简单”的 CTF Linux盒子。该CTF环境涵盖了通过利用Strapi RCE 漏洞并使用内部应用程序 (Laravel) 将隧道传输到本地计算机,并且在 Laravel v 7.4.18 上运行 漏洞PoC最来提升权限拿到root用户权限。 ** 1.1信息收集**…

GuLi商城-人人开源搭建后台管理系统

参考: 谷粒商城-基础篇(详细流程梳理代码) 谷粒商城-day01 项目的基本搭建_周周写不完的代码的博客-CSDN博客_谷粒商城 若依 谷粒商城分布式基础篇1-个人版_断河愁的博客-CSDN博客_谷粒商城 https://blog.csdn.net/yudbl/category_11902060.html 学习路线 源代…

博客搭建教程2-hexo框架初搭建

文章目录1 前言2 准备工作3 hexo安装4 共享文件夹创建(额外)1 前言 本次教程选用hexo来搭建博客,hexo是一个开源的架构,只需要进行简单的操作就可以拥有自己的博客。 参考网站: hexo官网 注意:下面的命令在root下进行,在日常的工…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【04】跨域_OSS_后端校验

持续学习&持续更新中… 学习态度:守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【04】跨域问题解决实现逻辑删除文件存储普通上传云存储阿里云OSS简介术语简单使用使用SpringCloudAlibaba—oss服务端签名后直传普通上传方式:服务端签名后…

Win10安装ElasticSearch笔记

1、安装前准备条件因为ElasticSearch7.17需要JDK1.8的支持,首先确保你的win10已经提前安装好了jdk8的版本ElasticSearch支持的JDK最低版本是1.8.0。ElasticSearch7.17及以下的版本最低版本是JDK1.8.0ElasticSearch8.0及以上的版本最低版本是JDK162、官网下载ES安装包…

Java开发环境配置 “IntelliJ IDEA”(超详细整理,适合新手入门)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 前言 一、IDEA的介绍 1、大概介绍 2、详细介绍 二、Intelli…