请认仔细阅读下文,就能理解onehot转化
what is form of one-hot ?即用包含0和1的tensor来表示数字标签,数字1所在的索引值(从0开始)即为我们的数字标签,例如我们有0-9的数字标签,则标签5所对应的one-hot形式为[0 , 0 , 0 , 0 , 0 ,1 , 0 , 0 , 0 , 0],因为1所在位置的索引值为5。

And how to transform the digital labels into one-hot tensor ? 我先把tensorflow 官网(tensorflow.google.cn)上的代码贴出来:

现在看看每一个语句的作用:

1.batch_size = tf.size(labels)
  • 1

我们需要对所有的数字标签进行转换,所以第一步,先通过上述语句获取标签的个数。比如,我们的标签数组为 labels = [1 , 4 , 6 , 8 , 3 , 7],则有

2.labels_1 = tf.expand_dims(labels, 1)
  • 1

该语句的是将labels的维度索引轴axis为1处(从0开始)插入1的尺寸。现在我们先看看labels的shape:

那么,经过语句2之后,有

如上所述
从一开始的shape[6](axis=0处有6个值)变成了shape[6,1](axis=0时有6个值,axis=1处插入1),不清楚的话可以试试:
labels_1 = tf.expand_dims(labels, 0)

补充: tf.expand_dims(input, axis=None)函数表示给定输入tensor,在输入shape的维度索引轴axis处插入为1的尺寸。 维度索引轴从0开始; 如果axis为负数,则从后向前计数。

3.indices =    tf.expand_dims(tf.range(0,batch_size,1),1)
  • 1

tf.range(start, limit, delta=1)函数是用来生成tensor等差序列,序列在start到limit之间(包含start不包含limit),步长为dalta。
语句3先生成0-5的向量,再同语句2同样的扩展维度:

4.concated = tf.concat([indices, labels_1],1)
  • 1

concated = tf.concat([indices, labels_1],concat_dim)表示在第concat_dim+1个维度叠加,例如,语句4的输出为:


其中,concat_dim=0(第一个维度)可以认为是行,concat_dim=1(第二个维度)为列,所以语句4 在列上叠加。更多维度的信息自行查阅。

5.onehot_labels = tf.sparse_to_dense(concated, tf.stack([batch_size, 10]), 1.0, 0.0)
  • 1

在语句5中,concated矩阵(如上图)表示[0,1],[1,4]….[5,9]有值,tf.stack([batch_size, 10])表示输出的one-hot矩阵,每一行表示一个标签对应的ont-hot形式。1.0为one-hot的意义所在,即ont-hot矩阵中对应于concated矩阵有值的位置为1.0,然后0.0表示没值的位置为0.0。
语句5 的输出结果如图:

[tensorflow] 数字标签转化为one-hot形式的tensor相关推荐

  1. 数字标签转化为one-hot形式的tensor

    刚刚入tensorflow的大坑,根据自己的理解今天来记录一下如何将数字标签转化为one-hot形式.有错误的请谅解哈哈哈 what is form of one-hot ?即用包含0和1的tenso ...

  2. tensorflow--之将数字标签转化为one-hot

    如果要用到soft_max函数,就必须将数字标签转化为one-hot,之前用caffe是自动转, 这回使用tensoflow是的自己转: 例子代码如下: import numpy as np labe ...

  3. TensorFlow学习笔记(二)把数字标签转化成onehot标签

    在MNIST手写字数据集中,我们导入的数据和标签都是预先处理好的,但是在实际的训练中,数据和标签往往需要自己进行处理. 以手写数字识别为例,我们需要将0-9共十个数字标签转化成onehot标签.例如: ...

  4. 把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签

    把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签 文章目录: 1 用LabelImgvoc和yolo标注标签格式说明 1.1 LabelImg标 ...

  5. 类别名称转换为一一对应的数字标签

    类别名称转换为一一对应的数字标签 1.软件环境 2.问题描述 3.解决方法 3.1.定义str2num函数 3.2.使用map函数批量处理 1.软件环境 Windows 10-10.0.17134-S ...

  6. 将数字字符串格式化为指定长度

    将数字字符串格式化为指定长度的JavaScript函数 function formatNum(number,len){var strLength = len - number.length;//格式长 ...

  7. CocosStudio(八)AtlasLabel数字标签、BitmapLabel自定义字体、Label文本框

    AtlasLabel.BitmapLabel.Label这三个控件都是用了文本显示的,在实际开发中基本上用Label,除非有特殊需求我们才会选择AtlasLabel.BitmapLabel.这节讲解这 ...

  8. python 柱状图如何添加数字标签_matplotlib可视化之如何给图形添加数据标签?

    当我们获取完数据之后,一般来说数据可视化呈现的最基础图形就是:柱状图.水平条形图.折线图等等,在python的matplotlib库中分别可用bar.barh.plot函数来构建它们,再使用xtick ...

  9. python语义分割数据标签,将数字标签转彩色标签

    # 数字标签转彩色标签 import numpy as np import imageio import glob # 数字标签路径 path = r'C:\Users\67231\Desktop\o ...

最新文章

  1. mysql 应用前景_图数据库在企业应用中前景如何,相比关系型数据库有哪些优势?...
  2. 一文区分什么是「过拟合」和「欠拟合」?
  3. yarn的组成部分_图解YARN工作原理
  4. Centos7源码安装mysql及读写分离,互为主从
  5. 最完的htaccess文件用法收集整理
  6. VScode配置prettier和eslint
  7. iphone发送邮件html,iPhone使用smtp服务器发送电子邮件?
  8. 【阿里云课程】详解深度学习优化:泛化与正则化,学习率与最优化
  9. Linux 系统安全加固
  10. Bind9的dns解析服务
  11. 机器人 铑元素_智能机器人 三十三
  12. 学计算机高中选那三科,女生高中选哪三科最吃香
  13. java访问登录网页_===java怎样访问需要登录才能查看的网页????急!!===...
  14. 计算机 运行新ie 命令,电脑中通过执行命令来清除IE浏览器隐私数据的方法
  15. 分布式搜索elasticsearch 索引文档的增删改查 入门
  16. Nginx源码分析 - HTTP模块篇 - HTTP Request解析过程(22)
  17. 生物信息分析员的编程小站
  18. IP Catalog与Create Block Design调用软核的不同
  19. android直播sdk+美颜,短视频SDK,美颜SDK,直播SDK_提供开放API接口
  20. RabbitMQ 使用规范

热门文章

  1. Java 存牌洗牌发牌看牌
  2. 全国城市数据获取 mysql全国城市数据
  3. 您应该了解的云管理知识
  4. html效果浮窗效果,网页浮窗成效
  5. 袋鼠云研发手记 | 袋鼠云EasyManager的TypeScript重构纪要...
  6. courant数_CFD中常用的参数介绍 | 坐倚北风
  7. php exif_read_data orientation,PHP exif_read_data Illegal IFD size
  8. Dynamics CRM2013 Server2012下部署ADFS和IFD遇到的问题No Organization were retrived
  9. 汇编启蒙题--by cyl老师
  10. 【如何从外观上区分网线的五类线、超五类线和六类线?】