Skip to main content
torch.js has not been released yet.
torch.js logotorch.js logotorch.js
PlaygroundContact
Login
Documentation
IntroductionType SafetyTensor ExpressionsTensor IndexingEinsumEinopsAutogradTraining a ModelProfiling & MemoryPyTorch MigrationBest PracticesRuntimesPerformancePyTorch CompatibilityBenchmarksDType Coverage
adaptive_avg_pool1dadaptive_avg_pool2dadaptive_avg_pool3dadaptive_max_pool1dadaptive_max_pool1d_with_indicesadaptive_max_pool2dadaptive_max_pool2d_with_indicesadaptive_max_pool3dadaptive_max_pool3d_with_indicesAdaptiveMaxPoolFunctionalOptionsaffine_gridAffineGridFunctionalOptionsalpha_dropoutAlphaDropoutFunctionalOptionsavg_pool1davg_pool2davg_pool3dAvgPool1dFunctionalOptionsAvgPool2dFunctionalOptionsAvgPool3dFunctionalOptionsbatch_normBatchNormFunctionalOptionsbinary_cross_entropybinary_cross_entropy_with_logitsBinaryCrossEntropyFunctionalOptionsBinaryCrossEntropyWithLogitsFunctionalOptionsCeluFunctionalOptionschannel_shuffleconv_transpose1dconv_transpose2dconv_transpose3dconv1dConv1dFunctionalOptionsconv2dConv2dFunctionalOptionsconv3dConv3dFunctionalOptionsConvTranspose1dFunctionalOptionsConvTranspose2dFunctionalOptionsConvTranspose3dFunctionalOptionscosine_embedding_losscosine_similarityCosineEmbeddingLossFunctionalOptionsCosineSimilarityFunctionalOptionscross_entropyCrossEntropyFunctionalOptionsctc_lossCTCLossOptionsdropoutdropout1ddropout2ddropout3dDropoutFunctionalOptionsEluFunctionalOptionsembeddingembedding_bagEmbeddingBagFunctionalOptionsEmbeddingFunctionalOptionsfeature_alpha_dropoutfoldFoldFunctionalOptionsfractional_max_pool2dfractional_max_pool2d_with_indicesfractional_max_pool3dfractional_max_pool3d_with_indicesFractionalMaxPoolFunctionalOptionsgaussian_nll_lossGluFunctionalOptionsgrid_sampleGridSampleFunctionalOptionsgroup_normgrouped_mmGroupedMMFunctionalOptionsGroupNormFunctionalOptionsHardshrinkFunctionalOptionsHardtanhFunctionalOptionshinge_embedding_lossHingeEmbeddingLossFunctionalOptionshuber_lossHuberLossFunctionalOptionsinstance_normInstanceNormFunctionalOptionsinterpolateInterpolateFunctionalOptionskl_divKlDivFunctionalOptionsKLDivOptionsl1_lossL1LossFunctionalOptionslayer_normLayerNormFunctionalOptionsLeakyReluFunctionalOptionslinearlocal_response_normLocalResponseNormFunctionalOptionslog_softmaxlp_pool1dlp_pool2dlp_pool3dLPPoolFunctionalOptionsmargin_ranking_lossMarginRankingLossFunctionalOptionsmax_pool1dmax_pool1d_with_indicesmax_pool2dmax_pool2d_with_indicesmax_pool3dmax_pool3d_with_indicesmax_unpool1dmax_unpool2dmax_unpool3dMaxPool1dFunctionalOptionsMaxPool2dFunctionalOptionsMaxPool3dFunctionalOptionsMaxUnpoolFunctionalOptionsmse_lossMseLossFunctionalOptionsmulti_head_attention_forwardmulti_margin_lossMultiHeadAttentionFunctionalOptionsmultilabel_margin_lossmultilabel_soft_margin_lossnll_lossNllLossFunctionalOptionsnormalizeNormalizeFunctionalOptionsone_hotpadPadFunctionalOptionspairwise_distancePairwiseDistanceFunctionalOptionspdistPdistFunctionalOptionspixel_shufflepixel_unshufflepoisson_nll_lossPoolWithIndicesResultReluFunctionalOptionsrms_normRmsNormFunctionalOptionsRreluFunctionalOptionsscaled_grouped_mmscaled_mmScaledDotProductAttentionFunctionalOptionsScaledGroupedMMFunctionalOptionsScaledMMFunctionalOptionssmooth_l1_lossSmoothL1LossFunctionalOptionssoft_margin_lossSoftMarginLossFunctionalOptionsSoftmaxOptionsSoftminFunctionalOptionsSoftplusFunctionalOptionsSoftshrinkFunctionalOptionstriplet_margin_losstriplet_margin_with_distance_lossTripletMarginLossFunctionalOptionsunfoldUnfoldFunctionalOptionsupsampleupsample_bilinearupsample_nearestUpsampleBilinearOptionsUpsampleNearestOptionsUpsampleOptions
ActivationOptionsAdaptiveAvgPool1dAdaptiveAvgPool2dAdaptiveAvgPool3dAdaptiveLogSoftmaxOptionsAdaptiveLogSoftmaxWithLossAdaptiveMaxPool1dAdaptiveMaxPool1dOptionsAdaptiveMaxPool2dAdaptiveMaxPool2dOptionsAdaptiveMaxPool3dAdaptiveMaxPool3dOptionsadd_moduleAlphaDropoutappendappendapplyAvgPool1dAvgPool1dOptionsAvgPool2dAvgPool2dOptionsAvgPool3dAvgPool3dOptionsBackwardHookBackwardPreHookBatchNorm1dBatchNorm2dBatchNorm3dBatchNormOptionsBCELossBCEWithLogitsLossBilinearBilinearOptionsBufferBufferOptionsBufferRegistrationHookbufferscallCELUCELUOptionsChannelShufflechildrenCircularPad1dCircularPad2dCircularPad3dclearConstantPad1dConstantPad2dConstantPad3dConv1dConv2dConv3dConvOptionsConvTranspose1dConvTranspose2dConvTranspose3dConvTransposeOptionsCosineEmbeddingLossCosineEmbeddingLossOptionsCosineSimilarityCosineSimilarityOptionscreatecreateCrossEntropyLossCTCLossdecodedecodedeleteDropoutDropout1dDropout2dDropout3dDropoutOptionsELUELUOptionsEmbeddingEmbeddingBagEmbeddingBagForwardOptionsEmbeddingBagFromPretrainedOptionsEmbeddingBagOptionsEmbeddingFromPretrainedOptionsEmbeddingOptionsencodeencodeentriesentriesevalextendFeatureAlphaDropoutFlattenFlattenOptionsFoldFoldOptionsforwardforwardforwardforwardforwardforwardforwardforwardforwardforwardforwardforwardforward_with_targetForwardHookForwardPreHookFractionalMaxPool2dFractionalMaxPool3dFractionalMaxPoolOptionsfrom_pretrainedfrom_pretrainedGaussianNLLLossGELUGELUOptionsgenerate_square_subsequent_maskgetgetgetgetgetget_bufferget_parameterget_submoduleGLUGLUOptionsGroupNormGroupNormOptionsGRUGRUCellHardshrinkHardshrinkOptionsHardsigmoidHardswishHardtanhHardtanhOptionshashasHingeEmbeddingLossHingeEmbeddingLossOptionsHuberLossHuberLossOptionsIdentityInstanceNorm1dInstanceNorm2dInstanceNorm3dInstanceNormOptionsis_uninitialized_bufferis_uninitialized_parameteriterator]iterator]iterator]iterator]keyskeysKLDivLossL1LossL1LossOptionsLayerNormLayerNormOptionsLazyBatchNorm1dLazyBatchNorm2dLazyBatchNorm3dLazyConv1dLazyConv2dLazyConv3dLazyConvOptionsLazyConvTranspose1dLazyConvTranspose2dLazyConvTranspose3dLazyConvTransposeOptionsLazyInstanceNorm1dLazyInstanceNorm2dLazyInstanceNorm3dLazyLinearLeakyReLULeakyReLUOptionsLinearLinearOptionsload_state_dictload_state_dictLocalResponseNormLocalResponseNormOptionslog_probLogSigmoidLogSoftmaxLogSoftmaxOptionsLPPool1dLPPool1dOptionsLPPool2dLPPool2dOptionsLPPool3dLPPool3dOptionsLSTMLSTMCellLSTMCellOptionsMarginRankingLossMarginRankingLossOptionsmaterializematerializematerialize_uninitializedmaterialize_uninitializedMaxPool1dMaxPool1dOptionsMaxPool2dMaxPool2dOptionsMaxPool3dMaxPool3dOptionsMaxUnpool1dMaxUnpool1dOptionsMaxUnpool2dMaxUnpool2dOptionsMaxUnpool3dMaxUnpool3dOptionsMishModuleModuleBuffersModuleChildrenModuleDictModuleDictOptionsModuleListModuleListOptionsModuleParametersModuleRegistrationHookmodulesMSELossMSELossOptionsmultihead_attnMultiheadAttentionMultiheadAttentionOptionsMultiheadAttnOptionsMultiLabelMarginLossMultiLabelMarginLossOptionsMultiLabelSoftMarginLossMultiMarginLossnamed_buffersnamed_childrennamed_modulesnamed_parametersNamedModulesOptionsNamedRecurseOptionsNLLLossnum_parametersNumParametersOptionsPairwiseDistancePairwiseDistanceOptionsParameterParameterDictParameterDictOptionsParameterListParameterListOptionsParameterOptionsParameterRegistrationHookparametersPixelShufflePixelUnshufflePoissonNLLLosspoppopPReLUPReLUOptionsRecurseOptionsReflectionPad1dReflectionPad2dReflectionPad3dregister_backward_hookregister_bufferregister_forward_hookregister_forward_pre_hookregister_full_backward_hookregister_full_backward_pre_hookregister_module_backward_hookregister_module_buffer_registration_hookregister_module_forward_hookregister_module_forward_pre_hookregister_module_full_backward_hookregister_module_full_backward_pre_hookregister_module_module_registration_hookregister_module_parameter_registration_hookregister_parameterReLUReLU6RemovableHandleremoveReplicationPad1dReplicationPad2dReplicationPad3dRMSNormRMSNormOptionsRNNRNNBaseRNNBaseOptionsRNNCellRNNCellOptionsRReLURReLUOptionsrunrunSELUSequentialsetsetsetSigmoidSiLUSmoothL1LossSmoothL1LossOptionsSoftMarginLossSoftMarginLossOptionsSoftmaxSoftmax2dSoftmaxOptionsSoftminSoftminOptionsSoftplusSoftplusOptionsSoftshrinkSoftshrinkOptionsSoftsignstate_dictstate_dictStateDictOptionsstepSyncBatchNormTanhTanhshrinkThresholdThresholdOptionstotototrainTrainOptionsTransformerTransformerDecoderTransformerDecoderDecodeOptionsTransformerDecoderLayerTransformerDecoderLayerDecodeOptionsTransformerDecoderLayerOptionsTransformerDecoderOptionsTransformerEncoderTransformerEncoderEncodeOptionsTransformerEncoderLayerTransformerEncoderLayerEncodeOptionsTransformerEncoderLayerOptionsTransformerEncoderOptionsTransformerOptionsTransformerRunOptionsTripletMarginLossTripletMarginWithDistanceLossUnflattenUnfoldUnfoldOptionsUninitializedBufferUninitializedOptionsUninitializedParameterupdateUpsampleUpsamplingBilinear2dUpsamplingNearest2dvaluesvalueszero_gradZeroPad1dZeroPad2dZeroPad3d
absacosacoshAdaptivePool1dShapeAdaptivePool2dShapeaddaddbmmAddbmmOptionsaddcdivAddcdivOptionsaddcmulAddcmulOptionsaddmmAddmmOptionsaddmvAddmvOptionsaddrAddrOptionsadjointallallcloseAllcloseOptionsAlphaBetaOptionsamaxaminaminmaxAminmaxOptionsangleanyapplyOutarangeare_deterministic_algorithms_enabledargmaxargminargsortargwhereas_stridedas_tensorasinasinhAssertNoShapeErrorAssertNotErrorAsStridedOptionsAtat_error_index_out_of_boundsatanatan2atanhatleast_1datleast_2datleast_3dAtShapeautocast_decrement_nestingautocast_increment_nestingautograd_gradient_mismatch_errorautograd_not_registered_errorAutogradConfigAutogradDeviceAutogradDTypeAutogradEntryAutogradHandleAutogradHandleImplAxesRecordBackwardFnbaddbmmBaddbmmOptionsbartlett_windowBaseKernelConfigbatch_dimensions_do_not_match_errorbernoulliBernoulliOptionsBinaryBackwardFnBinaryBroadcastResultBinaryDTypeBinaryKernelConfigCPUBinaryKernelCPUBinaryOpConfigBinaryOpNamesBinaryOpSchemaBinaryOptionsbincountBincountOptionsbitwise_andbitwise_left_shiftbitwise_notbitwise_orbitwise_right_shiftbitwise_xorblackman_windowblock_diagbmmBooleanDTypeRulebroadcast_error_incompatible_dimensionsbroadcast_shapesbroadcast_tensorsbroadcast_toBroadcastShapeBroadcastShapeRulebroadcastShapesbucketizeBucketizeOptionsBufferUsagebuildEinopsErrorbuildErrorMessagecanBroadcastTocartesian_prodcatCatOptionsCatShapeCauchyOptionscdistCdistOptionsceilceluCeluFunctionalOptionschain_matmulCheckShapeErrorCholeskyShapechunkchunk_error_dim_out_of_rangeChunkOptionsclampClampOptionsclear_autocast_cacheclearEinopsCacheclearEinsumCacheclonecolumn_stackcombinationsCombinationsOptionscompiled_with_cxx11_abicomplexconjconj_physicalcontiguousConv1dShapeConv2dShapeConv3dShapeConvTranspose2dShapecopysigncorrcoefcoscoshcount_nonzeroCountNonzeroOptionscovcoverage_reportcoverageReportCoverageReportCovOptionsCPUForwardFnCPUKernelConfigCPUKernelEntryCPUOnlyResultCPUTensorDatacreateCumExtremeResultcreateTorchCreationOpSchemaCumExtremeResultcummaxcummincumprodCumShapecumsumcumulative_trapezoidCumulativeOptionsCumulativeOptionsWithDimdeg2raddetachDeterministicOptionsDetShapeDevicedevice_error_requiresDeviceBufferDeviceCapabilitiesDeviceCheckedResultDeviceConfigDeviceContextDeviceEntryDeviceHandleDeviceInputDeviceOptionsDeviceRegistryDeviceTypediagdiag_embedDiagEmbedOptionsdiagflatDiagflatOptionsDiagFlatOptionsdiagonal_scatterDiagonalOptionsDiagonalScatterOptionsDiagOptionsDiagShapediffDiffOptionsdigammadimension_error_out_of_rangeDispatchConfigdistDistOptionsdivdotDotShapeRuleDoubleDoubleDimdropoutDropoutFunctionalOptionsdsplitdstackDTypedtype_already_registered_errordtype_components_mismatch_errordtype_not_found_errorDTypeComponentsDTypeConfigDTypeCoverageReportDTypeDisplayConfigDTypeEntryDTypeHandleDTypeHandleImplDTypeInfoDTypeRegistryDTypeRuleDTypeSerializationConfigDynamicShapeEigShapeeinops_error_ambiguous_decompositioneinops_error_anonymous_in_outputeinops_error_dimension_mismatcheinops_error_invalid_patterneinops_error_reduce_undefined_outputeinops_error_repeat_missing_sizeeinops_error_undefined_axiseinsumeinsum_error_dimension_mismatcheinsum_error_index_out_of_rangeeinsum_error_invalid_equationeinsum_error_invalid_sublist_elementeinsum_error_operand_count_mismatcheinsum_error_subscript_rank_mismatcheinsum_error_unknown_output_indexEinsumOptionsEinsumOutputShapeEllipsiseluelu_EluFunctionalOptionsembedding_bag_error_requires_2d_inputemptyempty_cacheempty_likeeqequalerferfcerfinvexpexp2expandexpand_asexpand_error_incompatibleExpandShapeexpm1ExponentialOptionseyeEyeOptionsfftFFTOptionsfindKernelWithPredicatefindSimilarPatternsflattenFlattenOptionsFlattenShapeflipflip_error_dim_out_of_rangefliplrFlipShapeflipudfloat_powerFloatDTypeRulefloorfloor_dividefmaxfminfmodformatEquationErrorformatShapefracfrexpfrombufferfullfull_likefunction_already_registered_errorFunctionConfigFunctionEntryFunctionHandlegathergather_error_dim_out_of_rangeGatherShapegcdgegeluGeometricOptionsget_autocast_cpu_dtypeget_autocast_gpu_dtypeget_autocast_ipu_dtypeget_autocast_xla_dtypeget_default_deviceget_default_dtypeget_deterministic_debug_modeget_device_configget_device_contextget_device_moduleget_dtype_infoget_file_pathget_float32_matmul_precisionget_num_interop_threadsget_num_threadsget_op_infoget_printoptionsget_real_dtypeget_rng_stategetAutogradgetDTypegetEinopsCacheSizegetEinsumCacheSizegetFunctiongetKernelgetMethodgetOpInfoGetOpKindGetOpSchemagetScalarKernelgluGluFunctionalOptionsGradContextGradFnGradientsForgtHalfHalfDimhamming_windowhann_windowhardshrinkhardsigmoidhardswishhardtanhhardtanh_HardtanhFunctionalOptionshas_autogradhas_devicehas_dtypehas_kernelhasAutogradhasDTypehasFunctionhasKernelhasMethodhasScalarKernelHasShapeErrorheavisidehistcHistcOptionshistogramHistogramOptionsHistogramResulthsplithstackhypoti0IdentityShapeifftimagindex_addindex_copyindex_fillindex_putindex_reduceindex_selectindex_select_error_dim_out_of_rangeIndexPutOptionsIndexSelectShapeIndexSpecIndicesOptionsIndicesSpecinitialize_deviceInputsForInsertDiminvalid_config_errorinverseInverseShapeirfftis_anomaly_check_nan_enabledis_anomaly_enabledis_autocast_cache_enabledis_autocast_cpu_enabledis_autocast_ipu_enabledis_autocast_xla_enabledis_complexis_complex_dtypeis_cpu_only_modeis_deterministic_algorithms_warn_only_enabledis_floating_pointis_floating_point_dtypeis_inference_mode_enabledis_nonzerois_tensoris_warn_always_enabledis_webgpu_availableIs2DIsAtLeast1DIsBinaryOpIsBinaryOpNameiscloseIscloseOptionsisfiniteisinisinfisnanisneginfisposinfisrealIsReductionOpIsReductionOpNameIsRegistryErrorIsShapeErroristftISTFTOptionsIsUnaryOpIsUnaryOpNameitem_error_not_scalarItemResultkaiser_windowKaiserWindowOptionskernel_not_registered_errorkernel_signature_mismatch_errorKernelConfigKernelConfigWebGPUKernelEntryKernelHandleKernelInfoKernelPredicateKernelRegistryKernelWebGPUkronkthvalueKthvalueOptionslcmldexpleleaky_reluleaky_relu_LeakyReluFunctionalOptionslerplevenshteinDistancelgammalinalg_error_not_square_matrixlinalg_error_requires_2dlinalg_error_requires_at_least_2dlinearlinspacelist_custom_deviceslist_custom_dtypeslist_deviceslist_dtypeslist_functionslist_kernelslist_methodslist_opslistCustomDTypeslistDTypeslistFunctionslistKernelsListKernelsOptionslistMethodslistOpsListOpsOptionsloglog_softmaxlog10log1plog2logaddexplogaddexp2logcumsumexplogical_andlogical_notlogical_orlogical_xorLogitOptionsLogNormalOptionsLogOptionslogsigmoidlogspacelogsumexpLogsumexpOptionsltLUShapeLuSolveOptionsmasked_fillmasked_selectmasked_select_asyncMaskSpecmatmulmatmul_error_inner_dimensions_do_not_matchMatmul2DShapeMatmulShapeMatmulShapeRuleMatrixTransposeShapemaxmaximummeanmedianmemory_statsmemory_summarymeshgridmethod_already_registered_errormethod_dtype_not_supported_errorMethodConfigMethodEntryMethodHandleminminimummishmmMMShapeRulemodemovedimmsortmulmultinomialmultinomial_asyncMultinomialAsyncOptionsMultinomialOptionsMultiplyBymvMVShapeRulenan_to_numnanmeannanmediannanquantileNanReductionOptionsnansumNanToNumOptionsnarrownarrow_copynarrow_error_length_exceeds_boundsnarrow_error_start_out_of_boundsNarrowShapeneneedsBroadcastnegNegativeDimnextafternonzeroNonzeroOptionsnormnormalNormalOptionsNormOptionsnumelonesones_likeop_kind_mismatch_errorop_not_found_errorOpCoverageEntryOpInfoOpKindOpNameOpSchemaOpSchemasouterOuterShapepackPackShapepermutepermute_error_dimension_count_mismatchPermuteShapepoissonpolarPool1dShapePool2dShapePool3dShapepositivepowpreluPrintOptionsprodprofiler_allow_cudagraph_cupti_lazy_reinit_cuda12promote_typesPromoteDTypeRulePutOptionsquantileQuantileOptionsrad2degrandrand_likerandintrandint_likeRandintLikeOptionsRandintOptionsrandnrandn_likeRandomLikeOptionsRandomOptionsrandpermRangeSpecRankravelrealrearrangeRearrangeOptionsRearrangeShapereciprocalreduceReduceOperationReduceOptionsReduceShapeReductionKernelConfigCPUReductionKernelCPUReductionOpNamesReductionOpSchemaReductionOptionsReductionShapeRuleregister_backwardregister_deviceregister_dtyperegister_forwardregister_functionregister_methodregister_scalar_forwardregisterAutogradRegisterBackwardOptionsregisterBinaryOpregisterDTypeRegisterDTypeOptionsRegisteredDTyperegisterFunctionRegisterFunctionOptionsregisterKernelRegisterKernelOptionsregisterMethodRegisterMethodOptionsregisterScalarKernelregisterUnaryOpregistration_failed_errorrelurelu_relu6ReluFunctionalOptionsremainderRemoveDimrepeatrepeat_interleaveRepeatInterleaveOptionsRepeatOptionsRepeatShapeReplaceDimrequireWebGPUreset_peak_memory_statsreshapeReshapeShaperesult_typerfftrollRollOptionsrot90Rot90Optionsroundrrelurrelu_RreluFunctionalOptionsrsqrtSafeExpandShapeSameDTypeRuleSameShapeRuleSaveForBackwardScalarCPUForwardFnScalarCPUKernelConfigScalarKernelEntryScalarKernelHandleScalarWebGPUKernelConfigScaleDimscatterscatter_addscatter_add_scatter_error_dim_out_of_rangescatter_reducescatter_reduce_ScatterReduceOptionsScatterShapesearchsortedSearchSortedOptionsselectselect_error_index_out_of_boundsselect_scatterSelectShapeseluset_default_deviceset_default_tensor_typeset_deterministic_debug_modeset_float32_matmul_precisionset_printoptionsset_warn_alwaysSetupContextFnShapeShapeCheckedResultShapedTensorShapeErrorMessageShapeOpSchemaShapeRulesigmoidsignsignbitsilusinsincsinhSizeOptionsslice_error_out_of_boundsslice_scatterSliceOptionsSliceScatterOptionsSliceShapeSliceSpecsoftmaxsoftmax_error_dim_out_of_rangeSoftmaxShapesoftminSoftminFunctionalOptionssoftplusSoftplusFunctionalOptionssoftshrinksoftsignsortSortOptionssplitsplit_error_dim_out_of_rangeSplitOptionssqrtsquaresqueezeSqueezeOptionsSqueezeShapestackStackOptionsStackShapestdstd_meanStdVarMeanOptionsStdVarOptionsstftSTFTOptionsStrideOptionssubSublistSublistElementSubscriptIndexsumSVDShapeswapaxessym_floatsym_intsym_notttaketake_along_dimTakeAlongDimOptionstantanhtanhshrinktensortensor_splitTensorCreatorTensorDatatensordotTensordotOptionsTensorLikeTensorMetaTensorOptionsTensorStoragethresholdthreshold_tileTileShapeToOptionstopkTopkOptionsTorchtraceTraceShapetransposetranspose_dims_error_out_of_rangetranspose_error_requires_2d_tensorTransposeDimsShapeTransposeDimsShapeCheckedTransposeShapetrapezoidTrapezoidOptionsTriangularOptionstriltril_indicesTriOptionsTripletriutriu_indicestrue_dividetruncTupleOfLengthTypedArrayTypedArrayForTypedStorageTypeOptionsUnaryBackwardFnUnaryDTypeUnaryKernelConfigCPUUnaryKernelCPUUnaryOpConfigUnaryOpFnUnaryOpNamesUnaryOpParamsUnaryOpSchemaUnaryOptionsunbindunbind_error_dim_out_of_rangeUnbindOptionsunflattenUniformOptionsuniqueunique_consecutiveUniqueConsecutiveOptionsUniqueOptionsunpackUnpackShapeunravel_indexunregister_deviceunsqueezeUnsqueezeOptionsUnsqueezeShapeuse_deterministic_algorithmsValidateBatchedSquareMatrixValidateChunkDimValidatedEinsumShapevalidateDeviceValidateDeviceValidatedRearrangeShapeValidatedReduceShapeValidatedRepeatShapevalidateDTypeValidateEinsumValidateOperandCountValidateRanksValidateScalarValidateSplitDimValidateSquareMatrixValidateUnbindDimValueOptionsvar_var_meanvdotviewview_as_complexview_as_realvmapvsplitvstackWebGPUKernelConfigWebGPUOnlyResultWebGPUTensorDatawhereWindowOptionsxlogyzeroszeros_like
torch.js· 2026
LegalTerms of UsePrivacy Policy
/
/
  1. docs
  2. torch.js
  3. torch
  4. nn
  5. functional
  6. cross_entropy

