当前位置: 首页 > news >正文

万网的怎么做网站地图兼职网站推广如何做

万网的怎么做网站地图,兼职网站推广如何做,网站前台设计工具,我的世界的头怎么做视频网站前言 torch.gather在目前基于 transformer or query based 的目标检测中,在最后获取目标结果时,经常用到。 这里记录下用法,防止之后又忘了。 介绍 torch.gather 官方文档对torch.gather()的定义非常简洁 定义:从原tensor中获…

前言

torch.gather在目前基于 transformer or query based 的目标检测中,在最后获取目标结果时,经常用到。

这里记录下用法,防止之后又忘了。

介绍

torch.gather

在这里插入图片描述
官方文档对torch.gather()的定义非常简洁

定义:从原tensor中获取指定dim和指定index的数据
看到这个核心定义,我们很容易想到gather()的基本想法其实就类似从完整数据中按索引取值般简单,比如下面从列表中按索引取值

lst = [1, 2, 3, 4, 5]
value = lst[2]  # value = 3
value = lst[2:4]  # value = [3, 4]

上面的取值例子是取单个值或具有逻辑顺序序列的例子,而对于深度学习常用的批量tensor数据来说,我们的需求可能是选取其中多个且乱序的值,此时gather()就是一个很好的tool,它可以帮助我们从批量tensor中取出指定乱序索引下的数据,因此其用途如下

用途:方便从批量tensor中获取指定索引下的数据,该索引是高度自定义化的,可乱序的

示例

我们找个3x3的二维矩阵做个实验

import torchtensor_0 = torch.arange(3, 12).view(3, 3)
print(tensor_0)

输出结果

tensor([[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11]])

2.1 输入行向量index,并替换行索引(dim=0)

index = torch.tensor([[2, 1, 0]])
tensor_1 = tensor_0.gather(0, index)
print(tensor_1)

输出结果

tensor([[9, 7, 5]])

过程如图所示
在这里插入图片描述

2.2 输入行向量index,并替换列索引(dim=1)

index = torch.tensor([[2, 1, 0]])
tensor_1 = tensor_0.gather(1, index)
print(tensor_1)

输出结果

tensor([[5, 4, 3]])

过程如图所示
在这里插入图片描述

2.3 输入列向量index,并替换列索引(dim=1)

index = torch.tensor([[2, 1, 0]]).t()
tensor_1 = tensor_0.gather(1, index)
print(tensor_1)

输出结果

tensor([[5],[7],[9]])

过程如图所示
在这里插入图片描述

scatter

基本是 gather 的反过程,是将数据添加进去,
doc:https://pytorch.org/docs/stable/generated/torch.Tensor.scatter_.html#torch.Tensor.scatter_

self[index[i][j][k]][j][k] = src[i][j][k]  # if dim == 0
self[i][index[i][j][k]][k] = src[i][j][k]  # if dim == 1
self[i][j][index[i][j][k]] = src[i][j][k]  # if dim == 2

example:

>>> src = torch.arange(1, 11).reshape((2, 5))
>>> src
tensor([[ 1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10]])
>>> index = torch.tensor([[0, 1, 2, 0]])
>>> torch.zeros(3, 5, dtype=src.dtype).scatter_(0, index, src)
tensor([[1, 0, 0, 4, 0],[0, 2, 0, 0, 0],[0, 0, 3, 0, 0]])
>>> index = torch.tensor([[0, 1, 2], [0, 1, 4]])
>>> torch.zeros(3, 5, dtype=src.dtype).scatter_(1, index, src)
tensor([[1, 2, 3, 0, 0],[6, 7, 0, 0, 8],[0, 0, 0, 0, 0]])>>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]),
...            1.23, reduce='multiply')
tensor([[2.0000, 2.0000, 2.4600, 2.0000],[2.0000, 2.0000, 2.0000, 2.4600]])
>>> torch.full((2, 4), 2.).scatter_(1, torch.tensor([[2], [3]]),
...            1.23, reduce='add')
tensor([[2.0000, 2.0000, 3.2300, 2.0000],[2.0000, 2.0000, 2.0000, 3.2300]])

具体过程见 gather 的就好~一摸一样,一个获取,一个填入。

http://www.yayakq.cn/news/273472/

相关文章:

  • 陵水网站建设费用车公庙网站建设
  • 安徽省住房和城乡建设厅官方网站自媒体做什么领域比较好
  • 网站建设流程有几个阶段网站建设招标模板
  • 企业自助建站软件如何做表白网站的教程
  • 网站后台添加查看爬虫的痕迹动漫制作专业需要绘画基础吗
  • 危险网站怎么做二维码小程序哪家好
  • 我局在网站建设方面怎么修改网站源文件
  • 网站目录优化对php网站开发技术课程总结
  • 做网站租用数据库网站开发php是什么意思
  • 国际购物网站排名WordPress屏蔽cn国家访问
  • 黑客是如何攻击网站的手机社交网站建设
  • 网站建立后被别人点击要付钱吗深圳市建设注册执业资格中心网站
  • 什么网站可以做高仿怎么做俄语网站
  • 个人网站 域名选择seo推广外包企业
  • 网站建设公司哈工商局注册公司网站
  • wordpress 科技主题seo外链自动群发工具
  • 自己做的网站能备案吗网站建设项目的结论
  • cms网站开发需要学什么部队门户网站建设方案
  • 福州+网站开发怎么用qq相册做网站
  • 旅游网站建设技术有哪些方面wordpress 积分 兑换
  • 浙江省网站备案wordpress 4.5下载
  • 打电话说帮忙做网站网站建设费计什么科目
  • 建站主机网址缩短在线生成器
  • 规模大的企业建站哪个公司的室内设计公司
  • 为什么用花生壳做的网站老刷新wordpress 获取最新文章
  • 网页站点江门做网站软件
  • 专业做网站关键词排名下掉wordpress 多媒体管理系统
  • 二级目录网站怎么做比百度好用的搜索软件
  • 优秀的网站开发海口建网站公司
  • 普通人怎么样做网站wordpress 分类文章数