create_dl_layer_convolutionT_create_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution创建深度学习层卷积(算子)

名称

create_dl_layer_convolutionT_create_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution — 创建卷积层。

签名

create_dl_layer_convolution( : : DLLayerInput, LayerName, KernelSize, Dilation, Stride, NumKernel, Groups, Padding, Activation, GenParamName, GenParamValue : DLLayerConvolution)

Herror T_create_dl_layer_convolution(const Htuple DLLayerInput, const Htuple LayerName, const Htuple KernelSize, const Htuple Dilation, const Htuple Stride, const Htuple NumKernel, const Htuple Groups, const Htuple Padding, const Htuple Activation, const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLLayerConvolution)

void CreateDlLayerConvolution(const HTuple& DLLayerInput, const HTuple& LayerName, const HTuple& KernelSize, const HTuple& Dilation, const HTuple& Stride, const HTuple& NumKernel, const HTuple& Groups, const HTuple& Padding, const HTuple& Activation, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerConvolution)

HDlLayer HDlLayer::CreateDlLayerConvolution(const HString& LayerName, const HTuple& KernelSize, const HTuple& Dilation, const HTuple& Stride, Hlong NumKernel, Hlong Groups, const HTuple& Padding, const HString& Activation, const HTuple& GenParamName, const HTuple& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerConvolution(const HString& LayerName, Hlong KernelSize, Hlong Dilation, Hlong Stride, Hlong NumKernel, Hlong Groups, const HString& Padding, const HString& Activation, const HString& GenParamName, const HString& GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerConvolution(const char* LayerName, Hlong KernelSize, Hlong Dilation, Hlong Stride, Hlong NumKernel, Hlong Groups, const char* Padding, const char* Activation, const char* GenParamName, const char* GenParamValue) const

HDlLayer HDlLayer::CreateDlLayerConvolution(const wchar_t* LayerName, Hlong KernelSize, Hlong Dilation, Hlong Stride, Hlong NumKernel, Hlong Groups, const wchar_t* Padding, const wchar_t* Activation, const wchar_t* GenParamName, const wchar_t* GenParamValue) const   ( Windows only)

static void HOperatorSet.CreateDlLayerConvolution(HTuple DLLayerInput, HTuple layerName, HTuple kernelSize, HTuple dilation, HTuple stride, HTuple numKernel, HTuple groups, HTuple padding, HTuple activation, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerConvolution)

HDlLayer HDlLayer.CreateDlLayerConvolution(string layerName, HTuple kernelSize, HTuple dilation, HTuple stride, int numKernel, int groups, HTuple padding, string activation, HTuple genParamName, HTuple genParamValue)

HDlLayer HDlLayer.CreateDlLayerConvolution(string layerName, int kernelSize, int dilation, int stride, int numKernel, int groups, string padding, string activation, string genParamName, string genParamValue)

def create_dl_layer_convolution(dllayer_input: HHandle, layer_name: str, kernel_size: MaybeSequence[int], dilation: MaybeSequence[int], stride: MaybeSequence[int], num_kernel: int, groups: int, padding: MaybeSequence[Union[str, int]], activation: str, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

描述

算子 create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution 创建一个卷积层,该层包含 NumKernelNumKernelNumKernelNumKernelnumKernelnum_kernel 个卷积核,这些卷积核属于 GroupsGroupsGroupsGroupsgroupsgroups 个滤波组,其句柄由 DLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutiondllayer_convolution 返回。

参数 DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input 确定输入层,并期望该层句柄作为值。

参数 LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name 用于设置单个层的名称。请注意,若使用 create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model 创建模型,则创建网络中的每个层必须具有唯一名称。

参数 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size 指定滤波核在 widthheight 维度上的尺寸。

参数 DilationDilationDilationDilationdilationdilation 指定滤波器在 widthheight 维度上的膨胀因子。

参数 StrideStrideStrideStridestridestride 指定滤波器的平移方式。

KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_sizeDilationDilationDilationDilationdilationdilationStrideStrideStrideStridestridestride 的取值方式可设置为

参数 GroupsGroupsGroupsGroupsgroupsgroups 指定滤波器组的数量。

参数 NumKernelNumKernelNumKernelNumKernelnumKernelnum_kernel 指定滤波核的数量。 NumKernelNumKernelNumKernelNumKernelnumKernelnum_kernel 必须是 GroupsGroupsGroupsGroupsgroupsgroups 的倍数。

参数 PaddingPaddingPaddingPaddingpaddingpadding 决定填充区域,即在处理后的输入图像边界附加多少个值为 0 的像素。支持的取值为:

卷积层的输出尺寸由以下公式给出 因此我们使用以下参数: :输出宽度/高度, :输入宽度/高度, :添加到输入图像左/上的像素数,以及 :添加到输入图像右/下的像素数。

参数 ActivationActivationActivationActivationactivationactivation 用于确定卷积操作后是否执行激活操作以优化运行时性能。支持以下取值:

有关卷积层的更一般性信息,请参阅 “分类解决方案指南”;有关该层运算的更详细信息,请参阅下文所列参考文献。

以下泛型参数 GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 及其对应值 GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value 受支持:

'bias_filler'"bias_filler""bias_filler""bias_filler""bias_filler""bias_filler"

参见 'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler" 了解数值说明。

值列表: 'xavier'"xavier""xavier""xavier""xavier""xavier", 'msra'"msra""msra""msra""msra""msra", 'const'"const""const""const""const""const"

默认值: 'const'"const""const""const""const""const"

'bias_filler_variance_norm'"bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm"

参见 'weight_filler_variance_norm'"weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm" 了解数值的说明。

值列表: 'norm_in'"norm_in""norm_in""norm_in""norm_in""norm_in", 'norm_out'"norm_out""norm_out""norm_out""norm_out""norm_out", 'norm_average'"norm_average""norm_average""norm_average""norm_average""norm_average"

默认值: 'norm_out'"norm_out""norm_out""norm_out""norm_out""norm_out"

'bias_filler_const_val'"bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val"

'bias_filler'"bias_filler""bias_filler""bias_filler""bias_filler""bias_filler" 设置为 'const'"const""const""const""const""const" 时,指定常数偏置项的初始化值。

限制: 忽略 'bias_filler'"bias_filler""bias_filler""bias_filler""bias_filler""bias_filler" 的其他值。

默认值: 0

'bias_term'"bias_term""bias_term""bias_term""bias_term""bias_term"

确定创建的卷积层是否包含偏置项('true'"true""true""true""true""true")或不包含偏置项('false'"false""false""false""false""false")。

默认值: 'true'"true""true""true""true""true"

'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output""is_inference_output"

确定 apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model 是否将此层的输出包含在字典 DLResultBatchDLResultBatchDLResultBatchDLResultBatchDLResultBatchdlresult_batch 中,即使未在 OutputsOutputsOutputsOutputsoutputsoutputs 中指定此层('true'"true""true""true""true""true")或不包含('false'"false""false""false""false""false")。

默认值: 'false'"false""false""false""false""false"

'learning_rate_multiplier'"learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier"

训练期间用于该层的学习率乘数。若将 'learning_rate_multiplier'"learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier" 设为 0.0,则训练时将跳过该层。

默认值: 1.0

'learning_rate_multiplier_bias'"learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias"

偏置项的学习率乘数。偏置项的总学习率是 'learning_rate_multiplier_bias'"learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias"'learning_rate_multiplier'"learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier" 的乘积。

默认值: 1.0

'upper_bound'"upper_bound""upper_bound""upper_bound""upper_bound""upper_bound"

浮点数值,用于定义 ReLU 的上界。若要取消设置上界,请将 'upper_bound'"upper_bound""upper_bound""upper_bound""upper_bound""upper_bound" 设为空元组。

默认值: []

'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler"

此参数定义权重的初始化模式。支持以下取值:

  • 'const'"const""const""const""const""const":权重填充为常量值。

  • 'msra'"msra""msra""msra""msra""msra":权重从高斯分布中抽取。

  • 'xavier'"xavier""xavier""xavier""xavier""xavier":权重从均匀分布中抽取。

默认值: 'xavier'"xavier""xavier""xavier""xavier""xavier"

'weight_filler_const_val'"weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val"

指定常量权重初始化值。

限制: 仅当 'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler" = 'const'"const""const""const""const""const" 时适用。

默认值: 0.5

'weight_filler_variance_norm'"weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm"

此参数决定 'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler" 的取值范围。支持以下取值:

  • 'norm_average'"norm_average""norm_average""norm_average""norm_average""norm_average":值基于输入和输出尺寸的平均值

  • 'norm_in'"norm_in""norm_in""norm_in""norm_in""norm_in":值基于输入尺寸

  • 'norm_out'"norm_out""norm_out""norm_out""norm_out""norm_out":值基于输出尺寸。

默认值: 'norm_in'"norm_in""norm_in""norm_in""norm_in""norm_in"

使用 create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution 算子创建的层,其特定参数可通过其他算子进行设置与检索。下表概述了可通过 set_dl_model_layer_paramset_dl_model_layer_paramSetDlModelLayerParamSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_param 设置的参数,以及可通过 get_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_paramget_dl_layer_paramget_dl_layer_paramGetDlLayerParamGetDlLayerParamGetDlLayerParamget_dl_layer_param 检索的参数。请注意,算子 set_dl_model_layer_paramset_dl_model_layer_paramSetDlModelLayerParamSetDlModelLayerParamSetDlModelLayerParamset_dl_model_layer_paramget_dl_model_layer_paramget_dl_model_layer_paramGetDlModelLayerParamGetDlModelLayerParamGetDlModelLayerParamget_dl_model_layer_param 需基于 create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model 创建的模型。

层参数 设置 获取
'activation_mode'"activation_mode""activation_mode""activation_mode""activation_mode""activation_mode" (ActivationActivationActivationActivationactivationactivation)
'dilation'"dilation""dilation""dilation""dilation""dilation" (DilationDilationDilationDilationdilationdilation)
'groups'"groups""groups""groups""groups""groups" (GroupsGroupsGroupsGroupsgroupsgroups)
'input_depth'"input_depth""input_depth""input_depth""input_depth""input_depth"
'input_layer'"input_layer""input_layer""input_layer""input_layer""input_layer" (DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input)
'kernel_size'"kernel_size""kernel_size""kernel_size""kernel_size""kernel_size" (KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size)
'name'"name""name""name""name""name" (LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name)
'num_kernels'"num_kernels""num_kernels""num_kernels""num_kernels""num_kernels" (NumKernelNumKernelNumKernelNumKernelnumKernelnum_kernel)
'output_layer'"output_layer""output_layer""output_layer""output_layer""output_layer" (DLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutiondllayer_convolution)
'padding'"padding""padding""padding""padding""padding" (PaddingPaddingPaddingPaddingpaddingpadding)
'padding_type'"padding_type""padding_type""padding_type""padding_type""padding_type" (PaddingPaddingPaddingPaddingpaddingpadding)
'shape'"shape""shape""shape""shape""shape"
'stride'"stride""stride""stride""stride""stride" (StrideStrideStrideStridestridestride)
'type'"type""type""type""type""type"
泛型层参数 设置 获取
'bias_filler'"bias_filler""bias_filler""bias_filler""bias_filler""bias_filler"
'bias_filler_const_val'"bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val"
'bias_filler_variance_norm'"bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm"
'bias_term'"bias_term""bias_term""bias_term""bias_term""bias_term"
'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output""is_inference_output"
'learning_rate_multiplier'"learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier"
'learning_rate_multiplier_bias'"learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias"
'num_trainable_params'"num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params"
'upper_bound'"upper_bound""upper_bound""upper_bound""upper_bound""upper_bound"
'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler"
'weight_filler_const_val'"weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val"
'weight_filler_variance_norm'"weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm"

执行信息

参数

DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input (输入控制)  dl_layer HDlLayer, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

输入层。

LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

输出层的名称。

KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size (输入控制)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

滤波核的宽度和高度。

默认值: 3

DilationDilationDilationDilationdilationdilation (输入控制)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

滤波器在宽度和高度方向的膨胀量。

默认值: 1

StrideStrideStrideStridestridestride (输入控制)  number(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

滤波器在宽度和高度方向的偏移量。

默认值: 1

NumKernelNumKernelNumKernelNumKernelnumKernelnum_kernel (输入控制)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

滤波核的数量。

默认值: 64

GroupsGroupsGroupsGroupsgroupsgroups (输入控制)  number HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

滤波器组的数量。

默认值: 1

PaddingPaddingPaddingPaddingpaddingpadding (输入控制)  number(-array) HTupleMaybeSequence[Union[str, int]]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

填充类型或特定填充尺寸。

默认值: 'none' "none" "none" "none" "none" "none"

值列表: [all], [width,height], [left,right,top,bottom], 'half_kernel_size'"half_kernel_size""half_kernel_size""half_kernel_size""half_kernel_size""half_kernel_size", 'none'"none""none""none""none""none"

建议值: 'none'"none""none""none""none""none", 'half_kernel_size'"half_kernel_size""half_kernel_size""half_kernel_size""half_kernel_size""half_kernel_size"

ActivationActivationActivationActivationactivationactivation (输入控制)  number HTuplestrHTupleHtuple (string) (string) (HString) (char*)

启用可选的 ReLU 或 sigmoid 激活函数。

默认值: 'none' "none" "none" "none" "none" "none"

值列表: 'none'"none""none""none""none""none", 'relu'"relu""relu""relu""relu""relu", 'sigmoid'"sigmoid""sigmoid""sigmoid""sigmoid""sigmoid"

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (输入控制)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

泛型输入参数名称。

默认值: []

值列表: 'bias_filler'"bias_filler""bias_filler""bias_filler""bias_filler""bias_filler", 'bias_filler_const_val'"bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val""bias_filler_const_val", 'bias_filler_variance_norm'"bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm""bias_filler_variance_norm", 'bias_term'"bias_term""bias_term""bias_term""bias_term""bias_term", 'is_inference_output'"is_inference_output""is_inference_output""is_inference_output""is_inference_output""is_inference_output", 'learning_rate_multiplier'"learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier""learning_rate_multiplier", 'learning_rate_multiplier_bias'"learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias""learning_rate_multiplier_bias", 'upper_bound'"upper_bound""upper_bound""upper_bound""upper_bound""upper_bound", 'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler", 'weight_filler_const_val'"weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val""weight_filler_const_val", 'weight_filler_variance_norm'"weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm""weight_filler_variance_norm"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (输入控制)  attribute.value(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

泛型输入参数值。

默认值: []

建议值: 'xavier'"xavier""xavier""xavier""xavier""xavier", 'msra'"msra""msra""msra""msra""msra", 'const'"const""const""const""const""const", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'bilinear'"bilinear""bilinear""bilinear""bilinear""bilinear", 'norm_in'"norm_in""norm_in""norm_in""norm_in""norm_in", 'norm_out'"norm_out""norm_out""norm_out""norm_out""norm_out", 'norm_average'"norm_average""norm_average""norm_average""norm_average""norm_average", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 1.0, 0.9, 0.0

DLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutionDLLayerConvolutiondllayer_convolution (输出控制)  dl_layer HDlLayer, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

卷积层。

参考文献

V. Dumoulin, F. Visin: "A guide to convolution arithmetic for deep learning", 2018, http://arxiv.org/abs/1603.07285

模块

深度学习训练