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. poisson_nll_loss

torch.nn.functional.poisson_nll_loss

function poisson_nll_loss(input: Tensor, target: Tensor, options?: { log_input?: boolean; full?: boolean; eps?: number; reduction?: 'none' | 'mean' | 'sum'; }): Tensor

Poisson negative log likelihood loss for count data and event prediction.

Measures negative log likelihood under Poisson distribution assumption. Assumes target values follow Poisson distribution with predicted mean/rate parameters. Computes -log P(target | predicted_rate) to measure prediction quality. Essential for:

  • Count data modeling (clicks, events, occurrences per unit time)
  • Rare event prediction (earthquakes, network failures, uncommon failures)
  • Event rate estimation (visitors per day, calls per hour)
  • Object detection (bounding box regression for object counts)
  • Traffic/demand forecasting (vehicle counts, passenger loads)
  • Biological/medical data (cell counts, incident counts in epidemiology)
  • Time-series prediction with count outcomes (daily sales, page views)

Poisson distribution intuition: Poisson models count data: probability of k events when expected rate is λ. P(target=k | λ) = (λ^k * e^(-λ)) / k! ≈ λ for large k (Stirling approximation) Loss = -log P(target | λ) = λ - targetlog(λ) + klog(k) - k (full form)

Two parameter modes:

  • log_input=True: input is log(λ), loss = exp(input) - target*input Better numerical stability, preferred when λ can be very small
  • log_input=False: input is λ directly, loss = input - target*log(input+eps) When already have rate parameter (non-negative outputs)

Full Stirling approximation: full=False: simplified loss = λ - klog(λ) (faster, sufficient for most uses) full=True: adds Stirling term = klog(k) - k + 0.5log(2πk) Exact negative log likelihood but slower (k! ≈ √(2πk)(k/e)^k)

Key parameters and trade-offs:

  • log_input: stability vs input format (Poisson λ > 0, log(λ) ∈ ℝ)
  • full: accuracy vs speed (usually False fine; True only if need exact NLL)
  • eps: numerical safety (prevents log(0), typical 1e-8)
L=λ−target⋅log⁡(λ)(if log⁡_input=True: λ=einput)L=input−target⋅log⁡(input+ϵ)(if log⁡_input=False)Lfull=L+target⋅log⁡(target)−target+0.5⋅log⁡(2π⋅target)\begin{aligned} L = \lambda - \text{target} \cdot \log(\lambda) \quad (\text{if } \log\_input=\text{True: } \lambda = e^{\text{input}}) \\ L = \text{input} - \text{target} \cdot \log(\text{input} + \epsilon) \quad (\text{if } \log\_input=\text{False}) \\ L_{\text{full}} = L + \text{target} \cdot \log(\text{target}) - \text{target} + 0.5 \cdot \log(2\pi \cdot \text{target}) \end{aligned}L=λ−target⋅log(λ)(if log_input=True: λ=einput)L=input−target⋅log(input+ϵ)(if log_input=False)Lfull​=L+target⋅log(target)−target+0.5⋅log(2π⋅target)​
  • Poisson assumption: Assumes target follows Poisson distribution
  • Non-negative output: λ (rate) must be ≥ 0; use exp() or softplus if needed
  • Log-space stability: log_input=true more stable than direct rate input
  • Count data: Naturally suited for non-negative integer counts
  • Mean-variance relationship: Poisson has variance = mean (unique property)
  • Overdispersion: If variance mean, use negative binomial instead
  • Zero-inflation: If excess zeros, use zero-inflated Poisson
  • Gradient stability: log_input=true prevents vanishing gradients for small λ
  • Target non-negative: Must have target ≥ 0; negative values undefined
  • log_input mismatch: Ensure log_input matches output layer design
  • Very small rates: Small λ → high variance; use larger batches or regularization
  • Very large counts: Large k → numerical issues in Stirling term; avoid if possible
  • Full approximation: Stirling term only added where target 1; watch edge cases

Parameters

inputTensor
Predicted Poisson rate parameter (mean/λ) for each sample If log_input=True: log(λ) values ∈ ℝ (unrestricted), any shape OK If log_input=False: λ values ≥ 0 (counts/rates), any shape OK Example: logits from final layer; if output layer uses exp() then log_input=True
targetTensor
Target count values (non-negative integers or floats) Shape must match input; values ≥ 0 (represent observed counts) Example: actual number of events, objects, occurrences
options{ log_input?: boolean; full?: boolean; eps?: number; reduction?: 'none' | 'mean' | 'sum'; }optional
Optional configuration: - log_input: Whether input is log(λ) (default: true) - true: input is log-rate, more numerically stable - false: input is rate directly, needs exp() at output - full: Include full Stirling approximation (default: false) - true: exact NLL = λ - k*log(λ) + k*log(k) - k + 0.5*log(2πk) - false: simplified = λ - k*log(λ) (usually sufficient) - eps: Small constant for numerical stability (default: 1e-8) - Prevents log(0) when computing log(λ) for small values - reduction: How to aggregate losses (default: 'mean') - 'none': per-sample losses [batch, ...] - 'mean': average loss - 'sum': sum losses

