to_categorical

to_categorical(y, num_classes=None)

将类别向量(从0到nb_classes的整数向量)映射为二值类别矩阵, 用于应用到以categorical_crossentropy为目标函数的模型中.

参数

  • y: 类别向量
  • num_classes:总共类别数

to_categorical就是将类别向量转换为二进制(只有0和1)的矩阵类型表示。其表现为将原有的类别向量转换为独热编码的形式。

1、先上代码看一下效果:

from keras.utils.np_utils import *
#类别向量定义
b = [0,1,2,3,4,5,6,7,8,9]
#调用to_categorical将b按照10个类别来进行转换
b = to_categorical(b, 10)
b 
array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0.],[0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],[0., 0., 1., 0., 0., 0., 0., 0., 0., 0.],[0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],[0., 0., 0., 0., 1., 0., 0., 0., 0., 0.],[0., 0., 0., 0., 0., 1., 0., 0., 0., 0.],[0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],[0., 0., 0., 0., 0., 0., 0., 1., 0., 0.],[0., 0., 0., 0., 0., 0., 0., 0., 1., 0.],[0., 0., 0., 0., 0., 0., 0., 0., 0., 1.]], dtype=float32)

注意:在调用to_categorical时给了两个参数,一个是向量b,另外一个是要求其按照10个类别来生成独热编码。

如果将代码改为下面这样

#此处只有4个数据类型
c = [0,1,2,3]
c = to_categorical(c) #这里并没有给出类型参数4
c 

其运行结果为:

array([[1., 0., 0., 0.],[0., 1., 0., 0.],[0., 0., 1., 0.],[0., 0., 0., 1.]], dtype=float32)

也就是如果我们不给出第二个参数,该方法会自动根据输入向量判断类型

2、通过手写数字识别来介绍一下:

from keras import layers
from keras.utils import to_categorical
import tensorflow as tf
import numpy as np

首先将MNIST数据集加载到keras中

from keras.datasets import mnist

这个数据集分为训练集和测试集

(train_images,train_labels),(test_images,test_labels)=mnist.load_data()

看一下训练集中数据量

train_images.shape

Out[4]:(60000, 28, 28)

训练集标签的数据

train_labels.shape
(60000,)
train_labels
array([5, 0, 4, ..., 5, 6, 8], dtype=uint8)
训练集的标签
train_labels=to_categorical(train_labels)
train_labels.shape
(60000, 10)

注意:上一步中,调用to_categorical()时,我们只给出了一个向量参数train_labels,并没有告诉它需要分为几个类型,但是它最后自动根据结果生成10个类型

再来看看标签

train_labels
array([[0., 0., 0., ..., 0., 0., 0.],[1., 0., 0., ..., 0., 0., 0.],[0., 0., 0., ..., 0., 0., 0.],...,[0., 0., 0., ..., 0., 0., 0.],[0., 0., 0., ..., 0., 0., 0.],[0., 0., 0., ..., 0., 1., 0.]], dtype=float32)

to_categorical的用法相关推荐

  1. keras.utils.to_categorical用法

    https://blog.csdn.net/Arthur_Holmes/article/details/90400946?utm_medium=distribute.pc_relevant.none- ...

  2. Keras .ImageDataGenerator图像增强用法大全以及如何和模型结合起来(有代码)

    图像增强 在做图像任务时,我们常常需要图像增强.今天来讲解下keras中的图像增强 ImageDataGenerator 官网 https://keras.io/api/preprocessing/i ...

  3. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  4. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  5. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  6. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  7. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  8. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  9. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

最新文章

  1. 表观调控高通量测序分析培训开课啦
  2. SAP SD基本业务总结
  3. python模块之 paramiko(转载)
  4. 10 SystemVerilog语言编写SPI发送
  5. 从0开始配置Win环境下VScode (VScode For C/C++)
  6. SpringSecurity应用(二)
  7. HighCharts:设置坐标轴字体样式
  8. android 组件内部实现触摸事件,更改背景
  9. 毫米波雷达探测应用,智能人体感应雷达,家居雷达方案新体验
  10. 2015年两化融合管理体系贯标试点企业
  11. linux查看md5值
  12. 计算机图片怎么截图快捷键,电脑系统截图快捷键(电脑怎么截图)
  13. 网易云音乐歌单监控 IOS捷径
  14. Katalon Recorder简介与使用
  15. KEIL工程文件打不开
  16. 【历史上的今天】7 月 29 日:Win10 七周年;微软和雅虎的搜索协议;微软发行 NT 4.0
  17. 遥想大肠包小肠----python装饰器乱弹
  18. Python实现ABC人工蜂群优化算法优化支持向量机回归模型(SVR算法)项目实战
  19. 苹果确认了!iPhone 将改用 USB-C 接口
  20. 美国英文简写日期格式转换

热门文章

  1. 教你一招:安全打开U盘的方法
  2. 4500字归纳总结,一名软件测试工程师需要掌握的技能大全
  3. 群晖Docker映像下载缓慢或失败解决方案
  4. python程序设计丁亚涛版_Python程序设计(普通高等教育“十三五”规划教材)
  5. 迈向图形化:dialog工具
  6. 强连接运营社张强:三分钟学会社群运营,从这三个方面、六个引流涨粉技巧出发
  7. 微信小程序时代已经来临
  8. 移动安全测试框架-MobSF环境搭建
  9. 西湖大学自然语言处理(七)—— 解决OOV问题的两种平滑技术
  10. CSS3干货13:把页面变成黑白灰色彩