DL4J中文文档/模型/卷积

什么是卷积神经网络?

神经网络配置中的每一层表示隐藏单元的单元。当层堆叠在一起时,它们代表了一个深度神经网络。

可用的层


Convolution1D (一维卷积)

[源码]

一维卷积层。形状期望的输入激活[小批量,通道,序列长度]


Convolution2D(二维卷积)

[源码]

二维卷积层


Convolution3D(三维卷积)

[源码]

三维卷积层配置

hasBias

public boolean hasBias() 

一个可选的数据格式:“NDHWC”,“NCDHW”。默认为“NCDHW”。输入和输出数据的数据格式。该格式可以是“NCDHW”,数据存储顺序为: [batchSize, inputChannels, inputDepth, inputHeight, inputWidth]。或者,格式为“NDHWC”,数据按以下顺序存储:[batchSize、inputDepth、inputHeight、inputWidth、inputChannels]。

kernelSize

public Builder kernelSize(int... kernelSize) 

在深度、高度、宽度上设置三维卷积的内核大小

  • 参数 kernelSize 核大小
  • 返回三维卷积层构建器

stride

public Builder stride(int... stride) 

 按(深度、高度、宽度)顺序设置三维卷积的步长

  • 参数 stride 步长
  • 返回三维卷积层构建器

padding

public Builder padding(int... padding) 

按(深度、高度、宽度)顺序设置三维卷积的填充大小

  • 参数 padding 为填充
  • 返回三维卷积层构建器

dilation

public Builder dilation(int... dilation) 

按深度、高度、宽度设置三维卷积膨胀尺寸

  • 参数 dilation是膨胀尺寸 
  • 返回三维卷积层构建器

Deconvolution2D(二维反卷积)

[源码]

二维反卷积配置

反卷积也被称为转置卷积或分数阶卷积。在本质上,反卷积把常规的2D卷积与前向和反向传播作交换。

详见Matt Zeiler的论文: http://www.matthewzeiler.com/wp-content/uploads/2017/07/cvpr2010.pdf

有关卷积运算和形状的直观指南,请参见:https://arxiv.org/abs/1603.07285v1

hasBias

public boolean hasBias()

输入层中的二维反卷积层nIn是通道的数目nOut是在网络中使用的过滤器的数目,换句话说,是通道的数目。构建器指定过滤器/内核大小、步长和填充。池化层使用核大小。

convolutionMode

public Builder convolutionMode(ConvolutionMode convolutionMode) 

为卷积层设置卷积模式。详见 {- link ConvolutionMode} 

  • 参数 convolutionMode 是层郑卷积模式

kernelSize

public Builder kernelSize(int... kernelSize) 

卷积大小 行/列

  • 参数 kernelSize内核的高度和宽度
  • return

DepthwiseConvolution2D(深度二维卷积)

[源码]

二维深度卷积层结构。

执行通道卷积,分别在每个输入映射上操作。信道乘法器用于指定每个输入映射的输出数。这个卷积是用指定的内核大小、步幅和填充值进行的。

depthMultiplier

public Builder depthMultiplier(int depthMultiplier) 

为深度卷积设置通道乘法器

  • 参数depthMultiplier是整数值,对于每个输入我们以通道为步骤得到depthMultiplier输出。
  • 返回Builder

kernelSize

public Builder kernelSize(int... kernelSize) 

卷积大小 行/列

  • 参数kernelSize内核的高度和宽度

stride

public Builder stride(int... stride) 

行/列(高度/宽度)维长的卷积步幅

  • 参数  stride 是层的步幅

padding

public Builder padding(int... padding) 

行/列(高度/宽度)维度的卷积填充

  • 参数padding 是层的填充

SeparableConvolution2D (二维可分离卷积

[源码]

二维可分离卷积配置。

可分离卷积将一个正规卷积操作分成两个更简单的操作,这两个操作通常在计算上更有效。

可分离卷积的第一步是信道卷积,它分别在每个输入映射上操作。在这个步骤中,使用通道乘法器来指定每个输入映射的输出数。这个卷积是用指定的内核大小、步幅和填充值进行的。

第二步是逐点运算,其中通过使用1x1卷积,将通道式卷积的中间输出映射到所需的特征映射的数量。

链接这两个操作的结果将导致与标准二维卷积操作相同的形状的张量。

hasBias

public boolean hasBias()

输入层中的SeparableConvolution2D层的nIn是通道的数目,nOut是在网络中使用的过滤器的数目,换句话说,是通道的数目。构建器指定过滤器/内核大小、步长和填充。池化层使用核大小。

constrainPointWise

public Builder constrainPointWise(LayerConstraint... constraints) 

Set channels multiplier of channels-wise step in separable convolution 在可分离卷积中设置信道步骤的信道乘法器

  • 参数 depthMultiplier是整数值,在信道步骤中我们为每个输入映射获取depthMultipler 输出
  • 返回 Builder

kernelSize

public Builder kernelSize(int... kernelSize) 

卷积行/列的大小(高度/宽度)

  • 参数 kernelSize是核的高度和宽度

stride

public Builder stride(int... stride) 

卷积行/列(高度/宽度)的步幅

  • 参数 stride 核的步幅 (以高/宽 为维度)

padding

public Builder padding(int... padding) 

填充-行/列(高度/宽度)

  • 参数 padding 高/宽 为维度填充

Cropping1D (一维裁剪)

[源码]

一维卷积神经网络的裁剪层。允许为顶部/底部 分开裁剪。

getOutputType

public InputType getOutputType(int layerIndex, InputType inputType) 
  • 参数 cropTopBottom 应用于输入激活的顶部和底部的裁剪量

build

public Cropping1D build() 
  • 参数 cropping顶部/底部裁剪量(按顺序)。必须是长度为1或2的数组。

Cropping2D(二维裁剪)

[源码]

二维卷积神经网络的裁剪层。允许分开裁剪顶部/底部/左侧/右侧

getOutputType

public InputType getOutputType(int layerIndex, InputType inputType) 
  • 参数 cropTopBottom 应用于输入激活的顶部和底部的裁剪量
  • 参数 cropLeftRight 应用于输入激活的左右两侧的裁剪量

build

public Cropping2D build() 
  • 参数 cropping 顶部/底部/左侧/右侧裁剪量(按顺序排列)。必须是长度为4的数组。

Cropping3D

[源码]

三维卷积神经网络的裁剪层。允许为深度的上限和下限,高度和宽度维度进行单独裁剪。

getOutputType

public InputType getOutputType(int layerIndex, InputType inputType) 
  • 参数 cropDepth  应用于输入激活的两个深度边界的裁剪量
  • 参数 cropHeight 应用于输入激活的两个高度边界的裁剪量
  • 参数 cropWidth  应用于输入激活的两个宽度边界的裁剪量

build

public Cropping3D build() 
  • 参数 cropping 裁剪量必须是长度3或6的数组,即裁剪深度、裁剪高度、裁剪宽度或裁剪左深、裁剪右深、裁剪左高、裁剪右高、裁剪左宽、裁剪右宽。

猜你喜欢

转载自blog.csdn.net/bewithme/article/details/83749676