torch_scatter.scatter()的使用方法

学习目标:

在学习PyG时,遇到了 scatter 这个函数,经过学习加上自身的理解,记录如下以备复习


学习内容:

在这里插入图片描述

  • src:表示输入的tensor,接下来被处理;
  • index:表示tensor对应的索引;
  • dim:该值取0或者1(-1),默认是1;当dim=0时,表示从进行分割成元素;当dim=1时,表示从进行分割成元素。
  • reduce:表示对应的操作

具体操作如下:

例子1

from torch_scatter import scatter
src = torch.Tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
index = torch.tensor([0, 0, 1], dtype=torch.int64)
out = scatter(src, index, dim=0, reduce='mean')
print(out)

在这里插入图片描述
1.首先是dim=0表示对输入的tensor进行分割:[1,2,3],[4,5,6],[7,8,9]。
2.索引index=[0,0,1]表示处理的顺序:第一行元素和第二行元素进行处理,再是第三行的元素进行进行。对第一行元素[1,2,3]和第二行元素[4,5,6]进行reduce='mean'得到[2.5,3.5,4.5],对第三行元素[7,8,9]进行reduce='mean'得到[7,8,9].

例子2

from torch_scatter import scatter
src = torch.Tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
index = torch.tensor([0, 0, 1], dtype=torch.int64)
out = scatter(src, index, dim=1, reduce='mean')
print(out)

在这里插入图片描述
1.首先dim=1表示对输入的tensor进行列向分割元素[1,4,7]、[2,5,8]和[3,6,9]。
2.索引index=[0,0,1]表示将[1,4,7]和[2,5,8]首先进行reduce='mean'操作得到[1.5,4.5,7.5];[3,6,9]进行reduce=mean操作后仍为[3,6,9],接着将其进行列向拼接。

例子3–维度问题

from torch_scatter import scatter
src = torch.Tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])  
index = torch.tensor([1, 1, 0,2], dtype=torch.int64)
out = scatter(src, index, dim=0, reduce='mean')
print(out)

在这里插入图片描述
1.dim=0表示从行向进行分割
[1,2,3]
[4,5,6]
[7,8,9]
[10,11,12]
2.索引index=[1,1,0,2],从索引可以看出顺序为[7,8,9]——[1,2,3]和[4,5,6]——[10,11,12],分别进行reduce='mean'操作得到[7,8,9]——[2.5,3.5,4.5]——[10,11,12]三个tensor,然后进行行向拼接。


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

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

相关文章

机器学习 day14 ( 神经网络 )

神经网络的发展 最开始的动机:是通过构建软件来模拟大脑,但今天的神经网络几乎与大脑的学习方式无关 我们依据大脑中的神经网络,来构建人工神经网络模型。左图中:一个神经元可以看作一个处理单元,它有很多的输入/树突…

chatgpt赋能python:Python创建一个Animal类介绍

Python创建一个Animal类介绍 Python是一种高级编程语言,其简单易学、灵活性强、可读性高以及强大的库使得Python非常受欢迎。在Python中创建类非常容易且非常常见,我们可以使用Python创建各种类型的类。今天,我们将讨论如何使用Python创建一…

【时空权衡】

目录 知识框架No.0 时空权衡一、基本思想 No.1 计数排序一、比较计数二、分布计数 No.2 散列法一、开散列(分离链)二、闭散列(开式寻址) 知识框架 No.0 时空权衡 一、基本思想 其实时空权衡:是指在算法的设计中&…

进程信号(Linux)

进程信号 信号入门身边的信号进程信号 产生信号终端按键产生信号调用系统函数向目标进程发信号killraiseabort 硬件异常产生信号由软件条件产生信号 阻塞信号信号其他相关常见概念在内核中的表示sigset_t信号集操作函数sigprocmasksigpending 捕捉信号内核如何实现信号的捕捉si…

分布式简要说明

1.分布式简要说明 《分布式系统原理与范型》定义: 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。 分布式系统 (distributed system) 是建立在网络之上的软件系统。 随着互联网的发展,网站应用的规模不断扩…

SAP-QM-物料主数据-质量管理视图字段解析

过账到质检库存:要勾选,否则收货后库存不进入质检库存HU检验:收货到启用HU管理的库位时产生检验批,例如某个成品物料是收货到C002库位,该库位启用了HU管理,那么此处要勾选。但是如果勾选了,却收…

