刚刚入tensorflow的大坑,根据自己的理解今天来记录一下如何将数字标签转化为one-hot形式。有错误的请谅解哈哈哈
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)

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

2.labels_1 = tf.expand_dims(labels, 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)

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

4.concated = tf.concat([indices, labels_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)

在语句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 的输出结果如图:

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

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

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

  2. [tensorflow] 数字标签转化为one-hot形式的tensor

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

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

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

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

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

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

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

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

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

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

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

  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. 2019 阿里云峰会·北京站正式启动,互联网出海分论坛报名开启...
  2. Mahout实战---运行第一个推荐引擎
  3. 人工智能秘史(二):美国第一台计算机背后的女程序员
  4. c++矩阵出现奇怪的数_如何理解人们在决策中的“矩阵”运算?
  5. Java 8实现BASE64编解码
  6. mysql 数据增量备份_MySQL数据库之mysql全量备份、增量备份实现方法
  7. 日本富士通正考虑将PC业务并入联想
  8. SQL Server 2014数据访问层
  9. vue组件挂载到全局方法
  10. 抓包——HTTP分析
  11. 2018数学建模A题优秀论文:高温作业专用服装设计
  12. 数学分析—集合与映射
  13. 欧姆龙nj与nx哪个高端_没想到还有比三菱更垃圾的PLC,欧姆龙隆重登场
  14. 简仿Path的商店表情弹出模块
  15. robo 3t 查询
  16. html改变按钮形状6,6个HTML5/CSS3按钮悬停边界旋绕动画
  17. matlab科学计算软件,数据分析软件 Matlab 科学计算软件 科软网——专业正版软件供应商...
  18. java response.write_response.write()区别response.getWrite().write()
  19. Oracle 中文转为拼音
  20. 2020年JAVA最常见面试题汇总

热门文章

  1. 莫以物喜 、莫以己悲!
  2. STM32H7高性能MCU系列 STM32H7A3NGH6 32-bit RISC内核
  3. 高价拍下巴菲特午餐的90后孙宇晨是谁?
  4. php教程7天速成,练字速成法一周写出一手漂亮的字!【7天练字速成】
  5. 自定义ListView实现任意View跑马灯效果
  6. 使用pycharm和python遇到的一些问题
  7. 计算机考csp200分啥水平,信息学竞赛CSP诞生多位满分选手,小码王学员包揽多个组别省市第一...
  8. GAIN: Missing Data Imputation using Generative Adversarial Nets(基于生成对抗网络的缺失数据填补)论文详解
  9. Ubuntu 编译ijkplayer 支持几乎所有格式(MP4,mov,mkv,avi,wmv,m4v,mpg,webm,ogv,3g2.flv,f4v,swf)和https
  10. bcd 初始化库系统卷失败_中级|软考题库每日一练|2.24