由于想多分类中使用Diceloss,所以需要将[0,1,2,..N]类型的标签转化为onehot类型。

1、在cpu上处理

input数据类型: torch.LongTensor()

数据形状:[bs, 1, *]         可为2D或3D数据

def make_one_hot(input, num_classes):

"""Convert class index tensor to one hot encoding tensor.

Args:

input: A tensor of shape [bs, 1, *]

num_classes: An int of number of class

Returns:

A tensor of shape [bs, num_classes, *]

"""

shape = np.array(input.shape)

shape[1] = num_classes

shape = tuple(shape)

result = torch.zeros(shape)

result = result.scatter_(1, input.cpu(), 1)

return result

2、在GPU上处理

input数据类型: torch.LongTensor().cuda()

数据形状:[bs, 1, *]         可为2D或3D数据

def make_one_hot(input, num_classes):

"""Convert class index tensor to one hot encoding tensor.

Args:

input: A tensor of shape [bs, 1, *]

num_classes: An int of number of class

Returns:

A tensor of shape [bs, num_classes, *]

"""

shape = np.array(input.shape)

shape[1] = num_classes

shape = tuple(shape)

result = torch.zeros(shape).cuda()

result = result.scatter_(1, input, 1)

return result

3、温馨提示

1、FloatTensor转化为LongTensor:

# 此时的输入label为FloatTensor,可在cuda,也可是cpu

label_long = label.long()

2、 Tensor增加一个维度

label_onehot = label_onehot.unsqueeze(1) #在第一维增加一个维度

3、多分类交叉熵是不需要将标签转为onehot的

详情请查看  https://blog.csdn.net/longshaonihaoa/article/details/105253553

4、最近版pytorch有直接的转化为onehot的代码,了解之后更新。

pytorch标签onehot编码_pytorch将标签转为onehot相关推荐

  1. pytorch标签onehot编码_pytorch实现onehot编码转为普通label标签

    pytorch实现onehot编码转为普通label标签 label转onehot的很多,但是onehot转label的有点难找,所以就只能自己实现以下,用的topk函数,不知道有没有更好的实现 on ...

  2. [数据预处理] onehot编码:是什么,为什么,怎么样

    [数据预处理] onehot编码:是什么,为什么,怎么样 文章目录 [数据预处理] onehot编码:是什么,为什么,怎么样 什么是onehot编码 为什么要进行onehot编码 对labels进行o ...

  3. 机器学习之——什么是Onehot编码?

    What? 什么是Onehot编码? onehot编码又叫独热编码,其为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效. Oneh ...

  4. 深度学习笔记(十二)---One-hot编码

    在学习语义分割过程中,最后的逐像素分类网络中,对像素进行分类时使用了one-hot编码,这也是现分类任务中常用的一种分类方式.那么什么是one-hot编码呢?为什么使用One-hot呢? One-ho ...

  5. 实现对文本的简单one-hot编码

    one-hot编码是将标记转换为向量的最常用.最基本方法.下面分别讲讲字符级的one-hot编码和单词级的one-hot编码. 单词级的one-hot编码 import numpy as npsamp ...

  6. 将标签进行One-hot编码

    在利用机器学习或者深度学习解决分类问题时,我们需要将标签进行编码,有时也需要将离散的自变量进行分类编码,特别是做神经网络或回归预测时,对离散的自变量也进行One-hot编码扩维是一种很好办法,例如我们 ...

  7. Python将单一数字标签进行one-hot编码

    在对分类神经网络进行训练时,涉及到标签的设置,分为纯数字类及one-hot类,后者采用的比较多,因此涉及到如何进行标签的转换,如标签([[1],[2],[3]])需要转换成([[1,0,0],[0,1 ...

  8. PyTorch之对类别张量进行one-hot编码

    PyTorch之对类别张量进行one-hot编码 本文已授权极市平台, 并首发于极市平台公众号. 未经允许不得二次转载. 原始文档:https://www.yuque.com/lart/ugkv9f/ ...

  9. pytorch炼金术-One-Hot 编码

    One-Hot 编码 1. F.one_hot pytorch 现在自带的将标签转成one-hot编码方法 import torch.nn.functional as F import torchx= ...

  10. OneHotEncoder独热编码和 LabelEncoder标签编码——机器学习

    学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到 ...

最新文章

  1. 记录一款好用的JS插件,artDialog中国人自己写的插件
  2. kint 一个强大的php调试助手
  3. 集合与集合取笛卡尔积
  4. php cdi_涉及CDI和JSF的过期对话的定制错误页面
  5. 图像处理中的通信原理——冈萨雷斯读书笔记(三)
  6. php微信网页开发实现自动登录注册功能实例
  7. 蓝桥杯 ADV-68算法提高 企业奖金发放
  8. 氢离子浓度指数(ph值)
  9. 如何商业智能平台BI的成本
  10. 用C#实现***程序
  11. Linux中如何判断一个另外进程是否活着
  12. mysql备份的 三种方式
  13. CPU /磁盘I/O /内存
  14. 上海财经应用统计考python_20上财应用统计415分经验帖(初试第一)
  15. RGB 透明度 对应代码
  16. [好文推荐] 给年轻程序员的8条建议
  17. 2021年美容师(初级)免费试题及美容师(初级)考试试卷
  18. java mail 使用:exchange邮箱
  19. 在ubuntu用wine安装微信 并解决无法输入文字的问题 ubuntu完美安装微信
  20. h5课件制作_一款专业的HTML5课件制作工具:炫课

热门文章

  1. pcl学习之kd-tree
  2. Highcharts柱形范围图使用示例
  3. H - 数论中的异或 HRBUST - 1688
  4. LeetCode 要记得一些小trick
  5. 在记录异常日志的时候包含源代码文件名和行号等信息
  6. 入门命令13-字符串查找增强:findstr
  7. 基于麻雀算法优化的核极限学习机(KELM)分类算法 - 附代码
  8. 【python】多线程小结
  9. 转载【C++】int转换为string的两种方法(to_string、字符串流)
  10. arcgis鹰眼图问题