torch.nn

若API未标明支持情况,则代表该API的支持情况待验证。

API名称

是否支持

限制与说明

torch.nn.parameter.Parameter

是

  

torch.nn.parameter.UninitializedParameter

是

  

torch.nn.parameter.UninitializedBuffer

是

  

torch.nn.Module

是

  

torch.nn.Module.add_module

是

  

torch.nn.Module.apply

是

  

torch.nn.Module.bfloat16

是

  

torch.nn.Module.buffers

是

  

torch.nn.Module.children

是

  

torch.nn.Module.cpu

是

  

torch.nn.Module.cuda

是

  

torch.nn.Module.double

是

  

torch.nn.Module.eval

是

  

torch.nn.Module.extra_repr

是

  

torch.nn.Module.float

是

  

torch.nn.Module.forward

是

  

torch.nn.Module.get_buffer

是

  

torch.nn.Module.get_extra_state

是

  

torch.nn.Module.get_parameter

是

  

torch.nn.Module.get_submodule

是

  

torch.nn.Module.half

是

  

torch.nn.Module.ipu

否

  

torch.nn.Module.load_state_dict

是

  

torch.nn.Module.modules

是

  

torch.nn.Module.named_buffers

     

torch.nn.Module.named_children

是

  

torch.nn.Module.named_modules

是

  

torch.nn.Module.named_parameters

     

torch.nn.Module.parameters

是

  

torch.nn.Module.register_backward_hook

是

  

torch.nn.Module.register_buffer

是

  

torch.nn.Module.register_forward_hook

     

torch.nn.Module.register_forward_pre_hook

     

torch.nn.Module.register_full_backward_hook

     

torch.nn.Module.register_full_backward_pre_hook

否

  

torch.nn.Module.register_load_state_dict_post_hook

否

  

torch.nn.Module.register_module

是

  

torch.nn.Module.register_parameter

是

  

torch.nn.Module.register_state_dict_pre_hook

否

  

torch.nn.Module.requires_grad_

是

  

torch.nn.Module.set_extra_state

是

  

torch.nn.Module.share_memory

是

  

torch.nn.Module.state_dict

是

  

torch.nn.Module.to

是

当前NPU设备不支持除format_contiguous外的其他memory_format1

torch.nn.Module.to_empty

是

  

torch.nn.Module.train

是

  

torch.nn.Module.type

是

  

torch.nn.Module.xpu

否

  

torch.nn.Module.zero_grad

     

torch.nn.Sequential

是

  

torch.nn.Sequential.append

是

  

torch.nn.ModuleList

是

  

torch.nn.ModuleList.append

是

  

torch.nn.ModuleList.extend

是

  

torch.nn.ModuleList.insert

是

  

torch.nn.ModuleDict

是

  

torch.nn.ModuleDict.clear

是

  

torch.nn.ModuleDict.items

是

  

torch.nn.ModuleDict.keys

是

  

torch.nn.ModuleDict.pop

是

  

torch.nn.ModuleDict.update

是

  

torch.nn.ModuleDict.values

是

  

torch.nn.ParameterList

     

torch.nn.ParameterList.append

     

torch.nn.ParameterList.extend

     

torch.nn.ParameterDict

是

  

torch.nn.ParameterDict.clear

是

  

torch.nn.ParameterDict.copy

是

  

torch.nn.ParameterDict.fromkeys

是

  

torch.nn.ParameterDict.get

是

  

torch.nn.ParameterDict.items

是

  

torch.nn.ParameterDict.keys

是

  

torch.nn.ParameterDict.pop

是

  

torch.nn.ParameterDict.popitem

是

  

torch.nn.ParameterDict.setdefault

是

  

torch.nn.ParameterDict.update

是

  

torch.nn.ParameterDict.values

是

  

torch.nn.modules.module.register_module_forward_pre_hook

是

  

torch.nn.modules.module.register_module_forward_hook

是

  

torch.nn.modules.module.register_module_backward_hook

是

  

torch.nn.modules.module.register_module_full_backward_hook

是

  

torch.nn.Conv1d

是

  

torch.nn.Conv2d

是

  

torch.nn.Conv3d

否

  

torch.nn.ConvTranspose1d

是

只支持float16

torch.nn.ConvTranspose2d

是

  

torch.nn.ConvTranspose3d

否

  

torch.nn.LazyConv1d

是

  

torch.nn.LazyConv2d

是

  

torch.nn.LazyConv3d

否

  

torch.nn.LazyConvTranspose1d

是

  

torch.nn.LazyConvTranspose2d

是

  

torch.nn.LazyConvTranspose3d

是

  

torch.nn.Unfold

是

  

torch.nn.Fold

是

支持fp16,fp32

torch.nn.MaxPool1d

是

  

torch.nn.MaxPool2d

是

只支持dialtion=1的场景

