首页 > 其他分享 >Keras Flatten

Keras Flatten

时间:2023-10-08 09:33:27浏览次数:36  
标签:None 48 Keras 32 channels Flatten model

Keras Flatten

===============================================================

作用:

Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。

例子:

    from keras.models import Sequential
    from keras.layers.core import Flatten
    from keras.layers.convolutional import Convolution2D
    from keras.utils.vis_utils import plot_model
     
     
    model = Sequential()
    model.add(Convolution2D(64,3,3,border_mode="same",input_shape=(3,32,32)))
    # now:model.output_shape==(None,64,32,32)
     
    model.add(Flatten())
    # now: model.output_shape==(None,65536)
     
    plot_model(model, to_file='Flatten.png', show_shapes=True)

为了更好的理解Flatten层作用,我把这个神经网络进行可视化如下图:

 

 


链接:https://blog.csdn.net/program_developer/article/details/80853425

===============================================================

keras.layers.Flatten(data_format=None)

data_format:一个字符串,其值为 channels_last(默认值)或者 channels_first。它表明输入的维度的顺序。此参数的目的是当模型从一种数据格式切换到另一种数据格式时保留权重顺序。channels_last 对应着尺寸为 (batch, ..., channels) 的输入,而 channels_first 对应着尺寸为 (batch, channels, ...) 的输入。默认为 image_data_format 的值,你可以在 Keras 的配置文件 ~/.keras/keras.json 中找到它。如果你从未设置过它,那么它将是 channels_last
model = Sequential()
model.add(Conv2D(64, (3, 3),
                 input_shape=(3, 32, 32), padding='same',))
# 现在:model.output_shape == (None, 64, 32, 32)

model.add(Flatten())
# 现在:model.output_shape == (None, 65536)

 

 

===============================================================

如果我们考虑创建的原始模型(具有Flatten层),则可以得到以下模型摘要:

1
2
3
4
5
6
7
8
9
10
11
12
13
Layer (type)                 Output Shape              Param #  
=================================================================
D16 (Dense)                  (None, 3, 16)             48        
_________________________________________________________________
A (Activation)               (None, 3, 16)             0        
_________________________________________________________________
F (Flatten)                  (None, 48)                0        
_________________________________________________________________
D4 (Dense)                   (None, 4)                 196      
=================================================================
Total params: 244
Trainable params: 244
Non-trainable params: 0

对于此摘要,下一张图像有望对每一层的输入和输出大小提供更多的了解。

可以读取的Flatten层的输出形状为(None, 48)。这里是提示。您应该阅读(1, 48)或(2, 48)或...或(16, 48) ...或(32, 48),...

实际上,该位置上的None表示任何批量大小。对于召回的输入,第一维表示批次大小,第二维表示输入要素的数量。

在Keras中Flatten层的作用非常简单:

对张量进行展平操作会将张量整形,使其形状等于张量中包含的元素数量(不包括批尺寸)。

enter image description here

注意:我使用了model.summary()方法来提供输出形状和参数详细信息。

 

===============================================================


 

标签:None,48,Keras,32,channels,Flatten,model
From: https://www.cnblogs.com/emanlee/p/17090104.html

相关文章

  • Keras Dropout
    =============================================================== 一、Keras中使用Dropout正则化减少过度拟合Dropout正则化是最简单的神经网络正则化方法。其原理非常简单粗暴:任意丢弃神经网络层中的输入,该层可以是数据样本中的输入变量或来自先前层的激活。它能够模拟具......
  • keras.layers. K.function 用法(keras提取中间层的输出)
    https://www.laike.net/article-11-295083-0.html 使用K.function()调试keras操作Keras的底层库使用Theano或TensorFlow,这两个库也称为Keras的后端。无论是Theano还是TensorFlow,都需要提前定义好网络的结构,也就是常说的“计算图”。在运行前需要对计算图编译,然后才能输出结果......
  • 解决tansorflow新手教程的keras.datasets数据下载问题
    portal>https://github.com/tensorflow/tensorflow/issues/33285......
  • 无涯教程-TensorFlow - Keras
    Keras易于学习的高级Python库,可在TensorFlow框架上运行,它的重点是理解深度学习技术,如为神经网络创建层,以维护形状和数学细节的概念。框架的创建可以分为以下两种类型-顺序API功能API无涯教程将使用JupyterNotebook执行和显示输出,如下所示-步骤1  - 首先执行数据加载和......
  • elasticsearch中的数据类型:flattened和join
    flattened:比如你有一个字段的值是一个json,这个json里面又有很多字段,你又不想一个一个的定义这些字段到mapping,就可以用flattened直接动手:创建索引:PUTperson{"mappings":{"properties":{"patient_name":{"type":"text"},&......
  • torch的flatten函数
    python:flatten()参数详解这篇博客主要写flatten()作用,及其参数的含义flatten()是对多维数据的降维函数。flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的......
  • 安装nlpcda2.5.8 Simbert不能正常使用,除非你安装:bert4keras、tensorflow ,为了
    安装nlpcda2.5.8Simbert不能正常使用问题解决方案在自然语言处理(NLP)领域,模型的选择和安装是非常重要的。为了使用nlpcda2.5.8Simbert,我们需要在安装该库之前先安装bert4keras和tensorflow。本文将介绍如何解决Simbert不能正常使用的问题,并给出相应的代码示例。1.安装bert4kera......
  • 使用Keras Tuner进行超参数自动调优
    本文将使用Tensorflow中包含的FashionMNIST数据集。该数据集在训练集中包含60,000张灰度图像,在测试集中包含10,000张图像。每张图片代表属于10个类别之一的单品(“T恤/上衣”、“裤子”、“套头衫”等)。因此这是一个多类分类问题。首先我们需要安装keras_tuner,它将......
  • Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化|附代码数据
    原文链接:http://tecdat.cn/?p=23573最近我们被客户要求撰写关于Keras神经网络序列模型的研究报告,包括一些图形和统计输出。我们可以很容易地用Keras序列模型拟合回归数据并预测测试数据。  在这篇文章中,我们将简要地学习如何用Python中的Keras神经网络API拟合回归数据。我们将......
  • Could not fetch URL https://pypi.org/simple/keras-bert/: There was a problem co
    pip下载包的时候报错CouldnotfetchURLhttps://pypi.org/simple/keras-bert/:Therewasaproblemconfirmingthesslcertificate:HTTPSConnectionPool(host='pypi.org',port=443):Maxretriesexceededwithurl:/simple/keras-bert/(CausedbySSLError(SSLEO......