1. 程式人生 > >DL4J中文文件/模型/卷積

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的陣列,即裁剪深度、裁剪高度、裁剪寬度或裁剪左深、裁剪右深、裁剪左高、裁剪右高、裁剪左寬、裁剪右寬。