torch.nn.MaxPool3d

是

  

torch.nn.MaxUnpool1d

是

  

torch.nn.MaxUnpool2d

是

  

torch.nn.MaxUnpool3d

是

  

torch.nn.AvgPool1d

否

  

torch.nn.AvgPool2d

否

  

torch.nn.AvgPool3d

否

  

torch.nn.FractionalMaxPool2d

否

  

torch.nn.FractionalMaxPool3d

否

  

torch.nn.LPPool1d

否

  

torch.nn.LPPool2d

否

  

torch.nn.AdaptiveMaxPool1d

     

torch.nn.AdaptiveMaxPool2d

是

  

torch.nn.AdaptiveMaxPool3d

     

torch.nn.AdaptiveAvgPool1d

是

只支持float16,float32

torch.nn.AdaptiveAvgPool2d

是

只支持float16,float32

torch.nn.AdaptiveAvgPool3d

是

仅支持D=1 && H=1 && W=1

torch.nn.ReflectionPad1d

是

  

torch.nn.ReflectionPad2d

否

  

torch.nn.ReflectionPad3d

否

  

torch.nn.ReplicationPad1d

是

  

torch.nn.ReplicationPad2d

否

  

torch.nn.ReplicationPad3d

否

可以走CPU实现

torch.nn.ZeroPad2d

是

  

torch.nn.ConstantPad1d

是

在输入x为六维以上时可能会出现性能下降问题。

torch.nn.ConstantPad2d

是

在输入x为六维以上时可能会出现性能下降问题。

torch.nn.ConstantPad3d

否

在输入x为六维以上时可能会出现性能下降问题。

torch.nn.ELU

是

  

torch.nn.Hardshrink

是

  

torch.nn.Hardsigmoid

是

  

torch.nn.Hardtanh

是

  

torch.nn.Hardswish

是

  

torch.nn.LeakyReLU

是

  

torch.nn.LogSigmoid

是

  

torch.nn.MultiheadAttention

否

  

torch.nn.MultiheadAttention.forward

否

  

torch.nn.MultiheadAttention.merge_masks

否

  

torch.nn.PReLU

是

  

torch.nn.ReLU

是

  

torch.nn.ReLU6

是

  

torch.nn.RReLU

是

  

torch.nn.SELU

是

  

torch.nn.CELU

是

  

torch.nn.GELU

否

  

torch.nn.Sigmoid

否

  

torch.nn.SiLU

是

  

torch.nn.Mish

     

torch.nn.Softplus

是

  

torch.nn.Softshrink

是

  

torch.nn.Softsign

是

  

torch.nn.Tanh

是

  

torch.nn.Tanhshrink

是

  

torch.nn.Threshold

是

  

torch.nn.GLU

否

  

torch.nn.Softmin

是

  

torch.nn.Softmax

是

  

torch.nn.Softmax2d

是

  

torch.nn.LogSoftmax

是

不支持uint、int8、int16、int32、int64、bool

torch.nn.AdaptiveLogSoftmaxWithLoss

否

  

torch.nn.AdaptiveLogSoftmaxWithLoss.log_prob

否

  

torch.nn.AdaptiveLogSoftmaxWithLoss.predict

否

  

torch.nn.BatchNorm1d

是

  

torch.nn.BatchNorm2d

是

  

torch.nn.BatchNorm3d

是

  

torch.nn.LazyBatchNorm1d

是

  

torch.nn.LazyBatchNorm2d

是

  

torch.nn.LazyBatchNorm3d

是

  

torch.nn.GroupNorm

是

支持fp16,fp32

torch.nn.SyncBatchNorm

否

  

torch.nn.SyncBatchNorm.convert_sync_batchnorm

是

  

torch.nn.InstanceNorm1d

否

  

torch.nn.InstanceNorm2d

否

  

torch.nn.InstanceNorm3d

否

  

torch.nn.LazyInstanceNorm1d

是

  

torch.nn.LazyInstanceNorm2d

是

  

torch.nn.LazyInstanceNorm3d

是

  

torch.nn.LayerNorm

是

  

torch.nn.LocalResponseNorm

否

  

torch.nn.RNNBase

是

  

torch.nn.RNNBase.flatten_parameters

     

torch.nn.RNN

否

  

torch.nn.LSTM

否

  

torch.nn.GRU

否

  

torch.nn.RNNCell

否

  

torch.nn.LSTMCell

否

  

torch.nn.GRUCell

否

  

torch.nn.Transformer

否

  

torch.nn.Transformer.forward

     

torch.nn.Transformer.generate_square_subsequent_mask

否

  

torch.nn.TransformerEncoder

否

  

torch.nn.TransformerEncoder.forward

否

  

torch.nn.TransformerDecoder

否

  

torch.nn.TransformerDecoder.forward

     

