广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Keras中Conv1D的使用及说明
  • 166
分享到

Keras中Conv1D的使用及说明

Keras中Conv1DConv1D的使用Keras中Conv1D使用 2022-12-15 18:12:37 166人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录Conv1D参数输入尺寸输出尺寸输入输出尺寸的理解keras Conv1D 一维卷积的输入维度报错情况问题原因解决方法总结Conv1D keras.layers.Conv1D(f

Conv1D

keras.layers.Conv1D(filters, kernel_size, strides=1, padding='valid', data_fORMat='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

1D 卷积层 (例如时序卷积)。

该层创建了一个卷积核,该卷积核以 单个空间(或时间)维上的层输入进行卷积, 以生成输出张量。 如果 use_bias 为 True, 则会创建一个偏置向量并将其添加到输出中。 最后,如果 activation 不是 None,它也会应用于输出。

当使用该层作为模型第一层时,需要提供 input_shape 参数(整数元组或 None),例如, (10, 128) 表示 10 个 128 维的向量组成的向量序列, (None, 128) 表示 128 维的向量组成的变长序列。

参数

  • filters: 整数,输出空间的维度 (即卷积中滤波器的输出数量)。
  • kernel_size: 一个整数,或者单个整数表示的元组或列表, 指明 1D 卷积窗口的长度。
  • strides: 一个整数,或者单个整数表示的元组或列表, 指明卷积的步长。 指定任何 stride 值 != 1 与指定 dilation_rate 值 != 1 两者不兼容。
  • padding: “valid”, “causal” 或 “same” 之一 (大小写敏感) “valid” 表示「不填充」。 “same” 表示填充输入以使输出具有与原始输入相同的长度。 “causal” 表示因果(膨胀)卷积, 例如,output[t] 不依赖于 input[t+1:], 在模型不应违反时间顺序的时间数据建模时非常有用。
  • data_format: 字符串, “channels_last” (默认) 或 “channels_first” 之一。输入的各个维度顺序。 “channels_last” 对应输入尺寸为 (batch, steps, channels) (Keras 中时序数据的默认格式) 而 “channels_first” 对应输入尺寸为 (batch, channels, steps)。
  • dilation_rate: 一个整数,或者单个整数表示的元组或列表,指定用于膨胀卷积的膨胀率。 当前,指定任何 dilation_rate 值 != 1 与指定 stride 值 != 1 两者不兼容。
  • activation: 要使用的激活函数。 如未指定,则不使用激活函数 (即线性激活: a(x) = x)。
  • use_bias: 布尔值,该层是否使用偏置向量。
  • kernel_initializer: kernel 权值矩阵的初始化器 。
  • bias_initializer: 偏置向量的初始化器 。
  • kernel_regularizer: 运用到 kernel 权值矩阵的正则化函数。
  • bias_regularizer: 运用到偏置向量的正则化函数。
  • activity_regularizer: 运用到层输出(它的激活值)的正则化函数 。
  • kernel_constraint: 运用到 kernel 权值矩阵的约束函数。
  • bias_constraint: 运用到偏置向量的约束函数。

输入尺寸

3D 张量 ,尺寸为 (batch_size, steps, input_dim)

输出尺寸

3D 张量,尺寸为 (batch_size, new_steps, filters)。 由于填充或窗口按步长滑动,steps 值可能已更改

输入输出尺寸的理解

一般在2D卷积中,输入尺寸很直观,为 (samples, rows, cols, channels),即为样本数,行数、列数和通道数四维信息,但是若以此推断,在Conv1D总两维信息就足够,中间却夹杂了一个steps,那这个steps如何去理解呢?

理解steps参数,我们应该跳出图像的思维,1D卷积通常施用在时序数据中,在时序数据的输入中:

  • batch_size: 输入的样本数
  • steps: 时间维度,个人认为可以理解成量化后的时间长度,也就是多少个时刻
  • input_dim: 每个时刻的特征数量

keras Conv1D 一维卷积的输入维度

报错情况

expected conv1d_1_input to have 3 dimensions, but Got array with shape (1, 56)

问题原因

维数不匹配

解决方法

数组的维数是(1,56),但神经网络维数与数组维数相反,应该使用(56,1)或(None,1)

同时神经网络的输入数据应改成三维,即reshape为(1,56,1)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Keras中Conv1D的使用及说明

本文链接: https://www.lsjlt.com/news/174977.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作