keras中的keras.utils.to_categorical方法

参考链接:https://blog.csdn.net/nima1994/article/details/82468965

参考链接:https://blog.csdn.net/gdl3463315/article/details/82659378

to_categorical(y, num_classes=None, dtype=‘float32‘)

将整型的类别标签转为onehot编码。y为int数组,num_classes为标签类别总数,大于max(y)(标签从0开始的)。

返回:如果num_classes=None,返回len(y) * [max(y)+1](维度,m*n表示m行n列矩阵,下同),否则为len(y) * num_classes。

  1. import keras

  2.  

  3.  

    ohl=keras.utils.to_categorical([1,3])

  4.  

    # ohl=keras.utils.to_categorical([[1],[3]])

  5.  

    print(ohl)

  6.  

    """

  7.  

    [[0. 1. 0. 0.]

  8.  

    [0. 0. 0. 1.]]

  9.  

    """

  10.  

    ohl=keras.utils.to_categorical([1,3],num_classes=5)

  11.  

    print(ohl)

  12.  

    """

  13.  

    [[0. 1. 0. 0. 0.]

  14.  

    [0. 0. 0. 1. 0.]]

  15.  

    """

该部分keras源码如下:

  1. def to_categorical(y, num_classes=None, dtype=‘float32‘):

  2.  

    """Converts a class vector (integers) to binary class matrix.

  3.  

  4.  

    E.g. for use with categorical_crossentropy.

  5.  

  6.  

    # Arguments

  7.  

    y: class vector to be converted into a matrix

  8.  

    (integers from 0 to num_classes).

  9.  

    num_classes: total number of classes.

  10.  

    dtype: The data type expected by the input, as a string

  11.  

    (`float32`, `float64`, `int32`...)

  12.  

  13.  

    # Returns

  14.  

    A binary matrix representation of the input. The classes axis

  15.  

    is placed last.

  16.  

    """

  17.  

    y = np.array(y, dtype=‘int‘)

  18.  

    input_shape = y.shape

  19.  

    if input_shape and input_shape[-1] == 1 and len(input_shape) > 1:

  20.  

    input_shape = tuple(input_shape[:-1])

  21.  

    y = y.ravel()

  22.  

    if not num_classes:

  23.  

    num_classes = np.max(y) + 1

  24.  

    n = y.shape[0]

  25.  

    categorical = np.zeros((n, num_classes), dtype=dtype)

  26.  

    categorical[np.arange(n), y] = 1

  27.  

    output_shape = input_shape + (num_classes,)

  28.  

    categorical = np.reshape(categorical, output_shape)

  29.  

    return categorical

  30.  

简单来说:**keras.utils.to_categorical函数:是把类别标签转换为onehot编码(categorical就是类别标签的意思,表示现实世界中你分类的各类别), 而onehot编码是一种方便计算机处理的二元编码。**

原文地址:https://www.cnblogs.com/klausage/p/12309823.html

时间: 2024-11-13 21:06:38

keras中的keras.utils.to_categorical方法的相关文章

keras中的mask操作

使用背景 最常见的一种情况, 在NLP问题的句子补全方法中, 按照一定的长度, 对句子进行填补和截取操作. 一般使用keras.preprocessing.sequence包中的pad_sequences方法, 在句子前面或者后面补0. 但是这些零是我们不需要的, 只是为了组成可以计算的结构才填补的. 因此计算过程中, 我们希望用mask的思想, 在计算中, 屏蔽这些填补0值得作用. keras中提供了mask相关的操作方法. 原理 在keras中, Tensor在各层之间传递, Layer对象

keras中的loss、optimizer、metrics

用keras搭好模型架构之后的下一步,就是执行编译操作.在编译时,经常需要指定三个参数 loss optimizer metrics 这三个参数有两类选择: 使用字符串 使用标识符,如keras.losses,keras.optimizers,metrics包下面的函数 例如: sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='categorical_crossentropy', opt

第20章 keras中“开箱即用”CNNs

第20章 keras中"开箱即用"CNNs 到目前为止,我们学习了如何从头开始训练CNNs.这些CNNs大多数工作在浅层(以及较小数据集上),以至于它们可以很容易的在CPU上训练,而不需要在更贵的GPU上,这使得我们能够掌握神经网络和深度学习的基础. 但是由于我们只在浅层网络上工作,我们无法利用深度学习带给我们的全分类能力.幸运的是,keras库预置了5种在ImageNet数据集上预训练的CNNs: l  VGG16 l  VGG19 l  ResNet50 l  Inception

keras中使用预训练模型进行图片分类

keras中含有多个网络的预训练模型,可以很方便的拿来进行使用. 安装及使用主要参考官方教程:https://keras.io/zh/applications/   https://keras-cn.readthedocs.io/en/latest/other/application/ 官网上给出了使用 ResNet50 进行 ImageNet 分类的样例 from keras.applications.resnet50 import ResNet50 from keras.preprocess

keras中的shape/input_shape

在keras中,数据是以张量的形式表示的,张量的形状称之为shape,表示从最外层向量逐步到达最底层向量的降维解包过程.“维”的也叫“阶”,形状指的是维度数和每维的大小.比如,一个一阶的张量[1,2,3]的shape是(3,); 一个二阶的张量[[1,2,3],[4,5,6]]的shape是(2,3);一个三阶的张量[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1) input_shape就是指输入张量的shape.例如,input_dim=784,dim是指

【tf.keras】tf.keras使用tensorflow中定义的optimizer

我的 tensorflow+keras 版本: print(tf.VERSION) # '1.10.0' print(tf.keras.__version__) # '2.1.6-tf' tf.keras 没有实现 AdamW,即 Adam with Weight decay.论文<DECOUPLED WEIGHT DECAY REGULARIZATION>提出,在使用 Adam 时,weight decay 不等于 L2 regularization.具体可以参见 当前训练神经网络最快的方式

keras中保存自定义层和loss

在keras中保存模型有几种方式: (1):使用callbacks,可以保存训练中任意的模型,或选择最好的模型 logdir = './callbacks' if not os.path.exists(logdir): os.mkdir(logdir) output_model_file = os.path.join(logdir, "xxxx.h5") callbacks = [ tf.keras.callbacks.ModelCheckpoint(output_model_file

Android中常用的bitmap处理方法

收集了很多bitmap相关的处理方法,几乎全部应用在项目中,所以特记录下! package com.tmacsky.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.gr

C#判断一个类中有无&quot;指定名称&quot;的方法

C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 using System; using System.Reflection; namespace Hello {     class Program     {