torch.nn.TransformerEncoderLayer

否

  

torch.nn.TransformerEncoderLayer.forward

否

  

torch.nn.TransformerDecoderLayer

否

  

torch.nn.TransformerDecoderLayer.forward

否

  

torch.nn.Identity

是

  

torch.nn.Linear

否

  

torch.nn.Bilinear

是

  

torch.nn.LazyLinear

是

  

torch.nn.Dropout

是

  

torch.nn.Dropout1d

否

  

torch.nn.Dropout2d

是

  

torch.nn.Dropout3d

是

  

torch.nn.AlphaDropout

是

  

torch.nn.FeatureAlphaDropout

     

torch.nn.Embedding

否

属性max_norm仅支持非负值

torch.nn.Embedding.from_pretrained

是

  

torch.nn.EmbeddingBag

是

  

torch.nn.EmbeddingBag.forward

是

  

torch.nn.EmbeddingBag.from_pretrained

是

  

torch.nn.CosineSimilarity

是

  

torch.nn.PairwiseDistance

是

  

torch.nn.L1Loss

是

  

torch.nn.MSELoss

是

  

torch.nn.CrossEntropyLoss

是

  

torch.nn.CTCLoss

是

不支持float64

torch.nn.NLLLoss

是

  

torch.nn.PoissonNLLLoss

是

  

torch.nn.GaussianNLLLoss

是

  

torch.nn.KLDivLoss

是

  

torch.nn.BCELoss

是

  

torch.nn.BCEWithLogitsLoss

是

  

torch.nn.MarginRankingLoss

是

  

torch.nn.HingeEmbeddingLoss

是

  

torch.nn.MultiLabelMarginLoss

是

  

torch.nn.HuberLoss

否

  

torch.nn.SmoothL1Loss

是

  

torch.nn.SoftMarginLoss

是

  

torch.nn.MultiLabelSoftMarginLoss

否

  

torch.nn.CosineEmbeddingLoss

是

不支持uint8,int8,int16,int32,int64,bool

torch.nn.MultiMarginLoss

否

  

torch.nn.TripletMarginLoss

否

  

torch.nn.TripletMarginWithDistanceLoss

否

  

torch.nn.PixelShuffle

是

不支持8D输入

torch.nn.PixelUnshuffle

是

  

torch.nn.Upsample

Atlas 训练系列产品:是

Atlas A2 训练系列产品:否

Atlas 训练系列产品:

不能输入较大shape(数据量百万级别)

在torch.nn.Upsample(size=size, mode='bicubic',align_corners=False)中的size为(1,*)时,torch.nn.functional.upsample中的align_corners参数需要设置为True。

建议使用float32类型,否则会影响计算性能

align_corners参数为False时,输入和输出的向量shape需相同,否侧输出结果有误

torch.nn.UpsamplingNearest2d

是

  

torch.nn.UpsamplingBilinear2d

是

  

torch.nn.ChannelShuffle

是

  

torch.nn.DataParallel

否

  

torch.nn.parallel.DistributedDataParallel

是

  

torch.nn.parallel.DistributedDataParallel.join

否

  

torch.nn.parallel.DistributedDataParallel.join_hook

否

  

torch.nn.parallel.DistributedDataParallel.no_sync

是

  

torch.nn.parallel.DistributedDataParallel.register_comm_hook

否

  

torch.nn.utils.clip_grad_norm_

否

  

torch.nn.utils.clip_grad_value_

否

  

torch.nn.utils.parameters_to_vector

是

  

torch.nn.utils.vector_to_parameters

是

  

torch.nn.utils.prune.BasePruningMethod

否

  

torch.nn.utils.prune.BasePruningMethod.apply

否

  

torch.nn.utils.prune.BasePruningMethod.apply_mask

否

  

torch.nn.utils.prune.BasePruningMethod.prune

否

  

torch.nn.utils.prune.BasePruningMethod.remove

否

  

torch.nn.utils.prune.PruningContainer

是

  

torch.nn.utils.prune.PruningContainer.add_pruning_method

是

  

torch.nn.utils.prune.PruningContainer.apply

     

torch.nn.utils.prune.PruningContainer.apply_mask

是

  

torch.nn.utils.prune.PruningContainer.compute_mask

是

  

torch.nn.utils.prune.PruningContainer.prune

是

  

torch.nn.utils.prune.PruningContainer.remove

是

  

torch.nn.utils.prune.Identity

是

  

torch.nn.utils.prune.Identity.apply

是

  

torch.nn.utils.prune.Identity.apply_mask

是

  

torch.nn.utils.prune.Identity.prune

是

  

torch.nn.utils.prune.Identity.remove

是

  

torch.nn.utils.prune.RandomUnstructured

是

  

torch.nn.utils.prune.RandomUnstructured.apply

是

  

torch.nn.utils.prune.RandomUnstructured.apply_mask

