one_hot方法

  • one_hot编码定义
  • Pytorch中one_hot转换
                         QQ:3020889729                                                                                 小蔡

one_hot编码定义

在一个给定的向量中,按照设定的最值–可以是向量中包含的最大值(作为最高分类数),有也可以是自定义的最大值,设计one_hot编码的长度:最大值+1【详见举的例子吧】。

然后按照最大值创建一个1*(最大值+1)的维度大小的全零零向量:[0, 0, 0, …] => 共最大值+1对应的个数

接着按照向量中的值,从第0位开始索引,将向量中值对应的位置设置为1,其他保持为0.

eg:
假设设定one_hot长度为4(最大值) –
且当前向量中值为1对应的one_hot编码:
[0, 1, 0, 0]
当前向量中值为2对应的one_hot编码:
[0, 0, 1, 0]

eg:
假设设定one_hot长度为6(等价最大值+1) –
且当前向量中值为4对应的one_hot编码:
[0, 0, 0, 0, 1, 0]
当前向量中值为2对应的one_hot编码:
[0, 0, 1, 0, 0, 0]

eg:
targets = [4, 1, 0, 3] => max_value=4=>one_hot的长度为(4+1)
假设设定one_hot长度为5(最大值) –
且当前向量中值为4对应的one_hot编码:
[0, 0, 0, 0, 1]
当前向量中值为1对应的one_hot编码:
[0, 1, 0, 0, 0]

Pytorch中one_hot转换

import torchtargets = torch.tensor([5, 3, 2, 1])targets_to_one_hot = torch.nn.functional.one_hot(targets)   # 默认按照targets其中的最大值+1作为one_hot编码的长度
# result:
# tensor(
# [0, 0, 0, 0, 0, 1],
# [0, 0, 0, 1, 0, 0],
# [0, 0, 1, 0, 0, 0],
# [0, 1, 0, 0, 0, 0]
#)targets_to_one_hot = torch.nn.functional.one_hot(targets, num_classes=7)  3# 指定one_hot编码长度为7
# result:
# tensor(
# [0, 0, 0, 0, 0, 1, 0],
# [0, 0, 0, 1, 0, 0, 0],
# [0, 0, 1, 0, 0, 0, 0],
# [0, 1, 0, 0, 0, 0, 0]
#)

总结:one_hot编码主要用于分类时,作为一个类别的编码–方便判别与相关计算;
【1. 如同类别数统计,只需要将one_hot编码相加得到一个一维向量就知道了一批数据中所有类别的预测或真实的分布情况;
2. 相比于预测出具体的类别数–43等,用向量可以使用向量相关的算法进行时间上的优化等等】

Pytorch框架之one_hot编码函数相关推荐

  1. 【python】tensorflow框架中的tf.gather_nd()函数对应的 pytorch框架的gather_nd()函数

    tf.gather_nd 函数对应的pytorch函数 1. 简单介绍 2. 步入正题 2.1 tensorflow tf.gather_nd() 2.2 pytorch框架手动实现gather_nd ...

  2. PyTorch框架:(3)使用PyTorch框架构构建神经网络分类任务

    目录 0.背景 1.分类任务介绍: 2.网络架构 3.手写网络 3.1.读取数据集 3.2.查看数据集 3.3将x和y转换成tensor的格式 3.4.定义model 0.背景 其实分类和回归本质上没 ...

  3. (pytorch-深度学习)使用pytorch框架nn.RNN实现循环神经网络

    使用pytorch框架nn.RNN实现循环神经网络 首先,读取周杰伦专辑歌词数据集. import time import math import numpy as np import torch f ...

  4. PyTorch框架:(4)如何去构建数据

    接PyTorch框架:(3) 1.最基本的方法 (1)使用模块 模块1:TensorDataset.模块2:DataLoader 自己去构造数据集,然后一个batch一个batch的取数据,自己去写构 ...

  5. 【CV实战】年轻人的第一个深度学习图像分割项目应该是什么样的(Pytorch框架)?...

    我们上次给新手们介绍了第一个合适入门的深度学习CV项目,可阅读[CV实战]年轻人的第一个深度学习CV项目应该是什么样的?(支持13大深度学习开源框架),本次我们再给大家介绍一个新的任务,图像分割,包括 ...

  6. Pytorch框架中SGD&Adam优化器以及BP反向传播入门思想及实现

    因为这章内容比较多,分开来叙述,前面先讲理论后面是讲代码.最重要的是代码部分,结合代码去理解思想. SGD优化器 思想: 根据梯度,控制调整权重的幅度 公式: 权重(新) = 权重(旧) - 学习率 ...

  7. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  8. PyTorch框架学习十七——Batch Normalization

    PyTorch框架学习十七--Batch Normalization 一.BN的概念 二.Internal Covariate Shift(ICS) 三.BN的一个应用案例 四.PyTorch中BN的 ...

  9. PyTorch框架学习十五——可视化工具TensorBoard

    PyTorch框架学习十五--可视化工具TensorBoard 一.TensorBoard简介 二.TensorBoard安装及测试 三.TensorBoard的使用 1.add_scalar() 2 ...

最新文章

  1. Tweet信息搜集工具tinfoleak
  2. Linux之文件的压缩打包
  3. Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
  4. python超神之路:python异常对照表
  5. 小区移动基站能否杀人于无形?
  6. 中小企业申报高新技术企业
  7. 电视游戏大厅现状:“渠道为王”遭遇水土不服
  8. 这两天火爆全网的「蚂蚁呀嘿」App,被下架了...
  9. S4D440Customcode adaption practice
  10. matlab调整文字方向,MATLAB改变ylabel文字方向以及截边
  11. 面向订单生产型电子制造企业,如何快速响应客户?
  12. 代谢组学分析平台都有什么仪器?
  13. 如何从为知笔记迁移到有道云笔记
  14. 【Grasshopper基础8】电池的序列化与反序列化 Serilization of Grasshopper Component
  15. 两数之和(Two Sum)
  16. 【杂谈】她养花10年从来没买过花盆,简单几招,废物变盆栽!
  17. python 浮点数类型
  18. oracle中句柄,释放句柄 – 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788 - 惜分飞...
  19. 旅行的青蛙ios正版无限四叶草教程,正版!正版!App Store下载的那种
  20. 计算机专业 本科论文,计算机专业本科论文范文

热门文章

  1. 彻底分清机器学习中的上采样、下采样、过采样、欠采样【总结】
  2. php fpm 命令行,php-fpm的命令使用
  3. SpringBoot整合ElasticaSearch
  4. 任意多个数字求平均数
  5. html中用CSS设置背景
  6. 联想电脑去掉开机广告 关闭开机广告 ideapad 去掉开机广告
  7. EXCEL VBA常用语句100句
  8. 准双向口、推挽输出、开漏输出、高阻输入的区别
  9. (转)超棒的EXCEL使用技巧
  10. 什么是内存泄露?该怎么排查?Java内存泄漏策略