https://blog.csdn.net/qq_16234613/article/details/79827006

scatter_(input, dim, index, src)将src中数据根据index中的索引按照dim的方向填进input中.

 >>> x = torch.rand(, )
>>> x 0.4319 0.6500 0.4080 0.8760 0.2355
0.2609 0.4711 0.8486 0.8573 0.1029
[torch.FloatTensor of size 2x5]

1) dim = 0,分别对每列填充:

>>> torch.zeros(, ).scatter_(, torch.LongTensor([[, , , , ], [, , , , ]]), x)

 0.4319  0.4711  0.8486  0.8760  0.2355
0.0000 0.6500 0.0000 0.8573 0.0000
0.2609 0.0000 0.4080 0.0000 0.1029
[torch.FloatTensor of size 3x5]

实现原理:

对于LoneTensor内的矩阵,暂且称为 tmp = [[0, 1, 2, 0, 0], [2, 0, 0, 1, 2]];将最终的 3*5的矩阵,暂且称为result。result初始为全0,需要经过scatter_处理。

举例:

对于tmp[][] =   -> 取x中x[0][0] = 0.4319,将其插入到result第列的第个位置,result[0][0] = 0.4319;

对于tmp[0][] =  -> 取x中x[0][1] = 0.6500,将其插入到result第列的第个位置,result[1][1] = 0.6500;

对于tmp[0][] =   -> 取x中x[0][1] = 0.4080,将其插入到result第列的第2个位置,result[2][2] = 0.4080;

......

对于tmp[1][] =   -> 取x中x[1][0] = 0.2609,将其插入到result第列的第个位置,result[2][0] = 0.2609;

对于tmp[1][] =   -> 取x中x[1][1] = 0.4711,将其插入到result第列的第个位置,result[0][1] = 0.4711。

......

2) dim = 1,分别对每行填充

 >>> z = torch.zeros(, ).scatter_(, torch.LongTensor([[], []]), 1.23)
>>> z 0.0000 0.0000 1.2300 0.0000
0.0000 0.0000 0.0000 1.2300
[torch.FloatTensor of size 2x4]

tmp = [[2], [3]]

tmp[0][0] = 2 -> 取x中x[0][0] = 0.4319,将其插入到result第0行的第2个位置,result[0][2] = 0.4319;

......

[Pytorch笔记] scatter_的更多相关文章

  1. [Pytorch] pytorch笔记 <三>

    pytorch笔记 optimizer.zero_grad() 将梯度变为0,用于每个batch最开始,因为梯度在不同batch之间不是累加的,所以必须在每个batch开始的时候初始化累计梯度,重置为 ...

  2. [Pytorch] pytorch笔记 <二>

    pytorch笔记2 用到的关于plt的总结 plt.scatter scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, ...

  3. [Pytorch] pytorch笔记 <一>

    pytorch笔记 - torchvision.utils.make_grid torchvision.utils.make_grid torchvision.utils.make_grid(tens ...

  4. PyTorch笔记之 scatter() 函数

    scatter() 和 scatter_() 的作用是一样的,只不过 scatter() 不会直接修改原来的 Tensor,而 scatter_() 会 PyTorch 中,一般函数加下划线代表直接在 ...

  5. 【转载】 pytorch笔记:06)requires_grad和volatile

    原文地址: https://blog.csdn.net/jiangpeng59/article/details/80667335 作者:PJ-Javis 来源:CSDN --------------- ...

  6. pytorch笔记:09)Attention机制

    刚从图像处理的hole中攀爬出来,刚走一步竟掉到了另一个hole(fire in the hole*▽*) 1.RNN中的attentionpytorch官方教程:https://pytorch.or ...

  7. [pytorch笔记] 调整网络学习率

    1. 为网络的不同部分指定不同的学习率 class LeNet(t.nn.Module): def __init__(self): super(LeNet, self).__init__() self ...

  8. [pytorch笔记] torch.nn vs torch.nn.functional; model.eval() vs torch.no_grad(); nn.Sequential() vs nn.moduleList

    1. torch.nn与torch.nn.functional之间的区别和联系 https://blog.csdn.net/GZHermit/article/details/78730856 nn和n ...

  9. Pytorch笔记 (3) 科学计算1

    一.张量 标量 可以看作是  零维张量 向量 可以看作是  一维张量 矩阵 可以看作是  二维张量 继续扩展数据的维度,可以得到更高维度的张量 ————>  张量又称 多维数组 给定一个张量数据 ...

随机推荐

  1. 非旋(fhq)Treap小记

    前置知识:二叉搜索树 以下摘自 ↑: 二叉搜索树每次操作访问O(深度)个节点. 在刻意构造的数据中,树的形态会被卡成一条链,于是复杂度爆炸 它的复杂度与直接暴力删除类似. 但二叉搜索树扩展性强.更复杂 ...

  2. 自动生成ID

    public class IdUtil { /** * * @return 返回时间id,类似于20191217195622 */ public static String timeId(){ Dat ...

  3. 如何实现一个简化版的 jQuery

    对于操作 DOM 来说,jQuery 是非常方便的一个库,虽然如今随着 React, Vue 之类框架的流行,jQuery 用得越来越少了,但是其中很多思想还是非常值得我们学习的,这篇文章将介绍如何从 ...

  4. Codeforces 1216F. Wi-Fi

    传送门 这个题一眼 $dp$ 就是设 $f[i][0/1]$ 表示我们只考虑前 $i$ 个位置,并且保证覆盖了前 $i$ 个位置,当前位置 选/不选 的最小代价 考虑转移,设题目给出的字符串为 $s$ ...

  5. U盘重装系统

    一.准备工作 (1)8G以上空间的U盘一个: (2)将U盘制作好启动工具: 1.下载启动工具制作软件(常用的有:大白菜.电脑店.老毛桃.快启动等等一系列软件,直接百度这些软件的名称,或者百度U盘启动制 ...

  6. 分布式的几件小事(三)dubbo的通信协议与序列化

    1.dubbo的通信协议 ①dubbo协议 Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况. 特点 : dubbo缺 ...

  7. 多线程编程-- part 8 CyclicBarrier

    CyclicBarrier简介 cuclicBarrier允许一组线程互相等待,直到到达某个公共屏障点(common barrier point).因为该barrier在释放等待线程后可以重用,所以称 ...

  8. subversion(SVN)服务配置及使用方法

      1.安装 yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql -y 2.查看版本 svnserve --vers ...

  9. centos7.2升级openssh7.9p1

    Centos7.2版本yum升级openssh版本最高到7.4,想要升级到更高的版本需要重新编译 一.查看当前openssh版本: [root@localhost ~]# ssh -VOpenSSH_ ...

  10. springboot集成dubbo服务报错No provider available for the service

    检查了下发现是因为没有正确编写暴露服务的注解,需要注意下: @Service(interfaceClass = StudentService.) @Component public class Stu ...