目录
- 问题场景描述
- 问题的思考
- gather的说明
- 问题的解决
问题场景描述
我在复现Faster-RCNN模型的过程中遇到这样一个问题:
有一个张量,它的形状是 (128, 21, 4)
roi_loc.shape = (128, 21, 4)
与之对应的还有一个label数据
gt_label.shape = (128)
我现在的需求是将label当作第一个张量在dim=1上的索引,将其中的数据拿出来。
具体来说就是,现在有128个样本数据,每个样本中有21个长度为4的向量。label也是128个,每个值代表取出21个向量中的哪一个。
问题的思考
我尝试了很多办法,包括布尔索引,index_select方法等,最后发现都不适用(也有可能我没用好)。最后利用gather API解决了这个问题。
这个API的说明我看了很多遍都没看懂,我相信绝大部分读者也是因为看不懂这个说明才来这儿的。
下面我给出自己的一些理解:
gather的说明
gather所需要的第一个参数是待索引的数据,在我们的问题中 roi_loc就是这个input。第二个参数dim,是你的索引数据要作用在哪个轴上,正如前面所言,我们想索引第二个轴(dim=1).
最难理解的是index,index就是我们想要用来索引的张量,对应的是label。可是label不能直接拿来用,得先做一定的变换,这也就是gather的难点。
我们先从简单的情况来看
input和gather必须在维度上相同,假设数据还是3 * 3,index也是1 * 3的(注意这里是二维的)
此时row至多取值0,col至多取值为2
如果我要对dim=0索引
那么data[0][0] = data[index[0][0]] [0] = data[1][0] = 2
data[0][1] = data[index[0][1]] [1] = data[0][1] = 5
data[0][2] = data[index[0][2]][2] = data[2][2] = 9
上面的过程可以描述为,第一列的元素我想选第二行的,第二列的元素我想选第一行的,第三列的元素我想选第三行的。
可以发现因为index是1 * 3的,所以最后的输出也是31* 3,即输出张量的shape取决于index的shape
以上过程我相信读者好好体悟应该可以理解。
问题的解决
回到我们的问题
roi_loc.shape = (128, 21, 4),gt_label.shape = (128)
我们想索引dim=1,最后的结果应该是(128, 4)
由上面的说明可以知道,input和index的dimension首先得相同
idx = gt_roi_labels.unsqueeze(-1).unsqueeze(-1)
idx.shape = (128, 1, 1)
又因为我们想要输出的结果得是(128, 4),所以得让idx在最后一个轴上重复4次
idx = idx.repeat_interleave(-1, 4)
idx.shape = (128, 1, 4)
现在就可以利用gather在dim=1上索引了
result = roi_loc.gather(1, idx)
result.shape = (128, 1, 4)
最后将长度为1的轴压缩(本身这个轴的出现是为了满足input和index维度一样的要求)
result = result.squeeze(1)
result.shape(128, 4)
以上就是Pytorch深度学习gather一些使用问题解决方案的详细内容,更多关于Pytorch学习gather使用问题的资料请关注其它相关文章!
相关推荐:
SEO定价策略:如何根据企业需求定制最佳价格方案,教育培训抖音营销推广
自动生成文章的AI软件,助力内容创作的未来
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
用AI征文工具,轻松创作出精彩文章!
“新关键词”开启智慧营销新篇章,助力品牌突围,自己如何做网站seo
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
AI工具汇总网站,让科技为您的工作加速
优化软件:让电脑性能焕然一新,提升效率的秘密武器,大理网站推广招聘信息最新
SEO出来,打破流量瓶颈,助力企业增长的关键策略,南昌营销推广代理商电话
SEO到底怎么做?揭秘从零到精通的完整SEO优化攻略,鸟瞰ai
为什么选择收录网站是企业在线营销的必备策略,全网营销与推广
为什么seo推广那么多,seo推广难吗 ,东莞ai听译平台
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
什么是seo手段,seo的具体手段 ,中国ai 企业
SEO手段:提升网站流量的制胜法宝,idc网站怎么推广
怎么用AI生成文章免费版,高效创作从此开始!
seo规范是什么意思,seo包括哪些内容 ,AI智能破解
ChatGPT回答是空白的背后,究竟隐藏着什么秘密?,如何用ai写作来赚钱
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
OpenAIGPT:开启智能时代的语言革命,ai辣妹动漫
SEO地址优化的秘诀:提升网站排名与流量的关键,临沂如何优化网站关键词
AI一键生成原创文章,让创作更高效更轻松!
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
seo竞价做的什么工作,seo 竞价 ,office智能ai
在线AI文章生成:内容创作新革命
“爱站”:开启网站优化与流量增长的新纪元,seo入门ppt
人工润色:让文字更具魅力的秘密武器,快排seo软件哪个最好
为什么行业都要做seo,为什么要做seo ,ai明信片
ChatGPT服务异常:为何影响到你的工作和生活?如何有效解决?,ai怎么保持圆角不变
360优化关键词-提升网站流量与排名的秘密武器,美拍ai
ChatGPT3.5需要登录使用吗?AI使用的真相!,电脑版写作ai推荐怎么关闭
seo辅助词选什么,seo助手 ,各车企ai
AI人工智能文章生成平台,释放创作无限可能
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
zblog站群,zblog怎么样 ,欧卡2ai汽车如何使用
OpenAI新产品与现有技术的完美结合:赋能未来的智能变革,培训 ai
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
优化收费,助力企业提升效益,实现共赢,宜州餐饮网站建设
在线AI生成文章:智能写作的未来趋势
SEO分类中内部优化的有:让你的网站脱颖而出!,by ai
文章AI生成:让创作变得更简单、更高效!
seo配置是什么,seo设置是什么 ,ai图标制作教程
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
ChatGPT无法加载?检查您的网络设置并尝试重启Chat,ai写作怎么写作文的
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
SEO师:如何在数字时代为企业赢得流量与销量,十堰网站关键词优化教程
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子