是

  

torch.nn.utils.prune.RandomUnstructured.prune

是

  

torch.nn.utils.prune.RandomUnstructured.remove

是

  

torch.nn.utils.prune.L1Unstructured

是

  

torch.nn.utils.prune.L1Unstructured.apply

是

  

torch.nn.utils.prune.L1Unstructured.apply_mask

是

  

torch.nn.utils.prune.L1Unstructured.prune

是

  

torch.nn.utils.prune.L1Unstructured.remove

是

  

torch.nn.utils.prune.RandomStructured

是

  

torch.nn.utils.prune.RandomStructured.apply

是

  

torch.nn.utils.prune.RandomStructured.apply_mask

是

  

torch.nn.utils.prune.RandomStructured.compute_mask

是

  

torch.nn.utils.prune.RandomStructured.prune

是

  

torch.nn.utils.prune.RandomStructured.remove

是

  

torch.nn.utils.prune.LnStructured

是

  

torch.nn.utils.prune.LnStructured.apply

是

  

torch.nn.utils.prune.LnStructured.apply_mask

是

  

torch.nn.utils.prune.LnStructured.compute_mask

是

  

torch.nn.utils.prune.LnStructured.prune

是

  

torch.nn.utils.prune.LnStructured.remove

是

  

torch.nn.utils.prune.CustomFromMask

是

  

torch.nn.utils.prune.CustomFromMask.apply

是

  

torch.nn.utils.prune.CustomFromMask.apply_mask

是

  

torch.nn.utils.prune.CustomFromMask.prune

是

  

torch.nn.utils.prune.CustomFromMask.remove

是

  

torch.nn.utils.prune.identity

是

  

torch.nn.utils.prune.random_unstructured

是

  

torch.nn.utils.prune.l1_unstructured

是

  

torch.nn.utils.prune.random_structured

是

  

torch.nn.utils.prune.ln_structured

是

  

torch.nn.utils.prune.global_unstructured

是

  

torch.nn.utils.prune.custom_from_mask

是

  

torch.nn.utils.prune.remove

是

  

torch.nn.utils.prune.is_pruned

是

  

torch.nn.utils.weight_norm

是

  

torch.nn.utils.remove_weight_norm

是

  

torch.nn.utils.spectral_norm

是

  

torch.nn.utils.remove_spectral_norm

是

  

torch.nn.utils.skip_init

否

  

torch.nn.utils.parametrizations.orthogonal

否

  

torch.nn.utils.parametrizations.spectral_norm

否

  

torch.nn.utils.parametrize.register_parametrization

否

  

torch.nn.utils.parametrize.remove_parametrizations

否

  

torch.nn.utils.parametrize.cached

否

  

torch.nn.utils.parametrize.is_parametrized

否

  

torch.nn.utils.parametrize.ParametrizationList

是

  

torch.nn.utils.parametrize.ParametrizationList.right_inverse

是

  

torch.nn.utils.stateless.functional_call

否

  

torch.nn.utils.rnn.PackedSequence

是

  

torch.nn.utils.rnn.PackedSequence.count

是

  

torch.nn.utils.rnn.PackedSequence.index

是

  

torch.nn.utils.rnn.PackedSequence.is_pinned

是

  

torch.nn.utils.rnn.PackedSequence.to

是

  

torch.nn.utils.rnn.pack_padded_sequence

是

该接口在部分情况下无法通过 .npu() 转移至 NPU 设备上。此时有以下两种处理方案:

1、使用 .to("npu") 代替 .npu() 进行转移。

2、将输入 tensor 转移至 NPU 设备上,执行时将自动在设备上运行该接口。

torch.nn.utils.rnn.pad_packed_sequence

是

该接口在部分情况下无法通过 .npu() 转移至 NPU 设备上。此时有以下两种处理方案:

1、使用 .to("npu") 代替 .npu() 进行转移。

2、将输入 tensor 转移至 NPU 设备上,执行时将自动在设备上运行该接口。

torch.nn.utils.rnn.pad_sequence

是

  

torch.nn.utils.rnn.pack_sequence

是

该接口在部分情况下无法通过 .npu() 转移至 NPU 设备上。此时有以下两种处理方案:

1、使用 .to("npu") 代替 .npu() 进行转移。

2、将输入 tensor 转移至 NPU 设备上,执行时将自动在设备上运行该接口。

torch.nn.utils.rnn.unpack_sequence

否

  

torch.nn.utils.rnn.unpad_sequence

否

  

torch.nn.Flatten

是

  

torch.nn.Unflatten

是

  

torch.nn.modules.lazy.LazyModuleMixin

是

  

torch.nn.modules.lazy.LazyModuleMixin.has_uninitialized_params

是

  

torch.nn.modules.lazy.LazyModuleMixin.initialize_parameters

否