keras中Convolution1D的使用

这篇文章主要说明两个东西,一个是Convolution1D的介绍,另一个是model.summary()的使用。

首先我先说下model.summary(),此方法可以打印出模型的信息,读者可以查看每层输出内容。

接下来就说下Convolution1D的使用了,Convolution1D一维卷积,主要用于过滤一维输入的相邻元素,官方文档是这样的

keras.layers.convolutional.Convolution1D(nb_filter, filter_length, init=‘glorot_uniform‘, activation=None, weights=None, border_mode=‘valid‘, subsample_length=1, W_regularizer=None, b_regularizer=None, activity_regularizer=None, W_constraint=None, b_constraint=None, bias=True, input_dim=None, input_length=None)

然后官方给出的事例是这样的

# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode=‘same‘, input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)

# add a new conv1d on top
model.add(Convolution1D(32, 3, border_mode=‘same‘))
# now model.output_shape == (None, 10, 32)

然后用print(model.summary())输出是这样的:

下面我就围绕着上面代码简单介绍下:当把该层作为首层时,需要说明 input_shape

input_shape=(10, 32)简而言之就是10个32维的向量了,nb_filter : 卷积核的数量,也是输出的维度。filter_length : 每个过滤器的长度。首先我们先看第一个卷积层,输出shape很容易理解,因为有64个卷积核,所以输出也就是64,接下来我们看下参数:其实可以这么理解,我们把例子中(10,32)的信号进行1D卷积相当于对其进行卷积核为(filter_length, 32)的2D卷积

好了,就酱吧

				
时间: 2025-01-14 04:29:15

keras中Convolution1D的使用的相关文章

keras中的mask操作

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

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

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

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

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是指

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

Keras中维度报错

在运行keras代码的时候,出现了以下的错误: Traceback (most recent call last):  File "segnet_train.py", line 254, in <module>    train(args)    File "segnet_train.py", line 210, in train    model = SegNet()    File "segnet_train.py", line

如何在python 深度学习Keras中计算神经网络集成模型

神经网络的训练过程是一个挑战性的优化过程,通常无法收敛. 这可能意味着训练结束时的模型可能不是稳定的或表现最佳的权重集,无法用作最终模型. 解决此问题的一种方法是使用在训练运行结束时看到的多个模型的权重平均值. 平均模型权重 学习深度神经网络模型的权重需要解决高维非凸优化问题. 解决此优化问题的一个挑战是,有许多“ 好的 ”解决方案,学习算法可能会反弹而无法稳定. 解决此问题的一种方法是在训练过程即将结束时合并所收集的权重.通常,这可以称为时间平均,并称为Polyak平均或Polyak-Rupp

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