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 coalesceindex = 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 spmmindex = 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 spspmmindexA = 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

pytorch_sparse教程相关推荐

  1. PyTorch Geometric (PyG) 安装教程

    诸神缄默不语-个人CSDN博文目录 PyG官方下载主页:Installation - pytorch_geometric documentation 以下仅考虑Linux系统的情况.(在Windows ...

  2. 使用Docker搭建svn服务器教程

    使用Docker搭建svn服务器教程 svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很 ...

  3. mysql修改校对集_MySQL 教程之校对集问题

    本篇文章主要给大家介绍mysql中的校对集问题,希望对需要的朋友有所帮助! 推荐参考教程:<mysql教程> 校对集问题 校对集,其实就是数据的比较方式. 校对集,共有三种,分别为:_bi ...

  4. mysql备份psb文件怎么打开_Navicat for MySQL 数据备份教程

    原标题:Navicat for MySQL 数据备份教程 一个安全和可靠的服务器与定期运行备份有密切的关系,因为错误有可能随时发生,由攻击.硬件故障.人为错误.电力中断等都会照成数据丢失.备份功能为防 ...

  5. php rabbmq教程_RabbitMQ+PHP 教程一(Hello World)

    介绍 RabbitMQ是一个消息代理器:它接受和转发消息.你可以把它当作一个邮局:当你把邮件放在信箱里时,你可以肯定邮差先生最终会把邮件送到你的收件人那里.在这个比喻中,RabbitMQ就是这里的邮箱 ...

  6. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)

    置顶 本人决定将过去一段时间在公司以及日常生活中关于自然语言处理的相关技术积累,将在gitbook做一个简单分享,内容应该会很丰富,希望对你有所帮助,欢迎大家支持. 内容介绍如下 你是否曾经在租房时因 ...

  7. Google Colab 免费GPU服务器使用教程 挂载云端硬盘

    一.前言 二.Google Colab特征 三.开始使用 3.1在谷歌云盘上创建文件夹 3.2创建Colaboratory 3.3创建完成 四.设置GPU运行 五.运行.py文件 5.1安装必要库 5 ...

  8. 理解和实现分布式TensorFlow集群完整教程

    手把手教你搭建分布式集群,进入生产环境的TensorFlow 分布式TensorFlow简介 前一篇<分布式TensorFlow集群local server使用详解>我们介绍了分布式Ten ...

  9. 高级教程: 作出动态决策和 Bi-LSTM CRF 重点

    https://www.zhihu.com/question/35866596 条件随机场 CRF(条件随机场)与Viterbi(维特比)算法原理详解 https://blog.csdn.net/qq ...

最新文章

  1. map python2 python3 兼容_windows下 兼容Python2和Python3的解决方法
  2. 神马是敏捷?(4)——敏捷不能当饭吃
  3. Windows Error Report
  4. java的方法调用中分不清_java中不太清晰的知识点
  5. leetcode19. 删除链表的倒数第N个节点
  6. java数据加密解密代码_java使用RSA加密方式实现数据加密解密的代码
  7. python标准库之re
  8. Recyclerview单选和多选
  9. Objective-C控制语句
  10. cdn搭建原理_直播平台搭建并不难,最难的是这两点
  11. nxlog收集windows事件方案
  12. 【ffmpeg】音频采集
  13. c语言———链表的创建
  14. 2021-03-12
  15. 15个经典面试问题及回答思路,经典好文
  16. 简单破解 Sencha Architect 2.2 (ExtJs Designer) - 李路平 - 博客园
  17. 2021年N1叉车司机复审考试及N1叉车司机模拟试题
  18. 知道创宇云防御平台通过2021上半年可信云安全运营中心能力评估
  19. 前端css中常见的-moz-,-webkit-,-o-分别是什么?
  20. impala 基础知识及使用

热门文章

  1. 大数据技术——销售分析系统
  2. html(Web开发)
  3. 老男孩Python全栈9期视频完整版
  4. 关于css设置第n个元素
  5. 经典算法之贪心(Greedy)
  6. 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么?
  7. 磁盘阵列和存储服务器的区别
  8. PS抠图:将猫咪图片打造成唯美星空效果图
  9. 计算机条件函数ppt,EXCEL常用函数教程PPT讲课课件_计算机硬件及应用_IT/计算机_资料(2)...
  10. android ndk x86 arm,NDK r21编译FFmpeg 4.2.2(x86、x86_64、armv7、armv8)