torch.nn.functional.cross_entropy

function cross_entropy(input: Tensor, target: Tensor): Tensorfunction cross_entropy(input: Tensor, target: Tensor, weight: Tensor | null, size_average: boolean | null, ignore_index: number, reduce: boolean | null, reduction: 'none' | 'mean' | 'sum', label_smoothing: number, options: CrossEntropyFunctionalOptions): Tensor

Cross Entropy Loss: standard loss function for multi-class classification from raw logits.

Computes the cross-entropy loss between predicted logits and target class indices. This is the go-to loss function for classification tasks in deep learning. It combines softmax normalization and negative log-likelihood into a single, numerically stable operation. Implemented as nll_loss(log_softmax(input, { dim: -1 }), target). Essential for:

  • Multi-class classification (image classification, text classification, object detection)
  • Neural network training with class targets (standard supervised learning)
  • Tasks with mutually exclusive categories
  • Pre-training and fine-tuning classification heads
  • Any situation where you want to predict one of K mutually exclusive classes

Why Cross-Entropy: Cross-entropy measures the divergence between predicted probability distribution (from softmax) and true one-hot distribution. Minimizing cross-entropy is equivalent to maximizing likelihood of correct class. Empirically, it enables faster learning than MSE loss for classification.

Softmax Intuition: Softmax converts raw logits to probability distribution (all positive, sum to 1). Cross-entropy penalizes assigning low probability to the correct class. As model confidence in correct class increases (probability → 1), loss → 0. As confidence decreases (probability → 0), loss → ∞.

