pytorch: 如何优雅的将 int list 转成 one-hot形式

虽然 pytorch 已经升级到 0.2.0 了,但是,貌似依旧没有简单的 api 来帮助我们快速将 int list 转成 one-hot。那么,如何优雅的实现 one-hot 代码呢?

def one_hot(ids, out_tensor):
    """
    ids: (list, ndarray) shape:[batch_size]
    out_tensor:FloatTensor shape:[batch_size, depth]
    """
    if not isinstance(ids, (list, np.ndarray)):
        raise ValueError("ids must be 1-D list or array")
    ids = torch.LongTensor(ids).view(-1,1)
    out_tensor.zero_()
    out_tensor.scatter_(dim=1, index=ids, src=1.)
    # out_tensor.scatter_(1, ids, 1.0)

scatter_ 是什么鬼?

从 value 中拿值,然后根据 dim 和 index 给自己的相应位置填上值

Tensor.scatter_(dim, index, src)
# index: LongTensor
# out[index[i, j], j] = value[i, j] dim=0
# out[i,index[i, j]] = value[i, j]] dim=1 
# index 的 shape 可以不和 out 的 shape 一致
# value 也可以是一个 float 值, 也可以是一个 FloatTensor 
# 如果 value 是 FloatTensor 的话,那么shape 需要和 index 保持一致

参考资料

https://discuss.pytorch.org/t/convert-int-into-one-hot-format/507/3

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏尾尾部落

macOS + Sublime Text + Latex 环境配置 macOS + Sublime Text + Latex 环境配置

所以很多高校的老师都要求学生用Latex来写论文。那么问题来了,latex要在哪里写?有像word一样的编辑器吗?答案是肯定的。市面上的latex编辑器不下20...

752
来自专栏Zchannel

Yu Writer:macos系统不可多得的Markdown写作工具

822
来自专栏用户2442861的专栏

cmake教程二,变量以及flow control

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

712
来自专栏重庆的技术分享区

python35下的NLTK工具的安装和配置

1072
来自专栏张善友的专栏

腾讯云 安装mono

一、yum -y update 运行出现以下错误: http://centos.tencentyun.com/contrib/x86_64/repodata/f...

2126
来自专栏韦弦的微信小程序

使用Vapor 3 创建项目build/xocde 报错

以前跟着网上的教程玩过Vapor2,但基本都忘光了,今天下班了有照着官方文档来一波。。。但是出错了。。。

723
来自专栏码生

react-navigation 去除导航阴影

iOS 是通过设置 borderBottomWidth borderBottomColor 来实现的 可以看出iOS 中将 borderBottomWidth...

854
来自专栏每日一篇技术文章

VR+全景播放器+头控讲解-07

1063
来自专栏iOSDevLog

SketchTool目录

3297
来自专栏杨建荣的学习笔记

使用shell脚本快速得到主备关系(r9笔记第93天)

对于备库的使用,尤其是一主多备的环境,一直以来有一点感觉不大给力,那就是主备库的关系,总是感觉会少一点什么。 尤其是在做月度404审计的时候,总是要反复确认备库...

3416

扫码关注云+社区