to_categorical的用法
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的用法相关推荐
- keras.utils.to_categorical用法
https://blog.csdn.net/Arthur_Holmes/article/details/90400946?utm_medium=distribute.pc_relevant.none- ...
- Keras .ImageDataGenerator图像增强用法大全以及如何和模型结合起来(有代码)
图像增强 在做图像任务时,我们常常需要图像增强.今天来讲解下keras中的图像增强 ImageDataGenerator 官网 https://keras.io/api/preprocessing/i ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
最新文章
- 表观调控高通量测序分析培训开课啦
- SAP SD基本业务总结
- python模块之 paramiko(转载)
- 10 SystemVerilog语言编写SPI发送
- 从0开始配置Win环境下VScode (VScode For C/C++)
- SpringSecurity应用(二)
- HighCharts:设置坐标轴字体样式
- android 组件内部实现触摸事件,更改背景
- 毫米波雷达探测应用,智能人体感应雷达,家居雷达方案新体验
- 2015年两化融合管理体系贯标试点企业
- linux查看md5值
- 计算机图片怎么截图快捷键,电脑系统截图快捷键(电脑怎么截图)
- 网易云音乐歌单监控 IOS捷径
- Katalon Recorder简介与使用
- KEIL工程文件打不开
- 【历史上的今天】7 月 29 日:Win10 七周年;微软和雅虎的搜索协议;微软发行 NT 4.0
- 遥想大肠包小肠----python装饰器乱弹
- Python实现ABC人工蜂群优化算法优化支持向量机回归模型(SVR算法)项目实战
- 苹果确认了!iPhone 将改用 USB-C 接口
- 美国英文简写日期格式转换