首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytorch: 如何优雅的将 int list 转成 one-hot形式

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

作者头像
ke1th
发布于 2018-01-02 03:19:53
发布于 2018-01-02 03:19:53
2.5K00
代码可运行
举报
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 给自己的相应位置填上值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nat. Commun.| 基于多模态深度学习方法的单细胞多组学数据聚类
本文介绍由新泽西理工学院计算机科学系的韦智通讯发表在 Nature Communications 的研究成果:单细胞多模态测序技术的发展是为了在同一细胞中同时分析不同模态的数据,它为在单细胞水平上联合分析多模态数据从而识别不同细胞类型提供了一个独特的机会。正确的聚类结果对于下游复杂生物功能研究至关重要。然而,结合不同数据源对单细胞多模态数据进行聚类分析仍然是一个统计学和计算上的挑战。为此,作者提出了一种新的多模态深度学习方法scMDC,用于单细胞多组学数据聚类分析。scMDC是一种端到端的深度模型,它可以明确地表征不同的数据源,并联合学习深度嵌入的潜在特征以进行聚类分析。大量的模拟数据和真实数据实验表明,scMDC在不同的单细胞多模态数据集上均优于现有的单细胞单模态和多模态聚类方法。此外,运行时间的线性可扩展性使scMDC成为分析大型多模态数据集的有效方法。
DrugAI
2023/02/17
1.5K0
Nat. Commun.| 基于多模态深度学习方法的单细胞多组学数据聚类
[深度应用]·Kaggle人类蛋白质图谱图像分类第一名解决方案
祝贺所有获奖者,并感谢主持人和kaggle举办了这样一场有趣的比赛。 我很抱歉迟到,我最近几天努力准备它,试图验证我的解决方案,并确保它的可重复性,稳定性,高效性和解释性。
小宋是呢
2019/06/27
1.1K0
[深度应用]·Kaggle人类蛋白质图谱图像分类第一名解决方案
【机器学习实战】从零开始深度学习(通过GPU服务器进行深度学习)
0.1. 利用GPU加速深度学习   疫情期间没有办法用实验室的电脑来跑模型,用领取的腾讯云实例来弄刚刚好。发现如果没有GPU来跑的话真的是太慢了,非常推荐利用GPU加速深度学习的训练速度。     如果采用GPU的话,训练函数train_model(*)中数据的输入要改变一下,也就是需要将数据放在GPU上
汉堡888
2022/05/03
8.9K0
【机器学习实战】从零开始深度学习(通过GPU服务器进行深度学习)
[源码解析] 深度学习流水线并行 PipeDream(4)--- 运行时引擎
在前文中,我们介绍了PipeDream的总体架构,Profile阶段,计算分区阶段和模型转换阶段,本文我们介绍运行时执行引擎,这是一个统一基础设施层。
罗西的思考
2021/09/14
7960
[源码解析] 深度学习流水线并行 PipeDream(4)--- 运行时引擎
深度学习算法优化系列八 | VGG,ResNet,DenseNe模型剪枝代码实战
具体原理已经讲过了,见上回的推文。深度学习算法优化系列七 | ICCV 2017的一篇模型剪枝论文,也是2019年众多开源剪枝项目的理论基础 。这篇文章是从源码实战的角度来解释模型剪枝,源码来自:https://github.com/Eric-mingjie/network-slimming 。我这里主要是结合源码来分析每个模型的具体剪枝过程,希望能给你剪枝自己的模型一些启发。
BBuf
2020/02/12
2.5K0
深度学习算法优化系列八 | VGG,ResNet,DenseNe模型剪枝代码实战
迁移学习
迁移学习指的是在相同的模型下,我们在某一份数据上学习的知识可以应用到另外一份数据上去。也就是在某一个场景下学习的知识应用到另外一个场景,这两个场景间不同但是相关。
算法之名
2022/09/28
7910
迁移学习
torch.nn、(二)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
狼啸风云
2019/09/25
1.5K0
PyTorch 2.2 中文官方教程(十八)
在大规模训练 AI 模型是一项具有挑战性的任务,需要大量的计算能力和资源。同时,处理这些非常大模型的训练也伴随着相当大的工程复杂性。PyTorch FSDP,在 PyTorch 1.11 中发布,使这变得更容易。
ApacheCN_飞龙
2024/02/05
4830
PyTorch 2.2 中文官方教程(十八)
PyTorch 2.2 中文官方教程(五)
如果您正在阅读本文,希望您能欣赏一些机器学习模型的有效性。研究不断推动机器学习模型变得更快、更准确和更高效。然而,设计和训练模型时经常被忽视的一个方面是安全性和稳健性,尤其是面对希望欺骗模型的对手时。
ApacheCN_飞龙
2024/02/05
8490
PyTorch 2.2 中文官方教程(五)
使用 TensorFlow 构建机器学习项目:6~10
卷积神经网络是当前使用的许多最高级模型的一部分。 它们被用于许多领域,但是主要的应用领域是图像分类和特征检测领域。
ApacheCN_飞龙
2023/04/23
2.3K0
TensorFlow 2 和 Keras 高级深度学习:11~13
目标检测是计算机视觉最重要的应用之一。 对象检测是同时定位和识别图像中存在的对象的任务。 为了使自动驾驶汽车安全地在街道上行驶,该算法必须检测到行人,道路,车辆,交通信号灯,标志和意外障碍物的存在。 在安全方面,入侵者的存在可以用来触发警报或通知适当的当局。
ApacheCN_飞龙
2023/04/26
1.6K0
TensorFlow 深度学习第二版:1~5
人工神经网络利用了 DL 的概念 。它们是人类神经系统的抽象表示,其中包含一组神经元,这些神经元通过称为轴突的连接相互通信。
ApacheCN_飞龙
2023/04/23
1.8K0
TensorFlow 深度学习第二版:1~5
Python 深度学习架构实用指南:第一、二部分
在本节中,您将概述使用 Python 进行的深度学习,还将了解深度前馈网络,玻尔兹曼机和自编码器的架构。 我们还将练习基于 DFN 的示例以及玻尔兹曼机和自编码器的应用,以及基于带 Python 的 DL 框架/库的具体示例及其基准。
ApacheCN_飞龙
2023/04/24
8800
TensorFlow 1.x 深度学习秘籍:1~5
曾经尝试仅使用 NumPy 用 Python 编写用于神经网络的代码的任何人都知道它很繁琐。 为一个简单的单层前馈网络编写代码需要 40 条线,这增加了编写代码和执行时间方面的难度。
ApacheCN_飞龙
2023/04/23
3.2K0
TensorFlow 1.x 深度学习秘籍:1~5
PyTorch 深度学习实用指南:1~5
目前,有数十种深度学习框架可以解决 GPU 上的任何种类的深度学习问题,那么为什么我们还需要一个呢? 本书是对这一百万美元问题的解答。 PyTorch 进入了深度学习家族,并有望成为 GPU 上的 NumPy。 自加入以来,社区一直在努力兑现这一承诺。 如官方文档所述,PyTorch 是针对使用 GPU 和 CPU 进行深度学习的优化张量库。 尽管所有著名的框架都提供相同的功能,但 PyTorch 相对于几乎所有框架都具有某些优势。
ApacheCN_飞龙
2023/04/27
2.2K0
面向计算机视觉的深度学习:6~10
在本章中,我们将学习相似性学习并学习相似性学习中使用的各种损失函数。 当每个类别的数据集都很小时,相似性学习对我们很有用。 我们将了解可用于人脸分析的不同数据集,并建立用于人脸识别,界标检测的模型。 我们将在本章介绍以下主题:
ApacheCN_飞龙
2023/04/23
9370
TensorFlow 1.x 深度学习秘籍:6~10
在本章中,我们将讨论循环神经网络(RNN)如何在保持顺序顺序重要的领域中用于深度学习。 我们的注意力将主要集中在文本分析和自然语言处理(NLP)上,但我们还将看到用于预测比特币价值的序列示例。
ApacheCN_飞龙
2023/04/23
1K0
TensorFlow 1.x 深度学习秘籍:6~10
如何在深度学习竞赛中获得前五名
本文中的所有代码都在GitHub Repository上。数据集已经在适当的文件夹中,并且代码可以运行(在安装PyTorch之后)。
代码医生工作室
2020/04/20
9880
TensorFlow 2 和 Keras 高级深度学习:6~10
正如我们已经探索的那样,GAN 可以通过学习数据分布来产生有意义的输出。 但是,无法控制所生成输出的属性。 GAN 的一些变体,例如条件 GAN(CGAN)和辅助分类器 GAN(ACGAN),如前两章所讨论的,都可以训练生成器,该生成器可以合成特定的输出。 例如,CGAN 和 ACGAN 都可以诱导生成器生成特定的 MNIST 数字。 这可以通过同时使用 100 维噪声代码和相应的一号热标签作为输入来实现。 但是,除了单热标签外,我们没有其他方法可以控制生成的输出的属性。
ApacheCN_飞龙
2023/04/26
2.3K0
TensorFlow 1.x 深度学习秘籍:11~14
在本章中,我们将讨论如何将生成对抗网络(GAN)用于深度学习领域,其中关键方法是训练图像生成器来挑战鉴别器,并同时训练鉴别器来改进生成器。 可以将相同的方法应用于不同于图像领域。 另外,我们将讨论变分自编码器。
ApacheCN_飞龙
2023/04/23
1.2K0
TensorFlow 1.x 深度学习秘籍:11~14
推荐阅读
相关推荐
Nat. Commun.| 基于多模态深度学习方法的单细胞多组学数据聚类
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验