04.hadoop上课笔记之java编程和hbase

1.win查看服务 netstat -an #linux也有#R数学建模语言 SCALAR 2.java连接注意事项,代码要设置用户 System.setProperty("HADOOP_USER_NAME", "hadoop");3.伪分布式的好处(不用管分布式细节,直接连接一台机器…,适合用于学习) 4.官方文档 查看类(static |…

Python期末复习题库(下)——“Python”

小雅兰期末加油冲冲冲!!! 1. (单选题)下列关于文件打开模式的说法,错误的是( C )。 A. r代表以只读方式打开文件 B. w代表以只写方式打开文件 C. a代表以二进制形式打开文件 D. 模式中使用时,文件可读可写 2. (单选题)下列选项中,以追加…

webpack的使用

一、什么是webpack? webpack是一个前端构建工具,目前比较主流的构建工具,自定义的模块比较多。 二、应用场景 vue、react、angular 都可以通过webpack构建全部可供访问的页面数量不超过500个 三、安装 通过npm方式在项目根目录下执行命令…

htmlCSS-----CSS选择器(下)

目录 前言: 2.高级选择器 (1)子代选择器 (2)伪类选择器 (3)后代选择器 (4)兄弟选择器 相邻兄弟选择器 通用兄弟选择器 (5)并集选择器 &am…

【JavaSE】Java基础语法(二十六):Collection集合

文章目录 1. 数组和集合的区别2. 集合类体系结构3. Collection 集合概述和使用【应用】4. Collection集合的遍历【应用】5. 增强for循环【应用】 1. 数组和集合的区别 相同点 都是容器,可以存储多个数据不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型…

基于Yarn搭建Flink

基于Yarn搭建Flink 1. 概述 1.1 Yarn 简介 Apache Hadoop YARN是一个资源提供程序,受到许多数据处理框架的欢迎。Flink服务被提交给 YARN 的 ResourceManager,后者再由 YARN NodeManager 管理的机器上生成容器。Flink 将其 JobManager 和 TaskManager…

python爬虫笔记

Python爬虫笔记 一. Urllib 1. 基础请求 指定url请求返回值解码返回结果的一些操作 import urllib.request as req # 定义一个url url http://www.baidu.com# 发送请求获得相应 res req.urlopen(url)# read返回字节形式的二进制数据,需要用指定编码来解码 content res.r…

vue的虚拟DOM

vue的虚拟DOM 什么是虚拟DOM 虚拟DOM提供了一个与平台无关的抽象层,将应用程序的界面表示抽象为一个虚拟的DOM树。这意味着开发人员可以使用相同的代码和逻辑来描述应用程序的用户界面,而不需要关心具体的平台实现细节。虚拟DOM允许开发人员使用一种统…

Linux命令

准备工作 安装centos7 在镜像网下载DVD.iso或者DVD.torrent(bit种子)。在VMware中配置相应的信息,并引入iso文件,以便后续安装。local中:选择语言和时区上海software中:选择安装软件的内容,可…

基于多动作深度强化学习的柔性车间调度研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

通过location实现几秒后页面跳转

location对象属性 location对象属性 返回值location.href获取或者设置整个URLlocation.host返回主机(域名)www.baidu.comlocation.port 返回端口号,如果未写返回空字符串location.pathname返回路径location.search返回参数location.hash返回…

Apache网页与安全优化

一、Apache网页优化 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代。为了适应企业需求,就需要考虑如何提升Apache…

遗传算法(Genetic Algorithm)

本文为阅读《遗传算法原理及应用》的笔记和心得 ISBN:7-118-02062-1 遗传算法简介 遗传算法是模拟生物在自然环境中的遗传和进化过程中而形成的一种自适应全局优化概率搜索算法 总的来说,求最优解解或近似最优解的方法主要有三种:枚举法、启…

数据库系统的结构

数据库模式基本概念 1.型与值 型:对某一类数据的结构和属性的说明。值:型的具体赋值。 2.模式和实例 模式: 数据库中全体数据的逻辑结构和特征的描述。简单来说就是数据的定义和描述。模式是元数据,数据是变化的,模…
最新文章