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)

【DL4J中文文档/模型/卷积】 按(深度、高度、宽度)顺序设置三维卷积的步长
  • 参数 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的数组,即裁剪深度、裁剪高度、裁剪宽度或裁剪左深、裁剪右深、裁剪左高、裁剪右高、裁剪左宽、裁剪右宽。

    推荐阅读