\begin{aligned} \text{Softmax: } p_i = \frac{\exp(\text{logit}_i)}{\sum_j \exp(\text{logit}_j)} \\ \text{Cross-Entropy: } L = -\log(p_{\text{target}}) \\ \text{Final loss} = \begin{cases} \\ \text{Gradient w.r.t. logit: } \frac{\partial L}{\partial \text{logit}_i} = \begin{cases} \end{aligned}
  • Expects raw logits, not probabilities: Input should be unnormalized scores from model output (e.g., from linear layer). Do NOT apply softmax first; cross_entropy does that internally.
  • Numerically stable: Uses log-softmax internally to avoid numerical overflow/underflow that would occur with naive exp(logit) / sum(exp(logits)) calculation.
  • One-hot targets: Targets should be class indices, not one-hot encoded vectors. Unlike some frameworks, this expects integer class labels directly.
  • Standard choice for classification: When unsure about loss function, use cross-entropy for multi-class classification. It's the standard and usually works best.
  • Batch independence: With reduction='mean', loss is normalized by batch size, making it independent of batch size. Critical for consistent learning rates across different batch sizes.
  • Gradient saturation avoided: Combining softmax + log + neg_log_likelihood directly (rather than softmax then NLL) helps avoid gradient saturation and numerical issues at extremes.
  • Identical to nll_loss(log_softmax(x, -1), y): But more stable and concise. Use cross_entropy directly unless you need pre-computed log-probabilities from another source.
  • Invalid target values: Target indices must be in [0, num_classes-1]. Out-of-range indices cause undefined behavior. Always validate that targets match logits dimensionality.
  • Shape mismatch: Input must be 2D [batch_size, num_classes] and targets 1D [batch_size]. Mismatched shapes throw errors. Transposed inputs are a common mistake.
  • Don't pre-apply softmax: If you apply softmax before cross_entropy, it will softmax twice, giving wrong results. Pass raw logits directly.
  • Batch size mismatch: If batch dimension of input and target don't match, error is thrown. Verify batching is consistent across model output and labels.
  • Overflow risk with extreme logits: Very large logits ( 100) can cause overflow in intermediate calculations (though log-softmax mitigates this). Keep logits in reasonable range.

