推荐或是分类结果的scores如何快速倒排?

hi各位好,这是我节前倒数第2天搬砖了,明晚下班回家种地,村里没网,有事托梦。此文粉丝可见。

For Video Recommendation in Deep learning QQ Group 277356808

视频推荐深度学习加这个群

For Visual in deep learning QQ Group 629530787

视觉深度学习加这个,别加错

I'm here waiting for you

别加那么多,没必要,另外,不接受这个网页的私聊/私信!!!

问题来源于SR-GNN及GCN/LightGCN推理阶段,因为都有倒排,所以发现这么费时间,如下是gcn的结果,argsort直接占据绝大部分时间,令人震惊。

scores是对logits进行softmax后得到的数据,具有概率统计意义。其位置对应原始训练数据的item的index,很重要。

Training @ 2020-09-27 15:55:16.803590s
Epoch 1 [233.7s]: train==[0.08872=0.08755 + 0.00117]
Epoch 2 [188.3s]: train==[0.03362=0.03155 + 0.00207]
total time 39.851719, index time 0.000062, infer time 5.787474, argsort time 34.064183
total time 34.311058, index time 0.000055, infer time 0.189518, argsort time 34.121484
total time 34.390062, index time 0.000154, infer time 0.200301, argsort time 34.189607
total time 34.185163, index time 0.000160, infer time 0.199994, argsort time 33.985008
total time 34.261133, index time 0.000160, infer time 0.198627, argsort time 34.062345
total time 34.284593, index time 0.000145, infer time 0.198629, argsort time 34.085819
total time 34.628721, index time 0.000156, infer time 0.408642, argsort time 34.219923
total time 34.145094, index time 0.000148, infer time 0.200222, argsort time 33.944725
total time 34.221904, index time 0.000155, infer time 0.200848, argsort time 34.020901
total time 34.250089, index time 0.000149, infer time 0.199473, argsort time 34.050466
total time 34.341677, index time 0.000169, infer time 0.199252, argsort time 34.142257
total time 34.287936, index time 0.000166, infer time 0.203205, argsort time 34.084565
total time 34.152117, index time 0.000148, infer time 0.200518, argsort time 33.951451

 batch_size=10240,增加或减少都不行,最后的倒排都占据绝大部分时间,那么问题来了,有没有快速的倒排方法?

啥?你又说算法的基本东西,N种排序方法,快排,插排,堆排,冒牌。。。这是我之前背过的C版本,没个卵用???

我试试快排,是否速度要快于np.argsort,拭目以待吧

随机生成一个(10240,38853)shape的数组,对每行进行快排(倒排也可),如下:有在1s内结束的可指导下我

顺便把进程和线程也考虑在内,这样可以快点吧

1-快排仅仅是对数组排序,而并没有记录其原始顺序,想要记录原始顺序,寡人想到了一个方法,那就是字典(如果是有相同的数据的话,也可采用有序字典【胡诌的】,反正影响不大吧,应该不会有完全相同的数吧,都是一样怎么可能呢?请大佬证明(或证伪)下);

ktest=np.random.randn(12)
print(ktest)
qsort(ktest,0,11)
print(ktest)
>>> inds=[kdict[k] for k in ktest]
>>> inds
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

这是字典的for方法,有没有快速的方法呢?请大佬指点下。

电脑卡死了,宣告失败,服务器过了7min也没反应,失败。电脑每行进行快排的时间需要0.4s,这也不快啊。咋整啊

同事大佬说了个库,我简单试了下不太好实现自己写的函数用cuda加速,于是提issue吧

咋整啊??线程根本也是没屁用哦。

2-其他排序也是不行啊,根本没有头绪,咋整啊,回家种地也会想着这事了。

有没有大佬有其他方法啊?

3-后面等那个库开发好了再补充吧

 

 

 

 

关注博主即可阅读全文
推荐或是分类结果的scores如何快速倒排?

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

推荐或是分类结果的scores如何快速倒排?

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 推荐或是分类结果的scores如何快速倒排?
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