首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Keras入门级MNIST手写数字识别超级详细教程

下面的示例使用 Keras API 加载 MNIST 数据集,并创建训练数据集中前九张图像的图。 运行示例加载 MNIST 训练和测试数据集并打印它们的形状。...这是一种快速的健全性检查,可以防止容易避免的错误(例如误解数据维度)。 步骤 5:为 Keras 预处理输入数据。 使用 Theano 后端时,您必须明确声明输入图像深度的维度。...例如,具有所有3个RGB通道的全彩色图像 的深度为3。 我们的 MNIST 图像只有 1 的深度,但我们必须明确声明。...接下来,让我们看看我们的类标签数据的形状: print(y_train.shape) (60000,) 我们应该有 10 个不同的类,每个数字一个,但看起来我们只有一个一维数组。...y_train 和 y_test 数据没有分成 10 个不同的类标签,而是表示为具有类值的单个数组。

6.6K00

Keras入门级MNIST手写数字识别超级详细教程

下面的示例使用 Keras API 加载 MNIST 数据集,并创建训练数据集中前九张图像的图。 运行示例加载 MNIST 训练和测试数据集并打印它们的形状。...一般来说,在使用计算机视觉时,在进行任何算法工作之前直观地绘制数据是有帮助的。这是一种快速的健全性检查,可以防止容易避免的错误(例如误解数据维度)。 步骤 5:为 Keras 预处理输入数据。...使用 Theano 后端时,您必须明确声明输入图像深度的维度。例如,具有所有3个RGB通道的全彩色图像 的深度为3。 我们的 MNIST 图像只有 1 的深度,但我们必须明确声明。...接下来,让我们看看我们的类标签数据的形状: print(y_train.shape) (60000,) 我们应该有 10 个不同的类,每个数字一个,但看起来我们只有一个一维数组。...y_train 和 y_test 数据没有分成 10 个不同的类标签,而是表示为具有类值的单个数组。

