返回顶部
首页 > 资讯 > 精选 >keras中卷积层Conv2D怎么使用
  • 610
分享到

keras中卷积层Conv2D怎么使用

2023-07-05 05:07:52 610人浏览 泡泡鱼
摘要

本篇内容介绍了“keras中卷积层Conv2D怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!keras中卷积层Conv2D的学习ke

本篇内容介绍了“keras中卷积层Conv2D怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    keras中卷积层Conv2D的学习

    keras.layers.convolutional.Conv2D(filters,kernel_size,strides(1,1),                                   padding='valid',                                  data_fORMat=None,                                  dilation_rate=(1,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)

    此操作将二维向量进行卷积,当使用该层作为第一层时,应提供input_shape参数。

    参数

    • filters:卷积核的数目(即输出的维度)。

    • kernel_size:单个整数或由两个整数构成的list/tuple,卷积核的宽度和长度。如为单个整数,则表示在各个空间维度的相同长度。

    • strides:单个整数或由两个整数构成的list/tuple,为卷积的步长。如为单个整数,则表示在各个空间维度的相同步长。任何不为1的strides均与任何不为1的dilation_rata均不兼容。

    • padding:补0策略,为“valid”, “same”。“valid”代表只进行有效的卷积,即对边界数据不处理。“same”代表保留边界处的卷积结果,通常会导致输出shape与输入shape相同。

    • activation:激活函数,为预定义的激活函数名(参考激活函数),或逐元素(element-wise)的Theano函数。如果不指定该参数,将不会使用任何激活函数(即使用线性激活函数:a(x)=x)。

    • dilation_rate:单个整数或由两个个整数构成的list/tuple,指定dilated convolution中的膨胀比例。任何不为1的dilation_rata均与任何不为1的strides均不兼容。

    • data_format字符串,“channels_first”或“channels_last”之一,代表图像的通道维的位置。该参数是Keras 1.x中的image_dim_ordering,“channels_last”对应原本的“tf”,“channels_first”对应原本的“th”。以128x128的RGB图像为例,“channels_first”应将数据组织为(3,128,128),而“channels_last”应将数据组织为(128,128,3)。该参数的默认值是~/.keras/keras.JSON中设置的值,若从未设置过,则为“channels_last”。

    • use_bias:布尔值,是否使用偏置项。

    • kernel_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。

    • bias_initializer:权值初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。

    • kernel_regularizer:施加在权重上的正则项,为Regularizer对象。

    • bias_regularizer:施加在偏置向量上的正则项,为Regularizer对象。

    • activity_regularizer:施加在输出上的正则项,为Regularizer对象。

    • kernel_constraints:施加在权重上的约束项,为Constraints对象。

    • bias_constraints:施加在偏置上的约束项,为Constraints对象。

    keras中conv2d,conv2dTranspose的Padding详解

    conv2d和conv2dTranspose属于最常用的层,但在keras的实现中关于padding的部分有点模糊,周末趁着空闲做了一些尝试,来实验padding的valid和same参数在实际过程中如何操作的。

    conv2D演示代码

    conv2D部分

    v_input = np.ones([1,5,5,1])kernel = np.ones([3,3])stride = 1model = Sequential()model.add(Conv2D(1, kernel_size=(3, 3),                 activation='relu',                 padding="valid" ,  # "same"                 strides = 1,                  # dilation_rate = 1,                 kernel_initializer = keras.initializers.Ones(),                 input_shape=v_input.shape[1:]))

    其中stride可以尝试多组测试

    padding在valid 和 same 间切换测试

    Conv2d演示结论

    padding 为valid则不进行填充, 根据stride的滑动大小来做平移, 则:

    output_shape = ceil( (input_shape - (kernel_size - 1)) / stride )

    如果是same模式则 会进行左右上下的补齐, 其中左,上依次补齐 flood (kernel_size -1 ) / 2 , 右下补齐ceil (( kernel_size - 1) /2 ) ,补齐后进行的操作就是类似valid下的滑动卷积

    output_shape = ceil (input_shape / stride)
    • ceil表示上取整 

    • flood表示下取整

    CONV2Dtranspose演示代码

    v_input = np.ones([1,5,5,1])kernel = np.ones([3,3])stride = 1model = Sequential()model.add(Conv2DTranspose(1, kernel_size=(3, 3),                 activation='relu',                 padding="valid" ,  # "same"                 strides = 1,                  # dilation_rate = 1,                 kernel_initializer = keras.initializers.Ones(),                 input_shape=v_input.shape[1:]))

    如果padding的设置为valid则,保持最小相交的原则上下左右均填充kernel_size大小,如果stride设置为非1,起实际的作用和dilation_rate一样均是在矩阵中进行填充(实际滑动是永远都是1) 具体填充出来的矩阵大小是 (input_size -1) * stride + 1 + 2 * (kernel_size - 1)

    之后就是按照这个矩阵做着类似conv2d valid的卷积 则:

    output_shape = (input_size -1) * stride + 1 + 2 * (kernel_size - 1) - (kernel_size -1) = (input_size - 1) * stride + kernel_size

    keras中卷积层Conv2D怎么使用

    如果padding为same的话则output_shape = input_shape * stride

    其中原始矩阵左上padding = ceil (( kernel_size ) /2 )  右下补齐 flood (( kernel_size ) /2 )  这里conv2d

    “keras中卷积层Conv2D怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: keras中卷积层Conv2D怎么使用

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

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

    猜你喜欢
    • keras中卷积层Conv2D怎么使用
      本篇内容介绍了“keras中卷积层Conv2D怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!keras中卷积层Conv2D的学习ke...
      99+
      2023-07-05
    • 关于keras中卷积层Conv2D的学习记录
      目录keras中卷积层Conv2D的学习参数keras中conv2d,conv2dTranspose的Padding详解conv2D演示代码Conv2d演示结论CONV2Dtrans...
      99+
      2023-02-21
      keras卷积层Conv2D keras卷积层 卷积层Conv2D
    • keras怎么自定义卷积层
      要自定义卷积层,可以使用Keras的Lambda层来实现。Lambda层允许我们定义任意的自定义函数,这样就可以实现自定义卷积操作。...
      99+
      2024-04-02
    • CNN卷积函数Conv2D()各参数怎么使用
      本篇内容主要讲解“CNN卷积函数Conv2D()各参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CNN卷积函数Conv2D()各参数怎么使用”吧!首先我们放出tf2.0关于tf.ke...
      99+
      2023-07-05
    • Keras中如何使用卷积神经网络
      使用卷积神经网络(CNN)在Keras中非常简单。以下是一个简单的例子,演示如何构建一个简单的CNN模型: from keras.m...
      99+
      2024-04-02
    • keras怎么搭建卷积神经网络
      在Keras中搭建卷积神经网络(CNN)可以通过Sequential模型或Functional API来实现。下面分别介绍这两种方法...
      99+
      2024-04-02
    • Python卷积函数怎么使用
      卷积函数python提供了多种卷积方案,相比之下,定义在ndimage中的卷积函数,在功能上比numpy和signal中的卷积要稍微复杂一些,这点仅从输入参数的多少就可略窥一二numpy.convolve(a, v, mode='f...
      99+
      2023-05-20
      Python
    • Keras中如何使用Embedding层
      在Keras中使用Embedding层,可以通过以下步骤实现: 导入必要的库: from keras.models import...
      99+
      2024-03-12
      Keras
    • Lasagne中怎么实现卷积神经网络
      Lasagne是一个轻量级的神经网络库,可以很容易地实现卷积神经网络。 以下是一个简单的示例,展示如何在Lasagne中实现一个简单...
      99+
      2024-04-02
    • 怎么用TensorFlow实现卷积神经网络
      这篇文章主要介绍“怎么用TensorFlow实现卷积神经网络”,在日常操作中,相信很多人在怎么用TensorFlow实现卷积神经网络问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用TensorFlow实现...
      99+
      2023-06-25
    • PyTorch中的卷积神经网络怎么实现
      在PyTorch中,可以使用torch.nn模块中的Conv2d类来实现卷积神经网络。以下是一个简单的示例,展示如何在PyTorch...
      99+
      2024-03-05
      PyTorch
    • Keras中的Dropout层是用来做什么的
      Keras中的Dropout层用于在训练过程中随机丢弃部分神经元的输出,以防止过拟合。通过在每次训练迭代中丢弃一定比例的神经元,Dr...
      99+
      2024-03-14
      Keras
    • Keras中怎么使用正则化技术
      在Keras中使用正则化技术可以通过在层中设置kernel_regularizer参数来实现。具体步骤如下: 导入所需的库: f...
      99+
      2024-03-07
      Keras
    • Keras函数式API怎么使用
      这篇文章主要介绍了Keras函数式API怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Keras函数式API怎么使用文章都会有所收获,下面我们一起来看看吧。多层感知器(Multilayer Percep...
      99+
      2023-07-05
    • python中怎么使用Keras进行简单分类
      本篇内容介绍了“python中怎么使用Keras进行简单分类”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Keras中分类的重要函数1、np...
      99+
      2023-06-30
    • python中怎么使用Keras进行回归运算
      这篇文章主要介绍“python中怎么使用Keras进行回归运算”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中怎么使用Keras进行回归运算”文章能帮助大家解决问题。什么是KerasKe...
      99+
      2023-06-30
    • Docker数据卷怎么使用
      本文小编为大家详细介绍“Docker数据卷怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Docker数据卷怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一,数据卷的使用有时候需要使用数据库,但是...
      99+
      2023-06-27
    • 怎么在docker中使用volume命令删除卷
      本篇文章为大家展示了怎么在docker中使用volume命令删除卷,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。prune要使用此命令,客户端和守护程序API版本都必须至少为1.25。在客户端上使用...
      99+
      2023-06-14
    • Centos7怎么使用SSM管理LVM卷
      本篇内容主要讲解“Centos7怎么使用SSM管理LVM卷”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Centos7怎么使用SSM管理LVM卷”吧!ssm全称Spring+SpringMVC+...
      99+
      2023-06-27
    • kubernetes Volume存储卷configMap怎么使用
      这篇文章主要介绍了kubernetes Volume存储卷configMap怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇kubernetes Volume存储卷configMap怎...
      99+
      2023-06-30
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作