Parameters

inputTensor
Raw logits (unnormalized scores) from model output. Shape [batch_size, num_classes]. Can be any real-valued tensor (e.g., output of linear layer without activation).
targetTensor
Target class indices (0 to num_classes-1). Shape [batch_size]. Integer-like values.

Returns

Tensor– Loss tensor. Scalar (shape []) if reduction='mean' or 'sum', shape [batch_size] if reduction='none'

Examples

// Standard image classification: 32-sample batch, 10 classes (CIFAR-10)
const logits = torch.randn(32, 10);          // Model output: raw scores
const targets = torch.tensor([...]);         // Class indices: 0-9
const loss = torch.nn.functional.cross_entropy(logits, targets);  // Scalar loss

// Training loop: update weights to minimize loss
for (let epoch = 0; epoch < 100; epoch++) {
  const logits = model(images);              // Forward pass
  const loss = torch.nn.functional.cross_entropy(logits, class_labels);
  optimizer.zero_grad();
  loss.backward();                           // Compute gradients
  optimizer.step();                          // Update weights
}

// Multi-class with 1000 categories (ImageNet classification)
const batch_logits = torch.randn(256, 1000);     // [batch=256, classes=1000]
const batch_targets = torch.floor(torch.rand(256).mul(1000));  // Random targets for demo
const loss = torch.nn.functional.cross_entropy(batch_logits, batch_targets);
// Loss typically in range [0, log(1000)] ≈ [0, 6.9] (lower is better)