98610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Keras 初学者教程:使用python了解深度学习

    ---- 在这个循序渐进的Keras教程中,您将学习如何使用Python构建卷积神经网络。 我们将训练一个手写数字识别分类器,其在著名的MNIST数据集上将具有超过99%的准确率。...通常,使用计算机视觉时,在进行任何算法工作之前,以可视方式绘制数据是非常有帮助。这是个快速的健全性检查,可以防止容易避免的错误(例如误解数据维度)。...第四步:预处理数据 使用Theano后端时,必须显式声明输入图像深度的尺寸。 例如,具有所有3个RGB通道的全色图像的深度为3。 我们的MNIST图像的深度为1,但我们必须明确声明。...我们应该有10个不同的类,每个数字一个,但看起来我们只有一维数组。...y_train和y_test数据不会拆分为10个不同的类标签,而是表示为具有类值的单个数组。

    82850

    盘一盘 Python 系列 10 - Keras (上)

    在本节后面介绍构建模型的三种方式时,我们用 fashion_mnist 数据来说明。Fashion-MNIST是一个替代 MNIST 手写数字集的图像数据集。...然后损失函数将这些预测值输出,并与目标进行比较,得到损失值,用于衡量网络预测值与预期结果的匹配程度。优化器使用这个损失值来更新网络的权重。...为了代码简洁,这个「0 维」的样本数在建模时通常不需要显性写出来。 参数个数为 0,因为打平只是重塑数组,不需要任何参数来完成重塑动作。...函数式建模 上面的序列式只适用于线性堆叠层的神经网络,但这种假设过于死板,有些网络 需要多个输入 需要多个输出 在层与层之间具有内部分支 这使得网络看起来像是层构成的图(graph),而不是层的线性堆叠...prob = model.predict( x_test[0:1] ) prob ? 在测试集上第一张图上做预测,输出是一个数组,里面 10 个数值代表每个类别预测的概率。

    1.8K10

    第10章 使用Keras搭建人工神经网络·精华代码

    # 加载Fashion MNIST数据集,格式与MNIST完全相同(70000张灰度图,每张的像素是28 × 28, # 共有10类),图的内容是流行物品,每类中的图片更丰富,# 识图的挑战性比MNIST...1D数组:如果输入数据是矩阵X, # 该层则计算X.reshape(-1, 1)。...具有排他性) model.add(keras.layers.Dense(10, activation="softmax")) # 除了一层一层加层,也可以传递一个层组成的列表: # model = keras.models.Sequential...) # ]) # 模型的summary()方法可以展示所有层,包括每个层的名字(名字是自动生成的,除非建层时指定名字),输出 # 的形状(None代表批次大小可以是任意值),和参数的数量。...# 早停的两种方法 # 另外,如果训练时使用了验证集,可以在创建检查点时设定save_best_only=True,只有当模型在验证集上 # 取得最优值时才保存模型。

    1.3K40

    Deep learning with Python 学习笔记(1)

    ,它从输入数据中提取表示,紧接着的一个例子中,将含有两个Dense 层,它们是密集连接(也叫全连接)的神经层,最后是一个10路的softmax层,它将返回一个由 10 个概率值(总和为 1)组成的数组。...图像数据保存在 4D 张量中,通常用二维卷积层(Keras 的 Conv2D )来处理 Keras框架具有层兼容性,具体指的是每一层只接受特定形状的输入张量,并返回特定形状的输出张量 layer = layers.Dense...model.add(layers.Dense(32)) 它可以自动推导出输入形状等于上一层的输出形状 具有多个输出的神经网络可能具有多个损失函数(每个输出对应一个损失函数)。...因此,对于具有多个损失函数的网络,需要将所有损失函数取平均,变为一个标量值 一个 Keras 工作流程 定义训练数据: 输入张量和目标张量 定义层组成的网络(或模型),将输入映射到目标 配置学习过程...机器学习的目的当然是得到良好的泛化 训练开始时,优化和泛化是相关的: 训练数据上的损失越小,测试数据上的损失也越小。

    1.4K40

    关于深度学习系列笔记四(张量、批量、Dense)

    #此段代码改写来自于Keras->datasets->mnist.py #为了确保快速加载数据集,建议下载后从本地直接加载 def load_data(path='mnist.npz'): #...下载MNIST数据集 https://s3.amazonaws.com/img-datasets/mnist.npz # 通过本地目录加载MNIST数据集 # 返回Numpy数组Tuple...必要时一直重复这些步骤。 #(1) 抽取训练样本x 和对应目标y 组成的数据批量。 #(2) 在x 上运行网络[这一步叫作前向传播(forward pass)],得到预测值y_pred。...# (1) 抽取训练样本x 和对应目标y 组成的数据批量。 # (2) 在x 上运行网络,得到预测值y_pred。...# 术语随机(stochastic)是指每批数据都是随机抽取的(stochastic 是random在科学上的同义词a) # 小批量SGD 算法的一个变体是每次迭代时只抽取一个样本和目标,而不是抽取一批数据

    74920

    TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)

    在训练深度神经网络模型时,这种组合可以大大克服梯度消失的问题。 该模型预测1类的可能性,并使用S型激活函数。 下面列出了代码片段。...因此,输出层具有单个节点,并使用默认或线性激活函数(无激活函数)。拟合模型时,均方误差(mse)损失最小。...流行的图像分类任务是MNIST手写数字分类。它涉及成千上万个手写数字,必须将其分类为0到9之间的数字。 tf.keras API提供了便捷功能,可以直接下载和加载此数据集。...原因是CNN模型期望图像采用通道最后格式,即网络的每个示例均具有[行,列,通道]的尺寸,其中通道代表图像数据的彩色通道。 训练CNN时,将像素值从默认范围0-255缩放到0-1也是一个好主意。...这是用于检查模型中输出形状和参数(权重)数量的诊断。

    2.3K10

    TensorFlow从1到2(二)续讲从锅炉工到AI专家

    但这也使得大量的工作被隐藏掉,反而让人难以真正理解来龙去脉。特别是其中所使用的样本数据也已经不同,而这对于学习者,是非常重要的部分。...import keras # 引入绘图库 import matplotlib.pyplot as plt # 这里使用mnist数据预读准备库检查给定路径是已经有样本数据, # 没有的话去网上下载,...28])) # 原数据为float,转换为uint8字节数据 image = tf.cast(image, dtype=tf.uint8) # 标签样本为10个字节的数组,为1的元素下标就是样本的标签值...实际上这个输入样本可以不指定形状,在没有指定的情况下,Keras会自动识别训练数据集的形状,并自动将模型输入匹配到训练集形状。...除了第一层之外,之后的每一层都无需指定输入样本形状。Keras会自动匹配相邻两个层的数据。这节省了开发人员大量的手工计算也不易出错。 最后,激活函数的选择成为一个参数。

    54300

    AI 技术讲座精选:数学不好,也可以学习人工智能(四)——图解张量

    著名的 MNIST 数据集实际就是一系列手写数字,曾经是困扰众多数据科学家的难题,但如今已经解决。机器已经能够达到99%甚至更高的精度。...Keras 甚至集成了 MNIST 数据集,只需要简单的命令就可以实现自动导入: from keras.datasets import mnist (train_images, train_labels...训练集用来教会神经网络,测试集则是神经网络学习后试图分类的目标。 MNIST 都是灰度图像,也就是说可以将其编码为2维 tensor。...TensorFlow 是这样存储图片的: (sample_size, height, width,color_depth) 因此,我们可以得到 MNIST 数据集的4维 tensor,形式如下: (60000,28,28,1...所以如果我们有10个视频的话,就可以得到5维 tensor: (10,4500,1920,1080,3) 这个例子其实很疯狂。 张量的体积可以大到不可思议,甚至能超过1TB。

    97460

    计算机视觉中的深度学习

    MNIST中,将图片转换成(28,28,1)形状,然后在第一层传递input_shape参数。...卷积在3D张量上运算,称为特征映射,具有两个空间轴(高度和宽度)以及深度轴(也称为通道轴).对RGB三原色图片来说,通道数为3--红、绿、蓝;MNIST数据集中图片通道数为1--灰度图。...值得注意的是,这个参数可以赋值为数据生成器,也可以是numpy数组的元组。...数据增强采用从现有训练样本生成更多训练数据的方法,通过大量随机变换来增加样本,从而产生新的可靠的图像样本。 目标是在训练时,模型将永远不会看到两张完全相同的图片。...可视化卷积核 另一种检查由convnet学习的过滤器的简单方法是显示每个过滤器要响应的视觉模式。

    2.1K31

    Python 深度学习第二版(GPT 重译)(三)

    如果您想要对每一点都有完全控制,这是理想的选择。但是,您将无法访问许多内置的 Keras 功能,并且更容易出错。...7.2.2 功能 API Sequential 模型易于使用,但其适用性极为有限:它只能表达具有单个输入和单个输出的模型,按顺序一个接一个地应用各个层。...这使得可以检查层如何连接并重用先前的图节点(即层输出)作为新模型的一部分。它还很好地适应了大多数研究人员在思考深度神经网络时使用的“心智模型”:层的图。...但首先,让我们从一个简单的卷积网络示例开始,该示例对 MNIST 数字进行分类,这是我们在第二章中使用全连接网络执行的任务(当时我们的测试准确率为 97.8%)。...这使得卷积神经网络在处理图像时具有数据效率(因为视觉世界在根本上是平移不变的):它们需要更少的训练样本来学习具有泛化能力的表示。 它们可以学习空间模式的层次结构。

    32410

    Keras入门必看教程

    你可以在这里读到更多关于 Keras 的内容: Keras, Python 的深度学习库 深度学习究竟是什么? 深度学习是指具有多隐层的神经网络, 其可以学习输入数据的抽象表示....我们应该有 10 个不同的类型, 每一个类代表一个数字, 但是看起来, 现在只有一个 1 维数组. 再来看下前 10 个训练样本的标签: ?...问题依旧. y_train 和 y_test 数据并没有被分成 10 个不同的类标签, 而是被表示成一个类型值的单一数组. 对此, 我们可以进行简单的修正: ? 再看一眼: ? 好多了!...这里有一个 Keras 实现样例. 我们先声明一个顺序模型: ? 然后, 声明一个输入层: ? 输的形状参数应为形状为 1 的样例....Keras 会自动处理层间连接. 注意到最后一层的输出大小为 10, 对应于 10 个数字类型. 同时还要注意, 卷积层的权重在传递给完全连接的 Dense 层之前, 必须压平 (维度为 1).

    1.2K60

    Keras入门必看教程(附资料下载)

    这是一个快速明智的检查, 可以防止可避免的错误 (比如对数据维度的误解). 第五步: 输入数据预处理 在后端使用 Theano 时, 你必须显式地声明一个维度, 用于表示输入图片的深度....我们应该有 10 个不同的类型, 每一个类代表一个数字, 但是看起来, 现在只有一个 1 维数组....再来看下前 10 个训练样本的标签: 问题依旧. y_train 和 y_test 数据并没有被分成 10 个不同的类标签, 而是被表示成一个类型值的单一数组....输的形状参数应为形状为 1 的样例. 本例中, 就是 (1, 28, 28), 与每张数字图片的 (depth, width, height) 相对应. 但是前 3 个参数又代表什么呢?...Keras 会自动处理层间连接. 注意到最后一层的输出大小为 10, 对应于 10 个数字类型. 同时还要注意, 卷积层的权重在传递给完全连接的 Dense 层之前, 必须压平 (维度为 1).

    1.7K70

    TensorFlow 基础学习 - 3 CNN

    如果不这样做,会在训练时得到一个错误,因为卷积操作将不能识别数据形状。 接下来是定义模型。首先要添加一个卷积层。参数是 我们想要生成的卷积数(过滤器数量)。...这个数值是任意的,但最好是从32开始的倍数。 卷积的大小(过滤器的大小),在本例中为3x3网格。这是最常用的尺寸。...要使用的激活函数 -- 在本例中,我们将使用relu,我们可能还记得它相当于当x>0时返回x,否则返回0。 在第一层,设定输入数据的形状。...它的想法是创建一个2x2的像素数组,然后选取最大的一个,从而将4个像素变成1个,在整个图像中重复这样做,这样做的结果是将水平像素的数量减半,垂直像素的数量减半,有效地将图像缩小25%。...如果epochs达到20但精度未达到要求,那么就需要重新设计层结构。当达到99.8%的准确率时,你应该打印出 "达到99.8%准确率,所以取消训练!"的字符串。

    49620

    精通 TensorFlow 1.x:1~5

    您可能已经熟悉零维集合(标量),一维集合(向量),二维集合(矩阵)的数量,以及多维集合。 标量值是等级 0 的张量,因此具有[1]的形状。向量或一维数组是秩 1 的张量,并且具有列或行的形状。...矩阵或二维数组是秩 2 的张量,并且具有行和列的形状。三维数组将是秩 3 的张量,并且以相同的方式,n 维数组将是秩n的张量。...函数tf.get_variable()返回具有相同名称的现有变量(如果存在),并创建具有指定形状的变量和初始化器(如果它不存在)。...如果重新开始训练,它将首先检查检查点是否存在,并且默认情况下将从检查点恢复训练。 在撰写本文时,TFSlim 的文档页面在此链接中被发现为空。 但是,可以在此链接的源代码中找到一些文档。...num_inputs列的形状,并且在我们的示例中列数仅为 1 y_tensor定义为具有可变行和num_outputs列的形状,列数在我们的示例中只有一个 w被定义为维度num_inputs x num_outputs

    3.1K10
    领券