create_dl_layer_transposed_convolutionT_create_dl_layer_transposed_convolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutioncreate_dl_layer_transposed_convolution创建深度学习层转置卷积(算子)
名称
create_dl_layer_transposed_convolutionT_create_dl_layer_transposed_convolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutioncreate_dl_layer_transposed_convolution — 创建转置卷积层。
签名
void CreateDlLayerTransposedConvolution(const HTuple& DLLayerInput, const HTuple& LayerName, const HTuple& KernelSize, const HTuple& Stride, const HTuple& KernelDepth, const HTuple& Groups, const HTuple& Padding, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLLayerTransposedConvolution)
HDlLayer HDlLayer::CreateDlLayerTransposedConvolution(const HString& LayerName, Hlong KernelSize, Hlong Stride, Hlong KernelDepth, Hlong Groups, const HTuple& Padding, const HTuple& GenParamName, const HTuple& GenParamValue) const
HDlLayer HDlLayer::CreateDlLayerTransposedConvolution(const HString& LayerName, Hlong KernelSize, Hlong Stride, Hlong KernelDepth, Hlong Groups, const HString& Padding, const HString& GenParamName, const HString& GenParamValue) const
HDlLayer HDlLayer::CreateDlLayerTransposedConvolution(const char* LayerName, Hlong KernelSize, Hlong Stride, Hlong KernelDepth, Hlong Groups, const char* Padding, const char* GenParamName, const char* GenParamValue) const
HDlLayer HDlLayer::CreateDlLayerTransposedConvolution(const wchar_t* LayerName, Hlong KernelSize, Hlong Stride, Hlong KernelDepth, Hlong Groups, const wchar_t* Padding, const wchar_t* GenParamName, const wchar_t* GenParamValue) const
(
Windows only)
static void HOperatorSet.CreateDlLayerTransposedConvolution(HTuple DLLayerInput, HTuple layerName, HTuple kernelSize, HTuple stride, HTuple kernelDepth, HTuple groups, HTuple padding, HTuple genParamName, HTuple genParamValue, out HTuple DLLayerTransposedConvolution)
HDlLayer HDlLayer.CreateDlLayerTransposedConvolution(string layerName, int kernelSize, int stride, int kernelDepth, int groups, HTuple padding, HTuple genParamName, HTuple genParamValue)
HDlLayer HDlLayer.CreateDlLayerTransposedConvolution(string layerName, int kernelSize, int stride, int kernelDepth, int groups, string padding, string genParamName, string genParamValue)
def create_dl_layer_transposed_convolution(dllayer_input: HHandle, layer_name: str, kernel_size: int, stride: int, kernel_depth: int, groups: int, padding: MaybeSequence[Union[str, int]], gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle
描述
算子 create_dl_layer_transposed_convolutioncreate_dl_layer_transposed_convolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutioncreate_dl_layer_transposed_convolution 创建一个转置卷积层,其句柄通过
DLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutiondllayer_transposed_convolution 返回。
参数 DLLayerInputDLLayerInputDLLayerInputDLLayerInputDLLayerInputdllayer_input 确定输入层,并期望层句柄作为值。
参数 LayerNameLayerNameLayerNameLayerNamelayerNamelayer_name 用于设置单个层的名称。请注意,若使用 create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model 创建模型,则创建网络中的每个层必须具有唯一名称。
参数 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size 指定滤波核在 width 和 height 上的尺寸。目前仅支持二次核。
限制: 此值必须为长度为 1 的元组。
参数 StrideStrideStrideStridestridestride 决定滤波器在
row 和 column 方向上的偏移量。
限制: 此值必须为长度为 1 的元组。
参数 KernelDepthKernelDepthKernelDepthKernelDepthkernelDepthkernel_depth 定义输出特征图的深度。
限制: 此值必须为长度为 1 的元组。
参数 GroupsGroupsGroupsGroupsgroupsgroups 决定滤波器组的数量。目前仅支持单个滤波器组。
限制: 此值必须为长度为 1 的元组。
参数 PaddingPaddingPaddingPaddingpaddingpadding 会将值为 0 的
像素有效地附加到输入的每个边界上。此设置确保具有相同
KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size、StrideStrideStrideStridestridestride 和 PaddingPaddingPaddingPaddingpaddingpadding 值的卷积层与转置卷积层在输入输出形状上呈互逆关系。支持的 PaddingPaddingPaddingPaddingpaddingpadding 值包括:
支持以下泛型参数 GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 及其对应值 GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value:
- 'bias_term'"bias_term""bias_term""bias_term""bias_term""bias_term":
-
确定该层是否包含偏置项。
默认值: '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
- 'output_padding'"output_padding""output_padding""output_padding""output_padding""output_padding":
-
当 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size 和 StrideStrideStrideStridestridestride 大于 1时,可用于解决输出形状的歧义问题。如上文参数
PaddingPaddingPaddingPaddingpaddingpadding 的描述所述,对于具有相同 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size、StrideStrideStrideStridestridestride 和 PaddingPaddingPaddingPaddingpaddingpadding(以及膨胀)设置的输入与输出形状,转置卷积层可视为卷积层的逆运算。然而卷积层可将多种形状映射至相同输出空间维度。例如当 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size 为 3、PaddingPaddingPaddingPaddingpaddingpadding 为 1、StrideStrideStrideStridestridestride 为 2 时,空间维度 (H, W) = '(4, 4)'"(4, 4)""(4, 4)""(4, 4)""(4, 4)""(4, 4)" 与 (H, W) = '(3, 3)'"(3, 3)""(3, 3)""(3, 3)""(3, 3)""(3, 3)"
的输入均会被映射至 (H, W) = '(2, 2)'"(2, 2)""(2, 2)""(2, 2)""(2, 2)""(2, 2)" 的输出形状。若要通过转置卷积(保持相同 KernelSizeKernelSizeKernelSizeKernelSizekernelSizekernel_size、StrideStrideStrideStridestridestride 和 PaddingPaddingPaddingPaddingpaddingpadding)恢复为 '(4, 4)'"(4, 4)""(4, 4)""(4, 4)""(4, 4)""(4, 4)",则需将
'output_padding'"output_padding""output_padding""output_padding""output_padding""output_padding" 设为 1。
'output_padding'"output_padding""output_padding""output_padding""output_padding""output_padding" 不得大于下边和右边
PaddingPaddingPaddingPaddingpaddingpadding 且仅当
StrideStrideStrideStridestridestride 大于 1 时才能设置为大于 0 。
默认值: 0
- 'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler":
-
定义权重初始化的模式。有关此参数及其取值的详细说明,请参阅 create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution。
值列表: 'xavier'"xavier""xavier""xavier""xavier""xavier", 'msra'"msra""msra""msra""msra""msra",
'const'"const""const""const""const""const"
默认值: '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":
-
指定常量权重初始化值。有关此参数及其取值的详细说明,请参阅 create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution。
默认值: 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" 的取值范围。有关此参数及其取值的详细说明,请参阅 create_dl_layer_convolutioncreate_dl_layer_convolutionCreateDlLayerConvolutionCreateDlLayerConvolutionCreateDlLayerConvolutioncreate_dl_layer_convolution。
值列表: '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", 常量值 (与
'weight_filler'"weight_filler""weight_filler""weight_filler""weight_filler""weight_filler" = 'msra'"msra""msra""msra""msra""msra" 组合使用)
默认值: 'norm_in'"norm_in""norm_in""norm_in""norm_in""norm_in"
使用
create_dl_layer_transposed_convolutioncreate_dl_layer_transposed_convolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutionCreateDlLayerTransposedConvolutioncreate_dl_layer_transposed_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_param 或 get_dl_layer_paramget_dl_layer_paramGetDlLayerParamGetDlLayerParamGetDlLayerParamget_dl_layer_param 检索的参数。请注意,算子 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_param
需基于 create_dl_modelcreate_dl_modelCreateDlModelCreateDlModelCreateDlModelcreate_dl_model 创建的模型。
|
泛型层参数 |
设置 |
获取 |
|
'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" |
|
|
|
'num_trainable_params'"num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params""num_trainable_params" |
|
|
|
'output_padding'"output_padding""output_padding""output_padding""output_padding""output_padding" |
|
|
|
'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 → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
滤波核的宽度和高度。
默认值:
3
StrideStrideStrideStridestridestride (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
滤波器偏移量。
默认值:
1
KernelDepthKernelDepthKernelDepthKernelDepthkernelDepthkernel_depth (输入控制) 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"
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (输入控制) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
泛型输入参数名称。
默认值:
[]
值列表:
'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", 'output_padding'"output_padding""output_padding""output_padding""output_padding""output_padding", '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", '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"
DLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutionDLLayerTransposedConvolutiondllayer_transposed_convolution (输出控制) dl_layer → HDlLayer, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
转置卷积层。
模块
深度学习训练