// Analyzing per-sample losses: find hard examples
const per_sample_losses = torch.nn.functional.cross_entropy(
  logits, targets, 'none'  // Shape [batch_size]
);
// Find hardest samples (highest loss)
const { values: hardest_losses, indices: hard_indices } = per_sample_losses.topk(10);
// Use these samples for curriculum learning or hard negative mining

// Text classification: predicting one of C topics
const num_topics = 20;
const text_embeddings = encoder(text);                    // [batch, embedding_dim]
const classification_logits = classifier(text_embeddings); // [batch, num_topics]
const topic_labels = torch.tensor([5, 3, 12, 7, ...]);    // True topic for each text
const loss = torch.nn.functional.cross_entropy(
  classification_logits, topic_labels
);

See Also

  • PyTorch torch.nn.functional.cross_entropy
  • nll_loss - Lower-level function for pre-computed log-probabilities
  • log_softmax - Compute log-probabilities; used internally by cross_entropy
  • softmax - Normalize to probabilities (not used in loss, but useful for inference)
  • torch.nn.CrossEntropyLoss - Stateful class-based version with optional weight per class
  • binary_cross_entropy_with_logits - Loss for binary classification from logits
  • mse_loss - Alternative loss for regression or when cross-entropy doesn't work
Previous
CosineSimilarityFunctionalOptions
Next
CrossEntropyFunctionalOptions