Returns

Tensor– Loss tensor (same shape as input/target if reduction='none', scalar otherwise)

Examples

// Count prediction: predict number of events
const batch_size = 32;

// Network predicts log-rate (log-Poisson parameter)
const log_rates = torch.randn([batch_size]);  // Could be -2, -1, 0, 1, etc.

// True event counts (observed data)
const event_counts = torch.tensor([0, 1, 0, 2, 1, 3, 0, 1, 2, 0, ...]);  // [batch]

const loss = torch.nn.functional.poisson_nll_loss(
  log_rates, event_counts,
  { log_input: true }  // Input is log(λ)
);
// Loss encourages log_rates to predict observed event counts
// Traffic prediction: forecast vehicle counts
const batch_size = 48;  // 48 time intervals

// Model outputs log-Poisson rates (from RNN or transformer)
const predicted_log_rates = model(historical_data);  // [48]

// Actual observed vehicle counts
const actual_counts = torch.tensor([12, 15, 8, 20, 18, 25, ...]);  // [48]

const traffic_loss = torch.nn.functional.poisson_nll_loss(
  predicted_log_rates,
  actual_counts.to('float32'),
  { log_input: true, reduction: 'mean' }
);
// Object detection: predict count of objects in regions
const batch_size = 64;
const num_regions = 100;  // Divide image into grid

// Network predicts log-rates for each region
const predicted_counts = model(image);  // [64, 100] log-Poisson parameters

// Ground truth object counts per region
const true_counts = torch.randint(0, 5, [64, 100]).to('float32');

const count_loss = torch.nn.functional.poisson_nll_loss(
  predicted_counts,
  true_counts,
  { log_input: true, full: false }  // Simplified loss, usually sufficient
);
// Comparison: log_input vs direct input
const target = torch.tensor([0, 1, 2, 5, 10]);  // Counts

// Approach 1: Network outputs log-rate directly
const log_rate = model(features);  // Returns values in ℝ
const loss1 = torch.nn.functional.poisson_nll_loss(
  log_rate, target.to('float32'),
  { log_input: true }  // log_input=true for log-space output
);

// Approach 2: Network outputs rate via exp()
const rate = model_with_exp(features);  // Returns exp(x), values > 0
const loss2 = torch.nn.functional.poisson_nll_loss(
  rate, target.to('float32'),
  { log_input: false }  // log_input=false for rate output
);
// Both approaches equivalent; choose based on output layer design
// Rare event prediction: earthquake aftershock counts
const time_periods = 1000;  // 1000 days

// Seismic model predicts log-rate of aftershocks
const predicted_log_rates = seismic_model(features);  // [1000]

// Observed aftershock counts per day (mostly 0s, few large values)
const observed_counts = torch.tensor([0,0,0,1,0,0,2,0,0,0,5,0,0,1,...]);

const seismic_loss = torch.nn.functional.poisson_nll_loss(
  predicted_log_rates,
  observed_counts.to('float32'),
  { log_input: true, full: false, eps: 1e-8 }
);
// Poisson suitable for sparse, rare count data
// With full Stirling approximation (exact negative log likelihood)
const predictions = torch.randn([16]);
const counts = torch.tensor([2, 3, 1, 5, 4, 2, 3, 1, ...]);

// Exact NLL with Stirling term (slower but accurate)
const exact_loss = torch.nn.functional.poisson_nll_loss(
  predictions,
  counts.to('float32'),
  { log_input: true, full: true }
);
// Includes: λ - k*log(λ) + k*log(k) - k + 0.5*log(2πk)

// Simplified loss (usually sufficient, faster)
const simple_loss = torch.nn.functional.poisson_nll_loss(
  predictions,
  counts.to('float32'),
  { log_input: true, full: false }
);
// Only: λ - k*log(λ), sufficient for training

See Also

  • PyTorch torch.nn.functional.poisson_nll_loss
  • gaussian_nll_loss - For continuous targets (normal distribution)
  • torch.nn.PoissonNLLLoss - Module wrapper
  • negative_binomial - Alternative for overdispersed count data (if available)
Previous
pixel_unshuffle
Next
PoolWithIndicesResult