// @generated by torchgen/gen.py from RegisterSchema.cpp
#define TORCH_ASSERT_ONLY_METHOD_OPERATORS
#include <torch/library.h>

namespace at {
TORCH_LIBRARY(aten, m) {
  const std::vector<at::Tag> tags_0 = {at::Tag::pt2_compliant_tag};
  m.def("_cast_Byte(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Char(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Double(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Float(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Int(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Long(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Short(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_cast_Half(Tensor self, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_backward(Tensor self, Tensor[] inputs, Tensor? gradient=None, bool? retain_graph=None, bool create_graph=False) -> ()", tags_0);
  m.def("set_data(Tensor(a!) self, Tensor new_data) -> ()", tags_0);
  m.def("data(Tensor self) -> Tensor", tags_0);
  m.def("is_leaf(Tensor self) -> bool", tags_0);
  m.def("output_nr(Tensor self) -> int", tags_0);
  m.def("_version(Tensor self) -> int", tags_0);
  m.def("requires_grad_(Tensor(a!) self, bool requires_grad=True) -> Tensor(a!)", tags_0);
  m.def("retain_grad(Tensor(a!) self) -> ()", tags_0);
  m.def("retains_grad(Tensor self) -> bool", tags_0);
  m.def("_fw_primal(Tensor(a) self, int level) -> Tensor(a)", tags_0);
  m.def("_make_dual(Tensor(a) primal, Tensor tangent, int level) -> Tensor(a)", tags_0);
  m.def("_unpack_dual(Tensor(a) dual, int level) -> (Tensor(a) primal, Tensor tangent)", tags_0);
  m.def("_new_zeros_with_same_feature_meta(Tensor self, Tensor other, *, int self_num_batch_dims=0) -> Tensor", tags_0);
  m.def("_has_same_storage_numel(Tensor self, Tensor other) -> bool", tags_0);
  const std::vector<at::Tag> tags_1 = {at::Tag::inplace_view, at::Tag::pt2_compliant_tag};
  m.def("rename_(Tensor(a!) self, Dimname[]? names) -> Tensor(a!)", tags_1);
  m.def("rename(Tensor(a) self, Dimname[]? names) -> Tensor(a)", tags_0);
  m.def("align_to(Tensor(a) self, Dimname[] names) -> Tensor(a)", tags_0);
  m.def("align_to.ellipsis_idx(Tensor(a) self, Dimname[] order, int ellipsis_idx) -> Tensor(a)", tags_0);
  m.def("align_as(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("align_tensors(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("_assert_async(Tensor self) -> ()", tags_0);
  m.def("_assert_async.msg(Tensor self, str assert_msg) -> ()", tags_0);
  m.def("_assert_scalar(Scalar self, str assert_msg) -> ()", tags_0);
  m.def("_functional_assert_scalar(Scalar self, str assert_msg, Tensor dep_token) -> Tensor", tags_0);
  m.def("_functional_assert_async.msg(Tensor self, str assert_msg, Tensor dep_token) -> Tensor", tags_0);
  m.def("_assert_tensor_metadata(Tensor a, SymInt[]? size=None, SymInt[]? stride=None, ScalarType? dtype=None, *, Device? device=None, Layout? layout=None) -> ()", tags_0);
  m.def("_print(str s) -> ()", tags_0);
  m.def("sym_constrain_range(Scalar size, *, int? min=None, int? max=None) -> ()", tags_0);
  m.def("sym_constrain_range_for_size(Scalar size, *, int? min=None, int? max=None) -> ()", tags_0);
  m.def("_functional_sym_constrain_range(Scalar size, int? min, int? max, Tensor dep_token) -> Tensor", tags_0);
  m.def("_functional_sym_constrain_range_for_size(Scalar size, int? min, int? max, Tensor dep_token) -> Tensor", tags_0);
  m.def("_make_dep_token(*, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("refine_names(Tensor(a) self, Dimname[] names) -> Tensor(a)", tags_0);
  m.def("_use_cudnn_ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank) -> bool", tags_0);
  m.def("_use_cudnn_ctc_loss.Tensor(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank) -> bool", tags_0);
  m.def("_cudnn_ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank, bool deterministic, bool zero_infinity) -> (Tensor, Tensor)", tags_0);
  m.def("_cudnn_ctc_loss.Tensor(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank, bool deterministic, bool zero_infinity) -> (Tensor, Tensor)", tags_0);
  m.def("_use_cudnn_rnn_flatten_weight() -> bool", tags_0);
  m.def("_cudnn_rnn_flatten_weight(Tensor[] weight_arr, int weight_stride0, SymInt input_size, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, bool bidirectional) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_2 = {at::Tag::nondeterministic_seeded, at::Tag::pt2_compliant_tag};
  m.def("_cudnn_rnn(Tensor input, Tensor[] weight, int weight_stride0, Tensor? weight_buf, Tensor hx, Tensor? cx, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, SymInt[] batch_sizes, Tensor? dropout_state) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_2);
  m.def("_cudnn_rnn_backward(Tensor input, Tensor[] weight, int weight_stride0, Tensor weight_buf, Tensor hx, Tensor? cx, Tensor output, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, SymInt[] batch_sizes, Tensor? dropout_state, Tensor reserve, bool[4] output_mask) -> (Tensor, Tensor, Tensor, Tensor[])", tags_0);
  m.def("_cudnn_init_dropout_state(float dropout, bool train, int dropout_seed, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_2);
  m.def("_debug_has_internal_overlap(Tensor self) -> int", tags_0);
  m.def("_fused_dropout(Tensor self, float p, Generator? generator=None) -> (Tensor, Tensor)", tags_2);
  m.def("_masked_scale(Tensor self, Tensor mask, float scale) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_3 = {at::Tag::core, at::Tag::nondeterministic_seeded, at::Tag::pt2_compliant_tag};
  m.def("native_dropout(Tensor input, float p, bool? train) -> (Tensor, Tensor)", tags_3);
  const std::vector<at::Tag> tags_4 = {at::Tag::pointwise, at::Tag::pt2_compliant_tag};
  m.def("native_dropout_backward(Tensor grad_output, Tensor mask, float scale) -> Tensor", tags_4);
  m.def("_sobol_engine_draw(Tensor quasi, int n, Tensor sobolstate, int dimension, int num_generated, ScalarType? dtype) -> (Tensor, Tensor)", tags_0);
  m.def("_sobol_engine_ff_(Tensor(a!) self, int n, Tensor sobolstate, int dimension, int num_generated) -> Tensor(a!)", tags_0);
  m.def("_sobol_engine_scramble_(Tensor(a!) self, Tensor ltm, int dimension) -> Tensor(a!)", tags_0);
  m.def("_sobol_engine_initialize_state_(Tensor(a!) self, int dimension) -> Tensor(a!)", tags_0);
  m.def("_reshape_from_tensor(Tensor self, Tensor shape) -> Tensor", tags_0);
  m.def("_shape_as_tensor(Tensor self) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_5 = {at::Tag::maybe_aliasing_or_mutating, at::Tag::nondeterministic_seeded, at::Tag::pt2_compliant_tag};
  m.def("dropout(Tensor input, float p, bool train) -> Tensor", tags_5);
  m.def("dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)", tags_2);
  m.def("feature_dropout(Tensor input, float p, bool train) -> Tensor", tags_5);
  m.def("feature_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)", tags_2);
  m.def("alpha_dropout(Tensor input, float p, bool train) -> Tensor", tags_5);
  m.def("alpha_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)", tags_2);
  m.def("feature_alpha_dropout(Tensor input, float p, bool train) -> Tensor", tags_5);
  m.def("feature_alpha_dropout_(Tensor(a!) self, float p, bool train) -> Tensor(a!)", tags_2);
  const std::vector<at::Tag> tags_6 = {at::Tag::core, at::Tag::pointwise, at::Tag::pt2_compliant_tag};
  m.def("abs(Tensor self) -> Tensor", tags_6);
  m.def("abs_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("abs.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("absolute(Tensor self) -> Tensor", tags_0);
  m.def("absolute_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("absolute.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("angle(Tensor self) -> Tensor", tags_4);
  m.def("angle.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("view_as_real(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("view_as_complex(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("sgn(Tensor self) -> Tensor", tags_4);
  m.def("sgn_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sgn.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("chalf(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("real(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("imag(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_conj(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("conj(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_conj_physical(Tensor self) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_7 = {at::Tag::maybe_aliasing_or_mutating, at::Tag::pointwise, at::Tag::pt2_compliant_tag};
  m.def("conj_physical(Tensor self) -> Tensor", tags_7);
  m.def("conj_physical.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("conj_physical_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("resolve_conj(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("resolve_neg(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_neg_view(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("acos(Tensor self) -> Tensor", tags_6);
  m.def("acos_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("acos.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arccos(Tensor self) -> Tensor", tags_0);
  m.def("arccos_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arccos.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  const std::vector<at::Tag> tags_8 = {at::Tag::core, at::Tag::pt2_compliant_tag};
  m.def("avg_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, bool ceil_mode=False, bool count_include_pad=True) -> Tensor", tags_8);
  m.def("adaptive_avg_pool1d(Tensor self, int[1] output_size) -> Tensor", tags_8);
  m.def("adaptive_max_pool1d(Tensor self, int[1] output_size) -> (Tensor, Tensor)", tags_0);
  m.def("add.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor", tags_6);
  m.def("add_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)", tags_4);
  m.def("add.out(Tensor self, Tensor other, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("_add_relu.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor", tags_0);
  m.def("_add_relu_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("_add_relu.out(Tensor self, Tensor other, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_add_relu.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> Tensor", tags_0);
  m.def("_add_relu_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("add.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> Tensor", tags_6);
  m.def("add_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)", tags_4);
  m.def("addmv(Tensor self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("addmv_(Tensor(a!) self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("addmv.out(Tensor self, Tensor mat, Tensor vec, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("addr(Tensor self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("addr_(Tensor(a!) self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("addr.out(Tensor self, Tensor vec1, Tensor vec2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("affine_grid_generator(Tensor theta, SymInt[] size, bool align_corners) -> Tensor", tags_0);
  m.def("affine_grid_generator_backward(Tensor grad, SymInt[] size, bool align_corners) -> Tensor", tags_0);
  m.def("_is_all_true(Tensor self) -> Tensor", tags_0);
  m.def("_is_any_true(Tensor self) -> Tensor", tags_0);
  m.def("_test_check_tensor(Tensor self) -> Tensor", tags_0);
  m.def("_test_functorch_fallback(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("all.dim(Tensor self, int dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("all.dims(Tensor self, int[]? dim=None, bool keepdim=False) -> Tensor", tags_0);
  m.def("all.out(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("all.dims_out(Tensor self, int[]? dim=None, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("all.dimname(Tensor self, Dimname dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("all.dimname_out(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  const std::vector<at::Tag> tags_9 = {at::Tag::data_dependent_output, at::Tag::pt2_compliant_tag};
  m.def("allclose(Tensor self, Tensor other, float rtol=1e-05, float atol=1e-08, bool equal_nan=False) -> bool", tags_9);
  m.def("any.dim(Tensor self, int dim, bool keepdim=False) -> Tensor", tags_8);
  m.def("any.dims(Tensor self, int[]? dim=None, bool keepdim=False) -> Tensor", tags_8);
  m.def("any.out(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("any.dims_out(Tensor self, int[]? dim=None, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("any.dimname(Tensor self, Dimname dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("any.dimname_out(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("arange(Scalar end, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("arange.start(Scalar start, Scalar end, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("arange.start_step(Scalar start, Scalar end, Scalar step=1, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_8);
  m.def("arange.out(Scalar end, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("arange.start_out(Scalar start, Scalar end, Scalar step=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_dim_arange(Tensor like, int dim) -> Tensor", tags_0);
  m.def("argmax(Tensor self, int? dim=None, bool keepdim=False) -> Tensor", tags_8);
  m.def("argmax.out(Tensor self, int? dim=None, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("argmin(Tensor self, int? dim=None, bool keepdim=False) -> Tensor", tags_8);
  m.def("argmin.out(Tensor self, int? dim=None, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("acosh(Tensor self) -> Tensor", tags_6);
  m.def("acosh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("acosh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arccosh(Tensor self) -> Tensor", tags_0);
  m.def("arccosh_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arccosh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("asinh(Tensor self) -> Tensor", tags_6);
  m.def("asinh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("asinh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arcsinh(Tensor self) -> Tensor", tags_0);
  m.def("arcsinh_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arcsinh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("atanh(Tensor self) -> Tensor", tags_6);
  m.def("atanh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("atanh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arctanh(Tensor self) -> Tensor", tags_0);
  m.def("arctanh_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arctanh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("as_strided(Tensor(a) self, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None) -> Tensor(a)", tags_8);
  m.def("as_strided_(Tensor(a!) self, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None) -> Tensor(a!)", tags_1);
  m.def("asin(Tensor self) -> Tensor", tags_6);
  m.def("asin_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("asin.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arcsin(Tensor self) -> Tensor", tags_0);
  m.def("arcsin_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arcsin.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("atan(Tensor self) -> Tensor", tags_6);
  m.def("atan_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("atan.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("arctan(Tensor self) -> Tensor", tags_0);
  m.def("arctan_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("arctan.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  const std::vector<at::Tag> tags_10 = {at::Tag::maybe_aliasing_or_mutating, at::Tag::pt2_compliant_tag};
  m.def("atleast_1d(Tensor self) -> Tensor", tags_10);
  m.def("atleast_1d.Sequence(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("atleast_2d(Tensor self) -> Tensor", tags_10);
  m.def("atleast_2d.Sequence(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("atleast_3d(Tensor self) -> Tensor", tags_10);
  m.def("atleast_3d.Sequence(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("baddbmm(Tensor self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("baddbmm_(Tensor(a!) self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("baddbmm.out(Tensor self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("bartlett_window(int window_length, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("bartlett_window.periodic(int window_length, bool periodic, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> Tensor", tags_10);
  m.def("quantized_batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor mean, Tensor var, float eps, float output_scale, int output_zero_point) -> Tensor", tags_0);
  m.def("_batch_norm_impl_index(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, bool cudnn_enabled) -> (Tensor, Tensor, Tensor, Tensor, int)", tags_10);
  m.def("_batch_norm_impl_index_backward(int impl_index, Tensor input, Tensor grad_output, Tensor? weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var_transform, bool train, float eps, bool[3] output_mask, Tensor reservedSpace) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("bernoulli(Tensor self, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("bernoulli.out(Tensor self, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("bernoulli_.Tensor(Tensor(a!) self, Tensor p, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("bernoulli_.float(Tensor(a!) self, float p=0.5, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("bernoulli.p(Tensor self, float p, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("bilinear(Tensor input1, Tensor input2, Tensor weight, Tensor? bias=None) -> Tensor", tags_0);
  m.def("binary_cross_entropy(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean) -> Tensor", tags_0);
  m.def("binary_cross_entropy.out(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("binary_cross_entropy_backward(Tensor grad_output, Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean) -> Tensor", tags_0);
  m.def("binary_cross_entropy_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("binary_cross_entropy_with_logits(Tensor self, Tensor target, Tensor? weight=None, Tensor? pos_weight=None, int reduction=Mean) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_11 = {at::Tag::dynamic_output_shape, at::Tag::pt2_compliant_tag};
  m.def("bincount(Tensor self, Tensor? weights=None, int minlength=0) -> Tensor", tags_11);
  m.def("bitwise_not(Tensor self) -> Tensor", tags_6);
  m.def("bitwise_not_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("bitwise_not.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("copysign.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("copysign.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("copysign_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("copysign.Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("copysign_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("copysign.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("_lazy_clone(Tensor self) -> Tensor", tags_0);
  m.def("logical_not(Tensor self) -> Tensor", tags_6);
  m.def("logical_not_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("logical_not.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logical_xor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("logical_xor_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("logical_xor.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logical_and(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("logical_and_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("logical_and.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logical_or(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("logical_or_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("logical_or.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("blackman_window(int window_length, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("blackman_window.periodic(int window_length, bool periodic, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("bmm(Tensor self, Tensor mat2) -> Tensor", tags_8);
  m.def("bmm.out(Tensor self, Tensor mat2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("broadcast_tensors(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("broadcast_to(Tensor(a) self, SymInt[] size) -> Tensor(a)", tags_0);
  m.def("_sparse_broadcast_to(Tensor(a) self, int[] size) -> Tensor(a)", tags_0);
  m.def("cat(Tensor[] tensors, int dim=0) -> Tensor", tags_8);
  m.def("cat.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cat.names(Tensor[] tensors, Dimname dim) -> Tensor", tags_0);
  m.def("cat.names_out(Tensor[] tensors, Dimname dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("concat(Tensor[] tensors, int dim=0) -> Tensor", tags_0);
  m.def("concat.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("concat.names(Tensor[] tensors, Dimname dim) -> Tensor", tags_0);
  m.def("concat.names_out(Tensor[] tensors, Dimname dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("concatenate(Tensor[] tensors, int dim=0) -> Tensor", tags_0);
  m.def("concatenate.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("concatenate.names(Tensor[] tensors, Dimname dim) -> Tensor", tags_0);
  m.def("concatenate.names_out(Tensor[] tensors, Dimname dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("block_diag(Tensor[] tensors) -> Tensor", tags_0);
  m.def("ceil(Tensor self) -> Tensor", tags_6);
  m.def("ceil_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("ceil.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("chain_matmul(Tensor[] matrices) -> Tensor", tags_0);
  m.def("chain_matmul.out(Tensor[] matrices, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("unsafe_chunk(Tensor self, int chunks, int dim=0) -> Tensor[]", tags_10);
  m.def("chunk(Tensor(a -> *) self, int chunks, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("tensor_split.sections(Tensor(a -> *) self, SymInt sections, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("tensor_split.indices(Tensor(a -> *) self, SymInt[] indices, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("tensor_split.tensor_indices_or_sections(Tensor(a -> *) self, Tensor tensor_indices_or_sections, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("clamp(Tensor self, Scalar? min=None, Scalar? max=None) -> Tensor", tags_6);
  m.def("clamp.Tensor(Tensor self, Tensor? min=None, Tensor? max=None) -> Tensor", tags_6);
  m.def("clamp_(Tensor(a!) self, Scalar? min=None, Scalar? max=None) -> Tensor(a!)", tags_4);
  m.def("clamp_.Tensor(Tensor(a!) self, Tensor? min=None, Tensor? max=None) -> Tensor(a!)", tags_4);
  m.def("clamp.out(Tensor self, Scalar? min=None, Scalar? max=None, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clamp.Tensor_out(Tensor self, Tensor? min=None, Tensor? max=None, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clamp_max(Tensor self, Scalar max) -> Tensor", tags_4);
  m.def("clamp_max.Tensor(Tensor self, Tensor max) -> Tensor", tags_4);
  m.def("clamp_max_(Tensor(a!) self, Scalar max) -> Tensor(a!)", tags_4);
  m.def("clamp_max_.Tensor(Tensor(a!) self, Tensor max) -> Tensor(a!)", tags_4);
  m.def("clamp_max.out(Tensor self, Scalar max, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clamp_max.Tensor_out(Tensor self, Tensor max, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clamp_min(Tensor self, Scalar min) -> Tensor", tags_4);
  m.def("clamp_min.Tensor(Tensor self, Tensor min) -> Tensor", tags_4);
  m.def("clamp_min_(Tensor(a!) self, Scalar min) -> Tensor(a!)", tags_4);
  m.def("clamp_min_.Tensor(Tensor(a!) self, Tensor min) -> Tensor(a!)", tags_4);
  m.def("clamp_min.out(Tensor self, Scalar min, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clamp_min.Tensor_out(Tensor self, Tensor min, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clip(Tensor self, Scalar? min=None, Scalar? max=None) -> Tensor", tags_4);
  m.def("clip.Tensor(Tensor self, Tensor? min=None, Tensor? max=None) -> Tensor", tags_4);
  m.def("clip_(Tensor(a!) self, Scalar? min=None, Scalar? max=None) -> Tensor(a!)", tags_4);
  m.def("clip_.Tensor(Tensor(a!) self, Tensor? min=None, Tensor? max=None) -> Tensor(a!)", tags_4);
  m.def("clip.out(Tensor self, Scalar? min=None, Scalar? max=None, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("clip.Tensor_out(Tensor self, Tensor? min=None, Tensor? max=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cudnn_is_acceptable(Tensor self) -> bool", tags_0);
  m.def("complex(Tensor real, Tensor imag) -> Tensor", tags_0);
  m.def("complex.out(Tensor real, Tensor imag, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("polar(Tensor abs, Tensor angle) -> Tensor", tags_0);
  m.def("polar.out(Tensor abs, Tensor angle, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("constant_pad_nd(Tensor self, SymInt[] pad, Scalar value=0) -> Tensor", tags_8);
  m.def("contiguous(Tensor(a) self, *, MemoryFormat memory_format=contiguous_format) -> Tensor(a)", tags_0);
  m.def("convolution(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups) -> Tensor", tags_8);
  m.def("convolution_backward(Tensor grad_output, Tensor input, Tensor weight, SymInt[]? bias_sizes, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("convolution_overrideable(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups) -> Tensor", tags_0);
  m.def("convolution_backward_overrideable(Tensor grad_output, Tensor input, Tensor weight, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)", tags_0);
  m.def("_convolution(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32) -> Tensor", tags_0);
  m.def("_convolution.deprecated(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, int[] output_padding, SymInt groups, bool benchmark, bool deterministic, bool cudnn_enabled) -> Tensor", tags_0);
  m.def("_convolution_mode(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, str padding, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("_convolution_double_backward(Tensor? ggI, Tensor? ggW, Tensor? ggb, Tensor gO, Tensor weight, Tensor self, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("conv1d(Tensor input, Tensor weight, Tensor? bias=None, SymInt[1] stride=1, SymInt[1] padding=0, SymInt[1] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv2d(Tensor input, Tensor weight, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv3d(Tensor input, Tensor weight, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv1d.padding(Tensor input, Tensor weight, Tensor? bias=None, SymInt[1] stride=1, str padding=\"valid\", SymInt[1] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv2d.padding(Tensor input, Tensor weight, Tensor? bias=None, SymInt[2] stride=1, str padding=\"valid\", SymInt[2] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv3d.padding(Tensor input, Tensor weight, Tensor? bias=None, SymInt[3] stride=1, str padding=\"valid\", SymInt[3] dilation=1, SymInt groups=1) -> Tensor", tags_0);
  m.def("conv_tbc(Tensor self, Tensor weight, Tensor bias, int pad=0) -> Tensor", tags_0);
  m.def("conv_tbc_backward(Tensor self, Tensor input, Tensor weight, Tensor bias, int pad) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("conv_transpose1d(Tensor input, Tensor weight, Tensor? bias=None, SymInt[1] stride=1, SymInt[1] padding=0, SymInt[1] output_padding=0, SymInt groups=1, SymInt[1] dilation=1) -> Tensor", tags_0);
  m.def("conv_transpose2d.input(Tensor input, Tensor weight, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] output_padding=0, SymInt groups=1, SymInt[2] dilation=1) -> Tensor", tags_0);
  m.def("conv_transpose3d.input(Tensor input, Tensor weight, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] output_padding=0, SymInt groups=1, SymInt[3] dilation=1) -> Tensor", tags_0);
  m.def("copy(Tensor self, Tensor src, bool non_blocking=False) -> Tensor", tags_8);
  m.def("copy_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> Tensor(a!)", tags_0);
  m.def("_copy_from(Tensor self, Tensor dst, bool non_blocking=False) -> Tensor", tags_0);
  m.def("_copy_from_and_resize(Tensor self, Tensor dst) -> Tensor", tags_0);
  m.def("cos(Tensor self) -> Tensor", tags_6);
  m.def("cos_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("cos.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("cosh(Tensor self) -> Tensor", tags_6);
  m.def("cosh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("cosh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("cosine_embedding_loss(Tensor input1, Tensor input2, Tensor target, float margin=0.0, int reduction=Mean) -> Tensor", tags_0);
  m.def("count_nonzero.dim_IntList(Tensor self, int[] dim) -> Tensor", tags_0);
  m.def("count_nonzero(Tensor self, int? dim=None) -> Tensor", tags_0);
  m.def("cov(Tensor self, *, int correction=1, Tensor? fweights=None, Tensor? aweights=None) -> Tensor", tags_0);
  m.def("corrcoef(Tensor self) -> Tensor", tags_0);
  m.def("cudnn_affine_grid_generator(Tensor theta, int N, int C, int H, int W) -> Tensor grid", tags_0);
  m.def("cudnn_affine_grid_generator_backward(Tensor grad, int N, int C, int H, int W) -> Tensor grad_theta", tags_0);
  m.def("cudnn_batch_norm(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("cudnn_batch_norm_backward(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon, Tensor reserveSpace) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("cudnn_convolution(Tensor self, Tensor weight, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, bool allow_tf32) -> Tensor", tags_0);
  m.def("cudnn_convolution.out(Tensor self, Tensor weight, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, bool allow_tf32, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cudnn_convolution_transpose(Tensor self, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, bool allow_tf32) -> Tensor", tags_0);
  m.def("_mps_convolution_transpose(Tensor self, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("mps_convolution_transpose_backward(Tensor self, Tensor grad_output, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool[2] output_mask) -> (Tensor, Tensor)", tags_0);
  m.def("cudnn_convolution_relu(Tensor self, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("cudnn_convolution_add_relu(Tensor self, Tensor weight, Tensor z, Scalar? alpha, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("cudnn_grid_sampler(Tensor self, Tensor grid) -> Tensor output", tags_0);
  m.def("cudnn_grid_sampler_backward(Tensor self, Tensor grid, Tensor grad_output) -> (Tensor grad_self, Tensor grad_grid)", tags_0);
  m.def("cummax(Tensor self, int dim) -> (Tensor values, Tensor indices)", tags_0);
  m.def("cummax.out(Tensor self, int dim, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("cummax.dimname(Tensor self, Dimname dim) -> (Tensor values, Tensor indices)", tags_0);
  m.def("cummax.dimname_out(Tensor self, Dimname dim, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("_cummax_helper(Tensor self, Tensor(a!) values, Tensor(b!) indices, int dim) -> ()", tags_0);
  m.def("cummin(Tensor self, int dim) -> (Tensor values, Tensor indices)", tags_0);
  m.def("cummin.out(Tensor self, int dim, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("cummin.dimname(Tensor self, Dimname dim) -> (Tensor values, Tensor indices)", tags_0);
  m.def("cummin.dimname_out(Tensor self, Dimname dim, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("_cummin_helper(Tensor self, Tensor(a!) values, Tensor(b!) indices, int dim) -> ()", tags_0);
  m.def("cummaxmin_backward(Tensor grad, Tensor input, Tensor indices, int dim) -> Tensor", tags_0);
  m.def("cumprod(Tensor self, int dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("cumprod_(Tensor(a!) self, int dim, *, ScalarType? dtype=None) -> Tensor(a!)", tags_0);
  m.def("cumprod.out(Tensor self, int dim, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cumprod.dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("cumprod_.dimname(Tensor(a!) self, Dimname dim, *, ScalarType? dtype=None) -> Tensor(a!)", tags_0);
  m.def("cumprod.dimname_out(Tensor self, Dimname dim, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cumprod_backward(Tensor grad, Tensor input, int dim, Tensor output) -> Tensor", tags_0);
  m.def("cumsum(Tensor self, int dim, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("cumsum_(Tensor(a!) self, int dim, *, ScalarType? dtype=None) -> Tensor(a!)", tags_0);
  m.def("cumsum.out(Tensor self, int dim, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cumsum.dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("cumsum_.dimname(Tensor(a!) self, Dimname dim, *, ScalarType? dtype=None) -> Tensor(a!)", tags_0);
  m.def("cumsum.dimname_out(Tensor self, Dimname dim, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cumulative_trapezoid.x(Tensor y, Tensor x, *, int dim=-1) -> Tensor", tags_0);
  m.def("cumulative_trapezoid.dx(Tensor y, *, Scalar dx=1, int dim=-1) -> Tensor", tags_0);
  m.def("ctc_loss.IntList(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank=0, int reduction=Mean, bool zero_infinity=False) -> Tensor", tags_0);
  m.def("ctc_loss.Tensor(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank=0, int reduction=Mean, bool zero_infinity=False) -> Tensor", tags_0);
  m.def("_ctc_loss(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank=0, bool zero_infinity=False) -> (Tensor, Tensor)", tags_11);
  m.def("_ctc_loss.Tensor(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank=0, bool zero_infinity=False) -> (Tensor, Tensor)", tags_11);
  m.def("_ctc_loss_backward(Tensor grad, Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, Tensor neg_log_likelihood, Tensor log_alpha, int blank, bool zero_infinity=False) -> Tensor", tags_0);
  m.def("_ctc_loss_backward.Tensor(Tensor grad, Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, Tensor neg_log_likelihood, Tensor log_alpha, int blank, bool zero_infinity=False) -> Tensor", tags_0);
  m.def("diag_embed(Tensor self, int offset=0, int dim1=-2, int dim2=-1) -> Tensor", tags_0);
  m.def("diagflat(Tensor self, int offset=0) -> Tensor", tags_0);
  m.def("diagonal(Tensor(a) self, int offset=0, int dim1=0, int dim2=1) -> Tensor(a)", tags_8);
  m.def("linalg_diagonal(Tensor(a) A, *, int offset=0, int dim1=-2, int dim2=-1) -> Tensor(a)", tags_0);
  m.def("diagonal.Dimname(Tensor(a) self, *, Dimname outdim, Dimname dim1, Dimname dim2, int offset=0) -> Tensor(a)", tags_0);
  m.def("diagonal_backward(Tensor grad_output, SymInt[] input_sizes, int offset, int dim1, int dim2) -> Tensor", tags_0);
  m.def("fill_diagonal_(Tensor(a!) self, Scalar fill_value, bool wrap=False) -> Tensor(a!)", tags_0);
  m.def("diff(Tensor self, int n=1, int dim=-1, Tensor? prepend=None, Tensor? append=None) -> Tensor", tags_0);
  m.def("diff.out(Tensor self, int n=1, int dim=-1, Tensor? prepend=None, Tensor? append=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("gradient.scalarint(Tensor self, *, Scalar? spacing=None, int? dim=None, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.scalararray(Tensor self, *, Scalar spacing, int[] dim, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.array(Tensor self, *, int[] dim, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.scalarrayint(Tensor self, *, Scalar[] spacing, int? dim=None, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.scalarrayarray(Tensor self, *, Scalar[] spacing, int[] dim, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.tensorarrayint(Tensor self, *, Tensor[] spacing, int? dim=None, int edge_order=1) -> Tensor[]", tags_0);
  m.def("gradient.tensorarray(Tensor self, *, Tensor[] spacing, int[] dim, int edge_order=1) -> Tensor[]", tags_0);
  m.def("div.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("div_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("div.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("div.Tensor_mode(Tensor self, Tensor other, *, str? rounding_mode) -> Tensor", tags_6);
  m.def("div_.Tensor_mode(Tensor(a!) self, Tensor other, *, str? rounding_mode) -> Tensor(a!)", tags_4);
  m.def("div.out_mode(Tensor self, Tensor other, *, str? rounding_mode, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("div.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("div_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("div.Scalar_mode(Tensor self, Scalar other, *, str? rounding_mode) -> Tensor", tags_6);
  m.def("div_.Scalar_mode(Tensor(a!) self, Scalar other, *, str? rounding_mode) -> Tensor(a!)", tags_4);
  m.def("divide.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("divide_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("divide.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("divide.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("divide_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("divide.Tensor_mode(Tensor self, Tensor other, *, str? rounding_mode) -> Tensor", tags_0);
  m.def("divide_.Tensor_mode(Tensor(a!) self, Tensor other, *, str? rounding_mode) -> Tensor(a!)", tags_0);
  m.def("divide.out_mode(Tensor self, Tensor other, *, str? rounding_mode, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("divide.Scalar_mode(Tensor self, Scalar other, *, str? rounding_mode) -> Tensor", tags_0);
  m.def("divide_.Scalar_mode(Tensor(a!) self, Scalar other, *, str? rounding_mode) -> Tensor(a!)", tags_0);
  m.def("true_divide.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("true_divide_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("true_divide.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("true_divide.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("true_divide_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("dot(Tensor self, Tensor tensor) -> Tensor", tags_0);
  m.def("dot.out(Tensor self, Tensor tensor, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("vdot(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("vdot.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("einsum(str equation, Tensor[] tensors, *, int[]? path=None) -> Tensor", tags_0);
  m.def("embedding(Tensor weight, Tensor indices, SymInt padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False) -> Tensor", tags_8);
  m.def("embedding_backward(Tensor grad, Tensor indices, SymInt num_weights, SymInt padding_idx, bool scale_grad_by_freq, bool sparse) -> Tensor", tags_0);
  m.def("embedding_dense_backward(Tensor grad_output, Tensor indices, SymInt num_weights, SymInt padding_idx, bool scale_grad_by_freq) -> Tensor", tags_8);
  m.def("embedding_renorm_(Tensor(a!) self, Tensor indices, float max_norm, float norm_type) -> Tensor(a!)", tags_0);
  m.def("embedding_sparse_backward(Tensor grad, Tensor indices, int num_weights, int padding_idx, bool scale_grad_by_freq) -> Tensor", tags_0);
  m.def("_embedding_bag_forward_only(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq=False, int mode=0, bool sparse=False, Tensor? per_sample_weights=None, bool include_last_offset=False, int padding_idx=-1) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_rowwise_prune(Tensor weight, Tensor mask, ScalarType compressed_indices_dtype) -> (Tensor, Tensor)", tags_0);
  m.def("row_stack(Tensor[] tensors) -> Tensor", tags_0);
  m.def("row_stack.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("embedding_bag(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq=False, int mode=0, bool sparse=False, Tensor? per_sample_weights=None, bool include_last_offset=False) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("embedding_bag.padding_idx(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq, int mode, bool sparse, Tensor? per_sample_weights, bool include_last_offset, int? padding_idx) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_embedding_bag(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq=False, int mode=0, bool sparse=False, Tensor? per_sample_weights=None, bool include_last_offset=False, int padding_idx=-1) -> (Tensor, Tensor, Tensor, Tensor)", tags_8);
  m.def("_embedding_bag_backward(Tensor grad, Tensor indices, Tensor offsets, Tensor offset2bag, Tensor bag_size, Tensor maximum_indices, SymInt num_weights, bool scale_grad_by_freq, int mode, bool sparse, Tensor? per_sample_weights, int padding_idx=-1) -> Tensor", tags_0);
  m.def("_embedding_bag_sparse_backward(Tensor grad, Tensor indices, Tensor offsets, Tensor offset2bag, Tensor bag_size, SymInt num_weights, bool scale_grad_by_freq, int mode, Tensor? per_sample_weights, int padding_idx=-1) -> Tensor", tags_0);
  m.def("_embedding_bag_dense_backward(Tensor grad, Tensor indices, Tensor offset2bag, Tensor bag_size, Tensor maximum_indices, SymInt num_weights, bool scale_grad_by_freq, int mode, Tensor? per_sample_weights, int padding_idx=-1) -> Tensor", tags_0);
  m.def("_embedding_bag_per_sample_weights_backward(Tensor grad, Tensor weight, Tensor indices, Tensor offsets, Tensor offset2bag, int mode, int padding_idx=-1) -> Tensor", tags_0);
  m.def("empty.names(int[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("empty.memory_format(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_8);
  m.def("empty_permuted(SymInt[] size, int[] physical_layout, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("new_empty(Tensor self, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("new_empty_strided(Tensor self, SymInt[] size, SymInt[] stride, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("new_full(Tensor self, SymInt[] size, Scalar fill_value, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("new_zeros(Tensor self, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("new_ones(Tensor self, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_empty_affine_quantized(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, float scale=1, int zero_point=0, MemoryFormat? memory_format=contiguous_format) -> Tensor", tags_0);
  m.def("_empty_per_channel_affine_quantized(SymInt[] size, *, Tensor scales, Tensor zero_points, int axis, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=contiguous_format) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_12 = {at::Tag::core, at::Tag::inplace_view, at::Tag::pt2_compliant_tag};
  m.def("resize_(Tensor(a!) self, SymInt[] size, *, MemoryFormat? memory_format=None) -> Tensor(a!)", tags_12);
  m.def("_resize_output_(Tensor(a!) self, SymInt[] size, Device device) -> Tensor(a!)", tags_0);
  m.def("empty_quantized(int[] size, Tensor qtensor, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("empty.out(SymInt[] size, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("empty_like(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("empty_strided(SymInt[] size, SymInt[] stride, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_8);
  m.def("erf(Tensor self) -> Tensor", tags_6);
  m.def("erf_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("erf.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("erfc(Tensor self) -> Tensor", tags_4);
  m.def("erfc_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("erfc.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("exp(Tensor self) -> Tensor", tags_6);
  m.def("exp_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("exp.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("exp2(Tensor self) -> Tensor", tags_4);
  m.def("exp2_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("exp2.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("expm1(Tensor self) -> Tensor", tags_6);
  m.def("expm1_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("expm1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("expand(Tensor(a) self, SymInt[] size, *, bool implicit=False) -> Tensor(a)", tags_8);
  m.def("expand_as(Tensor(a) self, Tensor other) -> Tensor(a)", tags_0);
  m.def("eye(SymInt n, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("eye.m(SymInt n, SymInt m, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("eye.out(SymInt n, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("eye.m_out(SymInt n, SymInt m, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("flatten.using_ints(Tensor(a) self, int start_dim=0, int end_dim=-1) -> Tensor(a)", tags_0);
  m.def("flatten.named_out_dim(Tensor(a) self, int start_dim, int end_dim, Dimname out_dim) -> Tensor(a)", tags_0);
  m.def("flatten.using_names(Tensor(a) self, Dimname start_dim, Dimname end_dim, Dimname out_dim) -> Tensor(a)", tags_0);
  m.def("flatten.DimnameList(Tensor(a) self, Dimname[] dims, Dimname out_dim) -> Tensor(a)", tags_0);
  m.def("unflatten.int(Tensor(a) self, int dim, SymInt[] sizes) -> Tensor(a)", tags_0);
  m.def("unflatten.Dimname(Tensor(a) self, Dimname dim, SymInt[] sizes, Dimname[] names) -> Tensor(a)", tags_0);
  m.def("fill.Scalar(Tensor self, Scalar value) -> Tensor", tags_8);
  m.def("fill.Tensor(Tensor self, Tensor value) -> Tensor", tags_0);
  m.def("fill_.Scalar(Tensor(a!) self, Scalar value) -> Tensor(a!)", tags_0);
  m.def("fill_.Tensor(Tensor(a!) self, Tensor value) -> Tensor(a!)", tags_0);
  m.def("floor(Tensor self) -> Tensor", tags_6);
  m.def("floor_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("floor.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("floor_divide(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("floor_divide_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("floor_divide.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("floor_divide.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("floor_divide_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("frac(Tensor self) -> Tensor", tags_4);
  m.def("frac_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("frac.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("full.names(int[] size, Scalar fill_value, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("full(SymInt[] size, Scalar fill_value, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_8);
  m.def("full.out(SymInt[] size, Scalar fill_value, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("full_like(Tensor self, Scalar fill_value, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_8);
  m.def("from_file(str filename, bool? shared=None, int? size=0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("gcd.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("gcd(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("gcd_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("lcm.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lcm(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("lcm_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("grid_sampler(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> Tensor", tags_0);
  m.def("grid_sampler_2d(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> Tensor", tags_8);
  m.def("grid_sampler_2d_backward(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, bool[2] output_mask) -> (Tensor, Tensor)", tags_0);
  m.def("_grid_sampler_2d_cpu_fallback(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> Tensor", tags_0);
  m.def("_grid_sampler_2d_cpu_fallback_backward(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> (Tensor, Tensor)", tags_0);
  m.def("grid_sampler_3d(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners) -> Tensor", tags_0);
  m.def("grid_sampler_3d_backward(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, bool[2] output_mask) -> (Tensor, Tensor)", tags_0);
  m.def("hann_window(int window_length, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hann_window.periodic(int window_length, bool periodic, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hamming_window(int window_length, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hamming_window.periodic(int window_length, bool periodic, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hamming_window.periodic_alpha(int window_length, bool periodic, float alpha, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hamming_window.periodic_alpha_beta(int window_length, bool periodic, float alpha, float beta, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("kaiser_window(int window_length, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("kaiser_window.periodic(int window_length, bool periodic, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("kaiser_window.beta(int window_length, bool periodic, float beta, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("hinge_embedding_loss(Tensor self, Tensor target, float margin=1.0, int reduction=Mean) -> Tensor", tags_0);
  m.def("group_norm(Tensor input, int num_groups, Tensor? weight=None, Tensor? bias=None, float eps=1e-05, bool cudnn_enabled=True) -> Tensor", tags_0);
  m.def("native_group_norm(Tensor input, Tensor? weight, Tensor? bias, SymInt N, SymInt C, SymInt HxW, int group, float eps) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("native_group_norm_backward(Tensor grad_out, Tensor input, Tensor mean, Tensor rstd, Tensor? weight, SymInt N, SymInt C, SymInt HxW, int group, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("_fft_r2c(Tensor self, int[] dim, int normalization, bool onesided) -> Tensor", tags_8);
  m.def("_fft_r2c.out(Tensor self, int[] dim, int normalization, bool onesided, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_fft_c2r(Tensor self, int[] dim, int normalization, SymInt last_dim_size) -> Tensor", tags_0);
  m.def("_fft_c2r.out(Tensor self, int[] dim, int normalization, SymInt last_dim_size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_fft_c2c(Tensor self, SymInt[] dim, int normalization, bool forward) -> Tensor", tags_0);
  m.def("_fft_c2c.out(Tensor self, SymInt[] dim, int normalization, bool forward, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_validate_compressed_sparse_indices(bool is_crow, Tensor compressed_idx, Tensor plain_idx, int cdim, int dim, int nnz) -> ()", tags_0);
  m.def("_cufft_get_plan_cache_size(DeviceIndex device_index) -> int", tags_0);
  m.def("_cufft_get_plan_cache_max_size(DeviceIndex device_index) -> int", tags_0);
  m.def("_cufft_set_plan_cache_max_size(DeviceIndex device_index, int max_size) -> ()", tags_0);
  m.def("_cufft_clear_plan_cache(DeviceIndex device_index) -> ()", tags_0);
  const std::vector<at::Tag> tags_13 = {at::Tag::core, at::Tag::dynamic_output_shape, at::Tag::pt2_compliant_tag};
  m.def("index.Tensor(Tensor self, Tensor?[] indices) -> Tensor", tags_13);
  m.def("index.Tensor_out(Tensor self, Tensor?[] indices, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_unsafe_index.Tensor(Tensor self, Tensor?[] indices) -> Tensor", tags_0);
  m.def("_unsafe_masked_index(Tensor self, Tensor mask, Tensor?[] indices, Scalar fill) -> Tensor", tags_0);
  m.def("_unsafe_masked_index_put_accumulate(Tensor self, Tensor mask, Tensor?[] indices, Tensor values) -> Tensor", tags_0);
  m.def("index_copy.out(Tensor self, int dim, Tensor index, Tensor source, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("index_copy_(Tensor(a!) self, int dim, Tensor index, Tensor source) -> Tensor(a!)", tags_0);
  m.def("index_copy(Tensor self, int dim, Tensor index, Tensor source) -> Tensor", tags_0);
  m.def("index_copy_.dimname(Tensor(a!) self, Dimname dim, Tensor index, Tensor source) -> Tensor(a!)", tags_0);
  m.def("index_copy.dimname(Tensor self, Dimname dim, Tensor index, Tensor source) -> Tensor", tags_0);
  m.def("index_put_(Tensor(a!) self, Tensor?[] indices, Tensor values, bool accumulate=False) -> Tensor(a!)", tags_0);
  m.def("index_put(Tensor self, Tensor?[] indices, Tensor values, bool accumulate=False) -> Tensor", tags_8);
  m.def("_unsafe_index_put(Tensor self, Tensor?[] indices, Tensor values, bool accumulate=False) -> Tensor", tags_0);
  m.def("_index_put_impl_(Tensor(a!) self, Tensor?[] indices, Tensor values, bool accumulate=False, bool unsafe=False) -> Tensor(a!)", tags_0);
  m.def("instance_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool use_input_stats, float momentum, float eps, bool cudnn_enabled) -> Tensor", tags_0);
  m.def("isclose(Tensor self, Tensor other, float rtol=1e-05, float atol=1e-08, bool equal_nan=False) -> Tensor", tags_0);
  m.def("isin.Tensor_Tensor_out(Tensor elements, Tensor test_elements, *, bool assume_unique=False, bool invert=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("isin.Tensor_Tensor(Tensor elements, Tensor test_elements, *, bool assume_unique=False, bool invert=False) -> Tensor", tags_0);
  m.def("isin.Tensor_Scalar_out(Tensor elements, Scalar test_element, *, bool assume_unique=False, bool invert=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("isin.Tensor_Scalar(Tensor elements, Scalar test_element, *, bool assume_unique=False, bool invert=False) -> Tensor", tags_0);
  m.def("isin.Scalar_Tensor_out(Scalar element, Tensor test_elements, *, bool assume_unique=False, bool invert=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("isin.Scalar_Tensor(Scalar element, Tensor test_elements, *, bool assume_unique=False, bool invert=False) -> Tensor", tags_0);
  m.def("isnan(Tensor self) -> Tensor", tags_6);
  m.def("is_distributed(Tensor self) -> bool", tags_0);
  m.def("is_floating_point(Tensor self) -> bool", tags_0);
  m.def("is_complex(Tensor self) -> bool", tags_0);
  m.def("is_conj(Tensor self) -> bool", tags_0);
  m.def("_is_zerotensor(Tensor self) -> bool", tags_0);
  m.def("is_neg(Tensor self) -> bool", tags_0);
  m.def("isreal(Tensor self) -> Tensor", tags_0);
  m.def("is_nonzero(Tensor self) -> bool", tags_0);
  m.def("is_same_size(Tensor self, Tensor other) -> bool", tags_0);
  m.def("is_signed(Tensor self) -> bool", tags_0);
  m.def("is_inference(Tensor self) -> bool", tags_0);
  m.def("kl_div(Tensor self, Tensor target, int reduction=Mean, *, bool log_target=False) -> Tensor", tags_0);
  m.def("kron(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("kron.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("kthvalue(Tensor self, int k, int dim=-1, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("kthvalue.values(Tensor self, int k, int dim=-1, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("kthvalue.dimname(Tensor self, int k, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("kthvalue.dimname_out(Tensor self, int k, Dimname dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("layer_norm(Tensor input, SymInt[] normalized_shape, Tensor? weight=None, Tensor? bias=None, float eps=1e-05, bool cudnn_enable=True) -> Tensor", tags_0);
  m.def("native_layer_norm(Tensor input, SymInt[] normalized_shape, Tensor? weight, Tensor? bias, float eps) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("native_layer_norm_backward(Tensor grad_out, Tensor input, SymInt[] normalized_shape, Tensor mean, Tensor rstd, Tensor? weight, Tensor? bias, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("rms_norm(Tensor input, SymInt[] normalized_shape, Tensor? weight=None, float? eps=None) -> Tensor", tags_0);
  m.def("nan_to_num(Tensor self, float? nan=None, float? posinf=None, float? neginf=None) -> Tensor", tags_4);
  m.def("nan_to_num_(Tensor(a!) self, float? nan=None, float? posinf=None, float? neginf=None) -> Tensor(a!)", tags_4);
  m.def("nan_to_num.out(Tensor self, float? nan=None, float? posinf=None, float? neginf=None, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("linear(Tensor input, Tensor weight, Tensor? bias=None) -> Tensor", tags_0);
  m.def("linear_backward(Tensor self, Tensor grad_output, Tensor weight, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("linear.out(Tensor input, Tensor weight, Tensor? bias=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mkldnn_linear(Tensor self, Tensor weight, Tensor? bias=None) -> Tensor", tags_0);
  m.def("mkldnn_linear_backward_input(int[] input_size, Tensor grad_output, Tensor weight) -> Tensor", tags_0);
  m.def("mkldnn_linear_backward_weights(Tensor grad_output, Tensor input, Tensor weight, bool bias_defined) -> (Tensor, Tensor)", tags_0);
  m.def("mkldnn_linear_backward(Tensor self, Tensor grad_output, Tensor weight, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_cslt_compress(Tensor input) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_14 = {at::Tag::needs_fixed_stride_order, at::Tag::pt2_compliant_tag};
  m.def("_cslt_sparse_mm(Tensor compressed_A, Tensor dense_B, Tensor? bias=None, Tensor? alpha=None, ScalarType? out_dtype=None, bool transpose_result=False, int alg_id=0, int split_k=1, bool split_k_one_kernel=True) -> Tensor", tags_14);
  m.def("_cslt_sparse_mm_search(Tensor compressed_A, Tensor dense_B, Tensor? bias=None, Tensor? alpha=None, ScalarType? out_dtype=None, bool transpose_result=False) -> int", tags_0);
  m.def("_sparse_semi_structured_tile(Tensor input, str algorithm=\"\", bool use_cutlass=True) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_sparse_semi_structured_apply(Tensor input, Tensor thread_masks) -> (Tensor, Tensor)", tags_0);
  m.def("_sparse_semi_structured_apply_dense(Tensor input, Tensor thread_masks) -> Tensor", tags_0);
  m.def("_sparse_semi_structured_linear(Tensor input, Tensor weight, Tensor meta, *, Tensor? bias=None, str? activation=None, ScalarType? out_dtype=None) -> Tensor", tags_0);
  m.def("_sparse_semi_structured_mm(Tensor mat1, Tensor mat1_meta, Tensor mat2, *, ScalarType? out_dtype=None) -> Tensor", tags_0);
  m.def("_sparse_semi_structured_addmm(Tensor input, Tensor mat1, Tensor mat1_meta, Tensor mat2, *, Scalar alpha=1, Scalar beta=1, ScalarType? out_dtype=None) -> Tensor", tags_0);
  m.def("_mixed_dtypes_linear(Tensor input, Tensor weight, Tensor scale, *, Tensor? bias=None, str? activation=None) -> Tensor", tags_0);
  m.def("fbgemm_linear_int8_weight_fp32_activation(Tensor input, Tensor weight, Tensor packed, Tensor col_offsets, Scalar weight_scale, Scalar weight_zero_point, Tensor bias) -> Tensor", tags_0);
  m.def("fbgemm_linear_int8_weight(Tensor input, Tensor weight, Tensor packed, Tensor col_offsets, Scalar weight_scale, Scalar weight_zero_point, Tensor bias) -> Tensor", tags_0);
  m.def("fbgemm_linear_quantize_weight(Tensor input) -> (Tensor, Tensor, float, int)", tags_0);
  m.def("fbgemm_pack_gemm_matrix_fp16(Tensor input) -> Tensor", tags_0);
  m.def("_wrapped_linear_prepack(Tensor weight, Tensor weight_scale, Tensor weight_zero_point, Tensor bias) -> Tensor", tags_0);
  m.def("_wrapped_quantized_linear_prepacked(Tensor input, Tensor input_scale, Tensor input_zero_point, Tensor packed_weight, Tensor output_scale, Tensor output_zero_point, int out_channel) -> Tensor", tags_0);
  m.def("fbgemm_linear_fp16_weight_fp32_activation(Tensor input, Tensor packed_weight, Tensor bias) -> Tensor", tags_0);
  m.def("fbgemm_linear_fp16_weight(Tensor input, Tensor packed_weight, Tensor bias) -> Tensor", tags_0);
  m.def("fbgemm_pack_quantized_matrix(Tensor input) -> Tensor", tags_0);
  m.def("fbgemm_pack_quantized_matrix.KN(Tensor input, int K, int N) -> Tensor", tags_0);
  m.def("ldexp.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("ldexp_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("ldexp.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("linspace(Scalar start, Scalar end, int steps, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("linspace.Tensor_Tensor(Tensor start, Tensor end, int steps, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("linspace.Tensor_Scalar(Tensor start, Scalar end, int steps, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("linspace.Scalar_Tensor(Scalar start, Tensor end, int steps, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("linspace.out(Scalar start, Scalar end, int steps, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linspace.Tensor_Tensor_out(Tensor start, Tensor end, int steps, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linspace.Tensor_Scalar_out(Tensor start, Scalar end, int steps, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linspace.Scalar_Tensor_out(Scalar start, Tensor end, int steps, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("log(Tensor self) -> Tensor", tags_6);
  m.def("log_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("log.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("log10(Tensor self) -> Tensor", tags_6);
  m.def("log10_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("log10.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("log1p(Tensor self) -> Tensor", tags_6);
  m.def("log1p_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("log1p.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("log2(Tensor self) -> Tensor", tags_6);
  m.def("log2_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("log2.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logaddexp.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logaddexp(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("logaddexp2.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logaddexp2(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("xlogy.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("xlogy.Scalar_Self(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("xlogy.Scalar_Other(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("xlogy_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("xlogy_.Scalar_Other(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("xlogy.OutTensor(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("xlogy.OutScalar_Self(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("xlogy.OutScalar_Other(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logspace(Scalar start, Scalar end, int steps, float base=10.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("logspace.Tensor_Tensor(Tensor start, Tensor end, int steps, float base=10.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("logspace.Tensor_Scalar(Tensor start, Scalar end, int steps, float base=10.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("logspace.Scalar_Tensor(Scalar start, Tensor end, int steps, float base=10.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("logspace.out(Scalar start, Scalar end, int steps, float base=10.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logspace.Tensor_Tensor_out(Tensor start, Tensor end, int steps, float base=10.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logspace.Tensor_Scalar_out(Tensor start, Scalar end, int steps, float base=10.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logspace.Scalar_Tensor_out(Scalar start, Tensor end, int steps, float base=10.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("log_softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("log_softmax.int_out(Tensor self, int dim, ScalarType? dtype=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("log_softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_log_softmax(Tensor self, int dim, bool half_to_float) -> Tensor", tags_8);
  m.def("_log_softmax.out(Tensor self, int dim, bool half_to_float, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_log_softmax_backward_data(Tensor grad_output, Tensor output, int dim, ScalarType input_dtype) -> Tensor", tags_0);
  m.def("_log_softmax_backward_data.out(Tensor grad_output, Tensor output, int dim, ScalarType input_dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_logcumsumexp(Tensor self, int dim) -> Tensor", tags_0);
  m.def("_logcumsumexp.out(Tensor self, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logcumsumexp(Tensor self, int dim) -> Tensor", tags_0);
  m.def("logcumsumexp.out(Tensor self, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logcumsumexp.dimname(Tensor self, Dimname dim) -> Tensor", tags_0);
  m.def("logcumsumexp.dimname_out(Tensor self, Dimname dim, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logsumexp(Tensor self, int[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("logsumexp.out(Tensor self, int[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("logsumexp.names(Tensor self, Dimname[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("logsumexp.names_out(Tensor self, Dimname[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("margin_ranking_loss(Tensor input1, Tensor input2, Tensor target, float margin=0.0, int reduction=Mean) -> Tensor", tags_0);
  m.def("matmul(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("matmul_backward(Tensor grad, Tensor self, Tensor other, bool[2] mask) -> (Tensor, Tensor)", tags_0);
  m.def("matmul.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("matrix_power(Tensor self, int n) -> Tensor", tags_0);
  m.def("matrix_power.out(Tensor self, int n, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("matrix_exp(Tensor self) -> Tensor", tags_0);
  m.def("matrix_exp_backward(Tensor self, Tensor grad) -> Tensor", tags_0);
  m.def("_aminmax(Tensor self) -> (Tensor, Tensor)", tags_0);
  m.def("_aminmax.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("aminmax(Tensor self, *, int? dim=None, bool keepdim=False) -> (Tensor min, Tensor max)", tags_0);
  m.def("aminmax.out(Tensor self, *, int? dim=None, bool keepdim=False, Tensor(a!) min, Tensor(b!) max) -> (Tensor(a!) min, Tensor(b!) max)", tags_0);
  m.def("_compute_linear_combination(Tensor input, Tensor coefficients) -> Tensor", tags_0);
  m.def("_compute_linear_combination.out(Tensor input, Tensor coefficients, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("max.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_8);
  m.def("max.dim_max(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) max, Tensor(b!) max_values) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("max.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("max.names_dim_max(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) max, Tensor(b!) max_values) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("value_selecting_reduction_backward(Tensor grad, int dim, Tensor indices, SymInt[] sizes, bool keepdim) -> Tensor", tags_0);
  m.def("amax(Tensor self, int[1] dim=[], bool keepdim=False) -> Tensor", tags_8);
  m.def("amax.out(Tensor self, int[1] dim=[], bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("max_pool1d_with_indices(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)", tags_0);
  m.def("max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("max_pool2d_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("mkldnn_max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("mkldnn_max_pool2d_backward(Tensor grad_output, Tensor output, Tensor input, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("mkldnn_max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("mkldnn_max_pool3d_backward(Tensor grad_output, Tensor output, Tensor input, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("quantized_max_pool1d(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("quantized_max_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("quantized_max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("max_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> Tensor", tags_0);
  m.def("mean(Tensor self, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("mean.dtype_out(Tensor self, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mean.dim(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("mean.out(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mean.names_dim(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("mean.names_out(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nanmean(Tensor self, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("nanmean.out(Tensor self, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("median(Tensor self) -> Tensor", tags_0);
  m.def("median.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("median.dim_values(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("median.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("median.names_dim_values(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("nanmedian(Tensor self) -> Tensor", tags_0);
  m.def("nanmedian.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("nanmedian.dim_values(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("nanmedian.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("nanmedian.names_dim_values(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("min.dim(Tensor self, int dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_8);
  m.def("min.dim_min(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) min, Tensor(b!) min_indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("min.names_dim(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("min.names_dim_min(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) min, Tensor(b!) min_indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("amin(Tensor self, int[1] dim=[], bool keepdim=False) -> Tensor", tags_8);
  m.def("amin.out(Tensor self, int[1] dim=[], bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_mps_convolution(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("mps_convolution_backward(Tensor self, Tensor grad_output, Tensor weight, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("mkldnn_convolution(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("mkldnn_rnn_layer(Tensor input, Tensor weight0, Tensor weight1, Tensor weight2, Tensor weight3, Tensor hx_, Tensor cx_, bool reverse, int[] batch_sizes, int mode, int hidden_size, int num_layers, bool has_biases, bool bidirectional, bool batch_first, bool train) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("mkldnn_rnn_layer_backward(Tensor input, Tensor weight1, Tensor weight2, Tensor weight3, Tensor weight4, Tensor hx_, Tensor cx_tmp, Tensor output, Tensor hy_, Tensor cy_, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, bool reverse, int mode, int hidden_size, int num_layers, bool has_biases, bool train, bool bidirectional, int[] batch_sizes, bool batch_first, Tensor workspace) -> (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("miopen_batch_norm(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("miopen_batch_norm_backward(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("miopen_convolution(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic) -> Tensor", tags_0);
  m.def("miopen_convolution_transpose(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic) -> Tensor", tags_0);
  m.def("miopen_depthwise_convolution(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic) -> Tensor", tags_0);
  m.def("miopen_convolution_relu(Tensor self, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("miopen_convolution_add_relu(Tensor self, Tensor weight, Tensor z, Scalar? alpha, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups) -> Tensor", tags_0);
  m.def("miopen_rnn(Tensor input, Tensor[] weight, int weight_stride0, Tensor hx, Tensor? cx, int mode, int hidden_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, int[] batch_sizes, Tensor? dropout_state) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_2);
  m.def("miopen_rnn_backward(Tensor input, Tensor[] weight, int weight_stride0, Tensor weight_buf, Tensor hx, Tensor? cx, Tensor output, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, int mode, int hidden_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, int[] batch_sizes, Tensor? dropout_state, Tensor reserve, bool[4] output_mask) -> (Tensor, Tensor, Tensor, Tensor[])", tags_0);
  m.def("mm(Tensor self, Tensor mat2) -> Tensor", tags_8);
  m.def("mm.out(Tensor self, Tensor mat2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_int_mm(Tensor self, Tensor mat2) -> Tensor", tags_0);
  m.def("_int_mm.out(Tensor self, Tensor mat2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_convert_weight_to_int4pack(Tensor self, int innerKTiles) -> Tensor", tags_0);
  m.def("_weight_int4pack_mm(Tensor self, Tensor mat2, int qGroupSize, Tensor qScaleAndZeros) -> Tensor", tags_0);
  m.def("_convert_weight_to_int4pack_for_cpu(Tensor self, int innerKTiles) -> Tensor", tags_0);
  m.def("_weight_int4pack_mm_for_cpu(Tensor self, Tensor mat2, int qGroupSize, Tensor qScaleAndZeros) -> Tensor", tags_0);
  m.def("_dyn_quant_pack_4bit_weight(Tensor weights, Tensor scales_zeros, Tensor? bias, int block_size, int in_features, int out_features) -> Tensor", tags_0);
  m.def("_dyn_quant_matmul_4bit(Tensor inp, Tensor packed_weights, int block_size, int in_features, int out_features) -> Tensor", tags_0);
  m.def("_weight_int8pack_mm(Tensor self, Tensor mat2, Tensor scales) -> Tensor", tags_0);
  m.def("_sparse_mm(Tensor sparse, Tensor dense) -> Tensor", tags_0);
  m.def("_sparse_mm.reduce(Tensor sparse, Tensor dense, str reduce) -> Tensor", tags_0);
  m.def("_sparse_sparse_matmul(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("mode(Tensor self, int dim=-1, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("mode.values(Tensor self, int dim=-1, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("mode.dimname(Tensor self, Dimname dim, bool keepdim=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("mode.dimname_out(Tensor self, Dimname dim, bool keepdim=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("mul.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("mul_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("mul.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("mul.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("mul_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("multiply.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("multiply_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("multiply.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("multiply.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("multiply_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("mv(Tensor self, Tensor vec) -> Tensor", tags_0);
  m.def("mv.out(Tensor self, Tensor vec, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mvlgamma.out(Tensor self, int p, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("mvlgamma(Tensor self, int p) -> Tensor", tags_4);
  m.def("mvlgamma_(Tensor(a!) self, int p) -> Tensor(a!)", tags_4);
  const std::vector<at::Tag> tags_15 = {at::Tag::pt2_compliant_tag, at::Tag::view_copy};
  m.def("narrow_copy(Tensor self, int dim, SymInt start, SymInt length) -> Tensor", tags_15);
  m.def("narrow_copy.out(Tensor self, int dim, SymInt start, SymInt length, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("narrow(Tensor(a) self, int dim, SymInt start, SymInt length) -> Tensor(a)", tags_0);
  m.def("narrow.Tensor(Tensor(a) self, int dim, Tensor start, SymInt length) -> Tensor(a)", tags_0);
  m.def("native_batch_norm(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("native_batch_norm.out(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float momentum, float eps, *, Tensor(a!) out, Tensor(b!) save_mean, Tensor(c!) save_invstd) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_0);
  m.def("_native_batch_norm_legit(Tensor input, Tensor? weight, Tensor? bias, Tensor(a!) running_mean, Tensor(b!) running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("_native_batch_norm_legit_no_training(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, float momentum, float eps) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("_native_batch_norm_legit.out(Tensor input, Tensor? weight, Tensor? bias, Tensor(a!) running_mean, Tensor(b!) running_var, bool training, float momentum, float eps, *, Tensor(d!) out, Tensor(e!) save_mean, Tensor(f!) save_invstd) -> (Tensor(d!), Tensor(e!), Tensor(f!))", tags_0);
  m.def("_native_batch_norm_legit.no_stats(Tensor input, Tensor? weight, Tensor? bias, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor)", tags_8);
  m.def("_native_batch_norm_legit.no_stats_out(Tensor input, Tensor? weight, Tensor? bias, bool training, float momentum, float eps, *, Tensor(a!) out, Tensor(b!) save_mean, Tensor(c!) save_invstd) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_0);
  m.def("batch_norm_stats(Tensor input, float eps) -> (Tensor, Tensor)", tags_0);
  m.def("batch_norm_elemt(Tensor input, Tensor? weight, Tensor? bias, Tensor mean, Tensor invstd, float eps) -> Tensor", tags_0);
  m.def("batch_norm_elemt.out(Tensor input, Tensor? weight, Tensor? bias, Tensor mean, Tensor invstd, float eps, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("batch_norm_gather_stats(Tensor input, Tensor mean, Tensor invstd, Tensor? running_mean, Tensor? running_var, float momentum, float eps, int count) -> (Tensor, Tensor)", tags_0);
  m.def("batch_norm_gather_stats_with_counts(Tensor input, Tensor mean, Tensor invstd, Tensor? running_mean, Tensor? running_var, float momentum, float eps, Tensor counts) -> (Tensor, Tensor)", tags_0);
  m.def("native_batch_norm_backward(Tensor grad_out, Tensor input, Tensor? weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_invstd, bool train, float eps, bool[3] output_mask) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("batch_norm_backward_reduce(Tensor grad_out, Tensor input, Tensor mean, Tensor invstd, Tensor? weight, bool input_g, bool weight_g, bool bias_g) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("batch_norm_backward_elemt(Tensor grad_out, Tensor input, Tensor mean, Tensor invstd, Tensor? weight, Tensor sum_dy, Tensor sum_dy_xmu, Tensor count) -> Tensor", tags_0);
  m.def("batch_norm_update_stats(Tensor input, Tensor? running_mean, Tensor? running_var, float momentum) -> (Tensor, Tensor)", tags_0);
  m.def("is_vulkan_available() -> bool", tags_0);
  m.def("_nnpack_available() -> bool", tags_0);
  m.def("_nnpack_spatial_convolution(Tensor input, Tensor weight, Tensor? bias, SymInt[2] padding, SymInt[2] stride=1) -> Tensor", tags_0);
  m.def("ones.names(int[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("ones(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("ones.out(SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("ones_like(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("pairwise_distance(Tensor x1, Tensor x2, float p=2, float eps=1e-06, bool keepdim=False) -> Tensor", tags_0);
  m.def("cdist(Tensor x1, Tensor x2, float p=2, int? compute_mode=None) -> Tensor", tags_0);
  m.def("_euclidean_dist(Tensor x1, Tensor x2) -> Tensor", tags_0);
  m.def("_cdist_forward(Tensor x1, Tensor x2, float p, int? compute_mode) -> Tensor", tags_8);
  m.def("_cdist_backward(Tensor grad, Tensor x1, Tensor x2, float p, Tensor cdist) -> Tensor", tags_0);
  m.def("pdist(Tensor self, float p=2) -> Tensor", tags_0);
  m.def("_pdist_forward(Tensor self, float p=2) -> Tensor", tags_8);
  m.def("_pdist_backward(Tensor grad, Tensor self, float p, Tensor pdist) -> Tensor", tags_0);
  m.def("cosine_similarity(Tensor x1, Tensor x2, int dim=1, float eps=1e-08) -> Tensor", tags_0);
  m.def("permute(Tensor(a) self, int[] dims) -> Tensor(a)", tags_8);
  m.def("movedim.intlist(Tensor(a) self, int[] source, int[] destination) -> Tensor(a)", tags_0);
  m.def("movedim.int(Tensor(a) self, int source, int destination) -> Tensor(a)", tags_0);
  m.def("moveaxis.intlist(Tensor(a) self, int[] source, int[] destination) -> Tensor(a)", tags_0);
  m.def("moveaxis.int(Tensor(a) self, int source, int destination) -> Tensor(a)", tags_0);
  m.def("numpy_T(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("matrix_H(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("mT(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("mH(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("adjoint(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("pixel_shuffle(Tensor self, int upscale_factor) -> Tensor", tags_0);
  m.def("pixel_unshuffle(Tensor self, int downscale_factor) -> Tensor", tags_0);
  m.def("channel_shuffle(Tensor self, SymInt groups) -> Tensor", tags_0);
  m.def("native_channel_shuffle(Tensor self, SymInt groups) -> Tensor", tags_0);
  m.def("is_pinned(Tensor self, Device? device=None) -> bool", tags_0);
  m.def("pin_memory(Tensor(a) self, Device? device=None) -> Tensor(a)", tags_0);
  m.def("_pin_memory(Tensor self, Device? device=None) -> Tensor", tags_0);
  m.def("pinverse(Tensor self, float rcond=1e-15) -> Tensor", tags_0);
  m.def("poisson_nll_loss(Tensor input, Tensor target, bool log_input, bool full, float eps, int reduction) -> Tensor", tags_0);
  m.def("rad2deg(Tensor self) -> Tensor", tags_4);
  m.def("rad2deg_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("rad2deg.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("deg2rad(Tensor self) -> Tensor", tags_4);
  m.def("deg2rad_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("deg2rad.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("scalar_tensor(Scalar s, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_8);
  m.def("rand.names(SymInt[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("rand.generator_with_names(SymInt[] size, *, Generator? generator, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("rand(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_3);
  m.def("rand.generator(SymInt[] size, *, Generator? generator, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("rand.out(SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("rand.generator_out(SymInt[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("rand_like(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_2);
  m.def("randint(SymInt high, SymInt[] size, *, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randint.generator(SymInt high, SymInt[] size, *, Generator? generator, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randint.low(SymInt low, SymInt high, SymInt[] size, *, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randint.low_generator(SymInt low, SymInt high, SymInt[] size, *, Generator? generator, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randint.out(SymInt high, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randint.generator_out(SymInt high, SymInt[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randint.low_out(SymInt low, SymInt high, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randint.low_generator_out(SymInt low, SymInt high, SymInt[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randint_like(Tensor self, SymInt high, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_2);
  m.def("randint_like.low_dtype(Tensor self, SymInt low, SymInt high, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_2);
  m.def("randn(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_3);
  m.def("randn.generator(SymInt[] size, *, Generator? generator, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randn.names(SymInt[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randn.generator_with_names(SymInt[] size, *, Generator? generator, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randn.out(SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randn.generator_out(SymInt[] size, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randn_like(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_2);
  m.def("randperm(SymInt n, *, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_3);
  m.def("randperm.generator(SymInt n, *, Generator? generator, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("randperm.out(SymInt n, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("randperm.generator_out(SymInt n, *, Generator? generator, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("range.step(Scalar start, Scalar end, Scalar step=1, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("range(Scalar start, Scalar end, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("range.out_(Scalar start, Scalar end, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("range.out(Scalar start, Scalar end, Scalar step=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("ravel(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("reciprocal(Tensor self) -> Tensor", tags_6);
  m.def("reciprocal_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("reciprocal.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("neg(Tensor self) -> Tensor", tags_6);
  m.def("neg_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("neg.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("negative(Tensor self) -> Tensor", tags_0);
  m.def("negative_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("negative.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("repeat(Tensor self, SymInt[] repeats) -> Tensor", tags_8);
  m.def("repeat_interleave.Tensor(Tensor repeats, *, SymInt? output_size=None) -> Tensor", tags_11);
  m.def("repeat_interleave.self_Tensor(Tensor self, Tensor repeats, int? dim=None, *, SymInt? output_size=None) -> Tensor", tags_0);
  m.def("repeat_interleave.self_int(Tensor self, SymInt repeats, int? dim=None, *, SymInt? output_size=None) -> Tensor", tags_0);
  m.def("reshape(Tensor(a) self, SymInt[] shape) -> Tensor(a)", tags_0);
  m.def("_reshape_copy(Tensor self, SymInt[] size) -> Tensor", tags_0);
  m.def("_reshape_alias(Tensor(a) self, SymInt[] size, SymInt[] stride) -> Tensor(a)", tags_0);
  m.def("_mkldnn_reshape(Tensor self, int[] shape) -> Tensor", tags_0);
  m.def("reshape_as(Tensor(a) self, Tensor other) -> Tensor(a)", tags_0);
  m.def("round(Tensor self) -> Tensor", tags_6);
  m.def("round_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("round.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("round.decimals(Tensor self, *, int decimals) -> Tensor", tags_4);
  m.def("round_.decimals(Tensor(a!) self, *, int decimals) -> Tensor(a!)", tags_4);
  m.def("round.decimals_out(Tensor self, *, int decimals, Tensor(a!) out) -> Tensor(a!)", tags_4);
  const std::vector<at::Tag> tags_16 = {at::Tag::nondeterministic_seeded, at::Tag::pointwise, at::Tag::pt2_compliant_tag};
  m.def("rrelu(Tensor self, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor", tags_16);
  m.def("rrelu_(Tensor(a!) self, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("relu(Tensor self) -> Tensor", tags_6);
  m.def("relu_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("relu6(Tensor self) -> Tensor", tags_4);
  m.def("relu6_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("prelu(Tensor self, Tensor weight) -> Tensor", tags_0);
  m.def("_prelu_kernel(Tensor self, Tensor weight) -> Tensor", tags_0);
  m.def("_prelu_kernel_backward(Tensor grad_output, Tensor self, Tensor weight) -> (Tensor, Tensor)", tags_0);
  m.def("gelu.out(Tensor self, *, str approximate='none', Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("gelu_(Tensor(a!) self, *, str approximate='none') -> Tensor(a!)", tags_0);
  m.def("gelu(Tensor self, *, str approximate='none') -> Tensor", tags_6);
  m.def("gelu_backward.grad_input(Tensor grad_output, Tensor self, *, str approximate='none', Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("gelu_backward(Tensor grad_output, Tensor self, *, str approximate='none') -> Tensor", tags_4);
  m.def("infinitely_differentiable_gelu_backward(Tensor grad, Tensor self) -> Tensor", tags_0);
  m.def("hardshrink.out(Tensor self, Scalar lambd=0.5, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hardshrink(Tensor self, Scalar lambd=0.5) -> Tensor", tags_4);
  m.def("hardshrink_backward.grad_input(Tensor grad_out, Tensor self, Scalar lambd, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("hardshrink_backward(Tensor grad_out, Tensor self, Scalar lambd) -> Tensor", tags_0);
  m.def("rsqrt(Tensor self) -> Tensor", tags_6);
  m.def("rsqrt_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("rsqrt.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("select.Dimname(Tensor(a) self, Dimname dim, int index) -> Tensor(a)", tags_0);
  m.def("select.int(Tensor(a) self, int dim, SymInt index) -> Tensor(a)", tags_8);
  m.def("select_backward(Tensor grad_output, SymInt[] input_sizes, int dim, SymInt index) -> Tensor", tags_0);
  m.def("_nested_select_backward(Tensor grad_output, Tensor self, int dim, SymInt index) -> Tensor", tags_0);
  m.def("selu(Tensor self) -> Tensor", tags_4);
  m.def("selu_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("celu(Tensor self, Scalar alpha=1.0) -> Tensor", tags_4);
  m.def("celu_(Tensor(a!) self, Scalar alpha=1.0) -> Tensor(a!)", tags_0);
  m.def("silu(Tensor self) -> Tensor", tags_4);
  m.def("silu_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("silu.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("silu_backward.grad_input(Tensor grad_output, Tensor self, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_4);
  m.def("silu_backward(Tensor grad_output, Tensor self) -> Tensor", tags_4);
  m.def("mish(Tensor self) -> Tensor", tags_4);
  m.def("mish_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("mish.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mish_backward(Tensor grad_output, Tensor self) -> Tensor", tags_0);
  m.def("sigmoid(Tensor self) -> Tensor", tags_6);
  m.def("sigmoid_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sigmoid.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("logit(Tensor self, float? eps=None) -> Tensor", tags_4);
  m.def("logit_(Tensor(a!) self, float? eps=None) -> Tensor(a!)", tags_4);
  m.def("logit.out(Tensor self, float? eps=None, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("sin(Tensor self) -> Tensor", tags_6);
  m.def("sin_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sin.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("sinc(Tensor self) -> Tensor", tags_4);
  m.def("sinc_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sinc.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("sinh(Tensor self) -> Tensor", tags_6);
  m.def("sinh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sinh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("detach(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("detach_(Tensor(a!) self) -> Tensor(a!)", tags_1);
  m.def("size.int(Tensor self, int dim) -> int", tags_0);
  m.def("size.Dimname(Tensor self, Dimname dim) -> int", tags_0);
  m.def("sym_size.int(Tensor self, int dim) -> SymInt", tags_8);
  m.def("sym_numel(Tensor self) -> SymInt", tags_8);
  m.def("sym_storage_offset(Tensor self) -> SymInt", tags_8);
  m.def("slice.Tensor(Tensor(a) self, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1) -> Tensor(a)", tags_8);
  m.def("slice_backward(Tensor grad_output, SymInt[] input_sizes, int dim, SymInt start, SymInt end, SymInt step) -> Tensor", tags_0);
  m.def("slice_inverse(Tensor(a) self, Tensor src, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1) -> Tensor(a)", tags_0);
  const std::vector<at::Tag> tags_17 = {at::Tag::core, at::Tag::pt2_compliant_tag, at::Tag::view_copy};
  m.def("slice_scatter(Tensor self, Tensor src, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1) -> Tensor", tags_17);
  m.def("select_scatter(Tensor self, Tensor src, int dim, SymInt index) -> Tensor", tags_8);
  m.def("diagonal_scatter(Tensor self, Tensor src, int offset=0, int dim1=0, int dim2=1) -> Tensor", tags_0);
  m.def("as_strided_scatter(Tensor self, Tensor src, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None) -> Tensor", tags_0);
  m.def("smm(Tensor self, Tensor mat2) -> Tensor", tags_0);
  m.def("softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("softmax.int_out(Tensor self, int dim, ScalarType? dtype=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_softmax(Tensor self, int dim, bool half_to_float) -> Tensor", tags_8);
  m.def("_softmax.out(Tensor self, int dim, bool half_to_float, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_softmax_backward_data(Tensor grad_output, Tensor output, int dim, ScalarType input_dtype) -> Tensor", tags_0);
  m.def("_softmax_backward_data.out(Tensor grad_output, Tensor output, int dim, ScalarType input_dtype, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("unsafe_split.Tensor(Tensor self, SymInt split_size, int dim=0) -> Tensor[]", tags_0);
  m.def("split.Tensor(Tensor(a -> *) self, SymInt split_size, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("split.sizes(Tensor(a -> *) self, SymInt[] split_size, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("unsafe_split_with_sizes(Tensor self, SymInt[] split_sizes, int dim=0) -> Tensor[]", tags_0);
  m.def("split_with_sizes(Tensor(a -> *) self, SymInt[] split_sizes, int dim=0) -> Tensor(a)[]", tags_8);
  m.def("hsplit.int(Tensor(a -> *) self, int sections) -> Tensor(a)[]", tags_0);
  m.def("hsplit.array(Tensor(a -> *) self, int[] indices) -> Tensor(a)[]", tags_0);
  m.def("vsplit.int(Tensor(a -> *) self, int sections) -> Tensor(a)[]", tags_0);
  m.def("vsplit.array(Tensor(a -> *) self, int[] indices) -> Tensor(a)[]", tags_0);
  m.def("dsplit.int(Tensor(a -> *) self, int sections) -> Tensor(a)[]", tags_0);
  m.def("dsplit.array(Tensor(a -> *) self, int[] indices) -> Tensor(a)[]", tags_0);
  m.def("squeeze(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("squeeze.dim(Tensor(a) self, int dim) -> Tensor(a)", tags_8);
  m.def("squeeze.dimname(Tensor(a) self, Dimname dim) -> Tensor(a)", tags_0);
  m.def("squeeze.dims(Tensor(a) self, int[] dim) -> Tensor(a)", tags_8);
  m.def("squeeze_(Tensor(a!) self) -> Tensor(a!)", tags_1);
  m.def("squeeze_.dim(Tensor(a!) self, int dim) -> Tensor(a!)", tags_1);
  m.def("squeeze_.dims(Tensor(a!) self, int[] dim) -> Tensor(a!)", tags_1);
  m.def("squeeze_.dimname(Tensor(a!) self, Dimname dim) -> Tensor(a!)", tags_1);
  m.def("sspaddmm(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("sspaddmm.out(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_chunk_cat(Tensor[] tensors, int dim, int num_chunks) -> Tensor", tags_0);
  m.def("_chunk_cat.out(Tensor[] tensors, int dim, int num_chunks, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("stack(Tensor[] tensors, int dim=0) -> Tensor", tags_0);
  m.def("stack.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_stack(Tensor[] tensors, int dim=0) -> Tensor", tags_0);
  m.def("_stack.out(Tensor[] tensors, int dim=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hstack(Tensor[] tensors) -> Tensor", tags_0);
  m.def("hstack.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("vstack(Tensor[] tensors) -> Tensor", tags_0);
  m.def("vstack.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("dstack(Tensor[] tensors) -> Tensor", tags_0);
  m.def("dstack.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("stft(Tensor self, int n_fft, int? hop_length=None, int? win_length=None, Tensor? window=None, bool normalized=False, bool? onesided=None, bool? return_complex=None, bool? align_to_window=None) -> Tensor", tags_0);
  m.def("stft.center(Tensor self, int n_fft, int? hop_length=None, int? win_length=None, Tensor? window=None, bool center=True, str pad_mode=\"reflect\", bool normalized=False, bool? onesided=None, bool? return_complex=None, bool? align_to_window=None) -> Tensor", tags_0);
  m.def("istft(Tensor self, int n_fft, int? hop_length=None, int? win_length=None, Tensor? window=None, bool center=True, bool normalized=False, bool? onesided=None, int? length=None, bool return_complex=False) -> Tensor", tags_0);
  m.def("stride.int(Tensor self, int dim) -> int", tags_0);
  m.def("stride.Dimname(Tensor self, Dimname dim) -> int", tags_0);
  m.def("sym_stride.int(Tensor self, int dim) -> SymInt", tags_8);
  m.def("sum(Tensor self, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("sum.dim_IntList(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("sum.dim_DimnameList(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("sum.IntList_out(Tensor self, int[1]? dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("sum.DimnameList_out(Tensor self, Dimname[1] dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_nested_sum_backward(Tensor grad, Tensor self, int[1]? dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("nansum(Tensor self, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("nansum.out(Tensor self, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("sum_to_size(Tensor self, SymInt[] size) -> Tensor", tags_0);
  m.def("sqrt(Tensor self) -> Tensor", tags_6);
  m.def("sqrt_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sqrt.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("square(Tensor self) -> Tensor", tags_4);
  m.def("square_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("square.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("std(Tensor self, bool unbiased=True) -> Tensor", tags_0);
  m.def("std.dim(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False) -> Tensor", tags_0);
  m.def("std.correction(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False) -> Tensor", tags_0);
  m.def("std_mean(Tensor self, bool unbiased=True) -> (Tensor, Tensor)", tags_0);
  m.def("std_mean.dim(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("std_mean.correction(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("std_mean.names_dim(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("std_mean.correction_names(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("std.out(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("std.correction_out(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("std.names_dim(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False) -> Tensor", tags_0);
  m.def("std.names_out(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("std.correction_names(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False) -> Tensor", tags_0);
  m.def("std.correction_names_out(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("prod(Tensor self, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("prod.dim_int(Tensor self, int dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_8);
  m.def("prod.int_out(Tensor self, int dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("prod.dim_Dimname(Tensor self, Dimname dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("prod.Dimname_out(Tensor self, Dimname dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("t(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("t_(Tensor(a!) self) -> Tensor(a!)", tags_1);
  m.def("tan(Tensor self) -> Tensor", tags_6);
  m.def("tan_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("tan.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("tanh(Tensor self) -> Tensor", tags_6);
  m.def("tanh_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("tanh.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("tensordot(Tensor self, Tensor other, int[] dims_self, int[] dims_other) -> Tensor", tags_0);
  m.def("tensordot.out(Tensor self, Tensor other, int[] dims_self, int[] dims_other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("threshold(Tensor self, Scalar threshold, Scalar value) -> Tensor", tags_4);
  m.def("threshold_(Tensor(a!) self, Scalar threshold, Scalar value) -> Tensor(a!)", tags_0);
  m.def("threshold.out(Tensor self, Scalar threshold, Scalar value, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("threshold_backward.grad_input(Tensor grad_output, Tensor self, Scalar threshold, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("threshold_backward(Tensor grad_output, Tensor self, Scalar threshold) -> Tensor", tags_4);
  m.def("tile(Tensor self, SymInt[] dims) -> Tensor", tags_0);
  m.def("transpose.int(Tensor(a) self, int dim0, int dim1) -> Tensor(a)", tags_0);
  m.def("transpose.Dimname(Tensor(a) self, Dimname dim0, Dimname dim1) -> Tensor(a)", tags_0);
  m.def("_mkldnn_transpose(Tensor self, int dim0, int dim1) -> Tensor", tags_0);
  m.def("transpose_(Tensor(a!) self, int dim0, int dim1) -> Tensor(a!)", tags_1);
  m.def("_mkldnn_transpose_(Tensor(a!) self, int dim0, int dim1) -> Tensor(a!)", tags_0);
  m.def("one_hot(Tensor self, int num_classes=-1) -> Tensor", tags_11);
  m.def("flip(Tensor self, int[] dims) -> Tensor", tags_8);
  m.def("fliplr(Tensor self) -> Tensor", tags_0);
  m.def("flipud(Tensor self) -> Tensor", tags_0);
  m.def("roll(Tensor self, SymInt[1] shifts, int[1] dims=[]) -> Tensor", tags_0);
  m.def("rot90(Tensor self, int k=1, int[] dims=[0,1]) -> Tensor", tags_0);
  m.def("trapezoid.x(Tensor y, Tensor x, *, int dim=-1) -> Tensor", tags_0);
  m.def("trapezoid.dx(Tensor y, *, Scalar dx=1, int dim=-1) -> Tensor", tags_0);
  m.def("trapz.x(Tensor y, Tensor x, *, int dim=-1) -> Tensor", tags_0);
  m.def("trapz.dx(Tensor y, *, float dx=1, int dim=-1) -> Tensor", tags_0);
  m.def("_transform_bias_rescale_qkv(Tensor qkv, Tensor qkv_bias, int num_heads) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_nested_tensor_from_mask(Tensor t, Tensor mask, bool mask_check=True) -> Tensor", tags_0);
  m.def("_nested_tensor_from_mask_left_aligned(Tensor t, Tensor mask) -> bool", tags_0);
  m.def("_nested_from_padded(Tensor padded, Tensor cpu_nested_shape_example, bool fuse_transform_0213=False) -> Tensor", tags_0);
  m.def("_nested_tensor_size(Tensor self) -> Tensor", tags_0);
  m.def("_nested_tensor_strides(Tensor self) -> Tensor", tags_0);
  m.def("_nested_tensor_storage_offsets(Tensor self) -> Tensor", tags_0);
  m.def("_nested_from_padded_and_nested_example(Tensor padded, Tensor nt_example) -> Tensor", tags_0);
  m.def("_nested_view_from_buffer(Tensor(a) self, Tensor nested_size, Tensor nested_strides, Tensor offsets) -> Tensor(a)", tags_0);
  m.def("_nested_view_from_buffer_copy(Tensor self, Tensor nested_size, Tensor nested_strides, Tensor offsets) -> Tensor", tags_15);
  m.def("_nested_view_from_jagged(Tensor(a) self, Tensor offsets, Tensor dummy, Tensor? lengths=None, int ragged_idx=1, Tensor? min_seqlen=None, Tensor? max_seqlen=None) -> Tensor(a)", tags_0);
  m.def("_nested_view_from_jagged_copy(Tensor self, Tensor offsets, Tensor dummy, Tensor? lengths=None, int ragged_idx=1, Tensor? min_seqlen=None, Tensor? max_seqlen=None) -> Tensor", tags_15);
  m.def("_nested_get_values(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_nested_get_values_copy(Tensor self) -> Tensor", tags_15);
  m.def("_nested_get_offsets(Tensor self) -> Tensor", tags_0);
  m.def("_nested_get_lengths(Tensor self) -> Tensor", tags_0);
  m.def("_nested_get_ragged_idx(Tensor self) -> int", tags_0);
  m.def("_nested_get_min_seqlen(Tensor self) -> Tensor", tags_0);
  m.def("_nested_get_max_seqlen(Tensor self) -> Tensor", tags_0);
  m.def("_nested_get_jagged_dummy(Tensor any) -> Tensor", tags_0);
  m.def("_nested_compute_contiguous_strides_offsets(Tensor nested_size) -> (Tensor, Tensor)", tags_0);
  m.def("_trilinear(Tensor i1, Tensor i2, Tensor i3, int[] expand1, int[] expand2, int[] expand3, int[] sumdim, int unroll_dim=1) -> Tensor", tags_0);
  m.def("triplet_margin_loss(Tensor anchor, Tensor positive, Tensor negative, float margin=1.0, float p=2, float eps=1e-06, bool swap=False, int reduction=Mean) -> Tensor", tags_0);
  m.def("trunc(Tensor self) -> Tensor", tags_6);
  m.def("trunc_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("trunc.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("fix(Tensor self) -> Tensor", tags_0);
  m.def("fix_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("fix.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("type_as(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("_has_compatible_shallow_copy_type(Tensor self, Tensor from) -> bool", tags_0);
  m.def("_unique(Tensor self, bool sorted=True, bool return_inverse=False) -> (Tensor, Tensor)", tags_0);
  m.def("unique_dim(Tensor self, int dim, bool sorted=True, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)", tags_11);
  m.def("unique_consecutive(Tensor self, bool return_inverse=False, bool return_counts=False, int? dim=None) -> (Tensor, Tensor, Tensor)", tags_11);
  m.def("unique_dim_consecutive(Tensor self, int dim, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)", tags_11);
  m.def("_unique2(Tensor self, bool sorted=True, bool return_inverse=False, bool return_counts=False) -> (Tensor, Tensor, Tensor)", tags_11);
  m.def("_unsafe_view(Tensor self, SymInt[] size) -> Tensor", tags_0);
  m.def("unsqueeze(Tensor(a) self, int dim) -> Tensor(a)", tags_8);
  m.def("unsqueeze_(Tensor(a!) self, int dim) -> Tensor(a!)", tags_1);
  m.def("vander(Tensor x, int? N=None, bool increasing=False) -> Tensor", tags_0);
  m.def("var(Tensor self, bool unbiased=True) -> Tensor", tags_0);
  m.def("var.dim(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False) -> Tensor", tags_8);
  m.def("var.correction(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False) -> Tensor", tags_8);
  m.def("var.out(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("var.correction_out(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("var.names_dim(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False) -> Tensor", tags_0);
  m.def("var.names_out(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("var.correction_names(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False) -> Tensor", tags_0);
  m.def("var.correction_names_out(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("var_mean(Tensor self, bool unbiased=True) -> (Tensor, Tensor)", tags_0);
  m.def("var_mean.dim(Tensor self, int[1]? dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("var_mean.correction(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("var_mean.names_dim(Tensor self, Dimname[1] dim, bool unbiased=True, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("var_mean.correction_names(Tensor self, Dimname[1] dim, *, Scalar? correction=None, bool keepdim=False) -> (Tensor, Tensor)", tags_0);
  m.def("view_as(Tensor(a) self, Tensor other) -> Tensor(a)", tags_0);
  m.def("where.self(Tensor condition, Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("where.self_out(Tensor condition, Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("where.ScalarSelf(Tensor condition, Scalar self, Tensor other) -> Tensor", tags_0);
  m.def("where.ScalarOther(Tensor condition, Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("where.Scalar(Tensor condition, Scalar self, Scalar other) -> Tensor", tags_0);
  m.def("where(Tensor condition) -> Tensor[]", tags_0);
  m.def("norm_except_dim(Tensor v, int pow=2, int dim=0) -> Tensor", tags_0);
  m.def("_weight_norm(Tensor v, Tensor g, int dim=0) -> Tensor", tags_0);
  m.def("_weight_norm_interface(Tensor v, Tensor g, int dim=0) -> (Tensor, Tensor)", tags_0);
  m.def("_weight_norm_interface_backward(Tensor grad_w, Tensor saved_v, Tensor saved_g, Tensor saved_norms, int dim) -> (Tensor, Tensor)", tags_0);
  m.def("_weight_norm_differentiable_backward(Tensor grad_w, Tensor saved_v, Tensor saved_g, Tensor saved_norms, int dim) -> (Tensor, Tensor)", tags_0);
  m.def("zeros.names(int[] size, *, Dimname[]? names, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_efficientzerotensor(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("zeros(SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("zeros.out(SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("zeros_like(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, MemoryFormat? memory_format=None) -> Tensor", tags_0);
  m.def("_standard_gamma_grad(Tensor self, Tensor output) -> Tensor", tags_0);
  m.def("_standard_gamma(Tensor self, Generator? generator=None) -> Tensor", tags_2);
  m.def("_dirichlet_grad(Tensor x, Tensor alpha, Tensor total) -> Tensor", tags_0);
  m.def("_sample_dirichlet(Tensor self, Generator? generator=None) -> Tensor", tags_2);
  m.def("poisson(Tensor self, Generator? generator=None) -> Tensor", tags_2);
  m.def("binomial(Tensor count, Tensor prob, Generator? generator=None) -> Tensor", tags_2);
  m.def("native_norm(Tensor self, Scalar p=2) -> Tensor", tags_0);
  m.def("native_norm.ScalarOpt_dim_dtype(Tensor self, Scalar? p, int[1] dim, bool keepdim, ScalarType? dtype) -> Tensor", tags_0);
  m.def("_batch_norm_with_update(Tensor input, Tensor? weight, Tensor? bias, Tensor(a!) running_mean, Tensor(b!) running_var, float momentum, float eps) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_batch_norm_with_update.out(Tensor input, Tensor? weight, Tensor? bias, Tensor(a!) running_mean, Tensor(b!) running_var, float momentum, float eps, *, Tensor(d!) out, Tensor(e!) save_mean, Tensor(f!) save_invstd, Tensor(g!) reserve) -> (Tensor(d!), Tensor(e!), Tensor(f!), Tensor(g!))", tags_0);
  m.def("_batch_norm_no_update(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, float momentum, float eps) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("batch_norm_backward(Tensor grad_out, Tensor input, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, bool update, float eps, bool[3] output_mask, Tensor reserve) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_sparse_sum(Tensor self) -> Tensor", tags_0);
  m.def("_sparse_sum.dtype(Tensor self, *, ScalarType dtype) -> Tensor", tags_0);
  m.def("_sparse_sum.dim(Tensor self, int[1] dim) -> Tensor", tags_0);
  m.def("_sparse_sum.dim_dtype(Tensor self, int[1] dim, *, ScalarType dtype) -> Tensor", tags_0);
  m.def("_sparse_sum_backward(Tensor grad, Tensor self, int[] dim) -> Tensor", tags_0);
  m.def("_sparse_csr_sum.dim_dtype(Tensor self, int[1] dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_csr_prod.dim_dtype(Tensor self, int[1] dim, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_softmax(Tensor self, int dim, bool half_to_float) -> Tensor", tags_0);
  m.def("_sparse_softmax_backward_data(Tensor grad_output, Tensor output, int dim, Tensor self) -> Tensor", tags_0);
  m.def("_sparse_log_softmax.int(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_log_softmax.Dimname(Tensor self, Dimname dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_sparse_log_softmax(Tensor self, int dim, bool half_to_float) -> Tensor", tags_0);
  m.def("_sparse_log_softmax_backward_data(Tensor grad_output, Tensor output, int dim, Tensor self) -> Tensor", tags_0);
  m.def("_spdiags(Tensor diagonals, Tensor offsets, int[] shape, Layout? layout=None) -> Tensor", tags_0);
  m.def("norm.ScalarOpt_dtype(Tensor self, Scalar? p, *, ScalarType dtype) -> Tensor", tags_0);
  m.def("norm.Scalar(Tensor self, Scalar p=2) -> Tensor", tags_0);
  m.def("norm.ScalarOpt_dim_dtype(Tensor self, Scalar? p, int[1] dim, bool keepdim, *, ScalarType dtype) -> Tensor", tags_0);
  m.def("norm.ScalarOpt_dim(Tensor self, Scalar? p, int[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("norm.dtype_out(Tensor self, Scalar? p, int[1] dim, bool keepdim, *, ScalarType dtype, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("norm.out(Tensor self, Scalar? p, int[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("norm.names_ScalarOpt_dim_dtype(Tensor self, Scalar? p, Dimname[1] dim, bool keepdim, *, ScalarType dtype) -> Tensor", tags_0);
  m.def("norm.names_ScalarOpt_dim(Tensor self, Scalar? p, Dimname[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("norm.names_dtype_out(Tensor self, Scalar? p, Dimname[1] dim, bool keepdim, *, ScalarType dtype, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("norm.names_out(Tensor self, Scalar? p, Dimname[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("frexp.Tensor(Tensor self) -> (Tensor mantissa, Tensor exponent)", tags_4);
  m.def("frexp.Tensor_out(Tensor self, *, Tensor(a!) mantissa, Tensor(b!) exponent) -> (Tensor(a!) mantissa, Tensor(b!) exponent)", tags_4);
  m.def("frobenius_norm.dim(Tensor self, int[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("frobenius_norm.out(Tensor self, int[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nuclear_norm(Tensor self, bool keepdim=False) -> Tensor", tags_0);
  m.def("nuclear_norm.out(Tensor self, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nuclear_norm.dim(Tensor self, int[2] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("nuclear_norm.dim_out(Tensor self, int[2] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("clone(Tensor self, *, MemoryFormat? memory_format=None) -> Tensor", tags_6);
  m.def("positive(Tensor(a) self) -> Tensor(a)", tags_4);
  m.def("resize_as_(Tensor(a!) self, Tensor the_template, *, MemoryFormat? memory_format=None) -> Tensor(a!)", tags_1);
  m.def("resize_as_sparse_(Tensor(a!) self, Tensor the_template) -> Tensor(a!)", tags_0);
  m.def("zero_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("sub.out(Tensor self, Tensor other, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("sub.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor", tags_6);
  m.def("sub_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)", tags_4);
  m.def("sub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> Tensor", tags_6);
  m.def("sub_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)", tags_4);
  m.def("subtract.out(Tensor self, Tensor other, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("subtract.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor", tags_0);
  m.def("subtract_.Tensor(Tensor(a!) self, Tensor other, *, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("subtract.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> Tensor", tags_0);
  m.def("subtract_.Scalar(Tensor(a!) self, Scalar other, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("rsub.Tensor(Tensor self, Tensor other, *, Scalar alpha=1) -> Tensor", tags_0);
  m.def("heaviside.out(Tensor self, Tensor values, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("heaviside(Tensor self, Tensor values) -> Tensor", tags_4);
  m.def("heaviside_(Tensor(a!) self, Tensor values) -> Tensor(a!)", tags_0);
  m.def("rsub.Scalar(Tensor self, Scalar other, Scalar alpha=1) -> Tensor", tags_4);
  m.def("_sparse_addmm(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("sparse_sampled_addmm.out(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("sparse_sampled_addmm(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("_sparse_mm_reduce_impl(Tensor self, Tensor other, str reduce) -> (Tensor, Tensor)", tags_0);
  m.def("_sparse_mm_reduce_impl_backward(Tensor self, Tensor grad_out, Tensor weight, str reduce, Tensor arg_out, bool[2] output_mask) -> (Tensor, Tensor)", tags_0);
  m.def("addmm.out(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("addmm(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_8);
  m.def("addmm_(Tensor(a!) self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("_addmm_activation.out(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, bool use_gelu=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_addmm_activation(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, bool use_gelu=False) -> Tensor", tags_0);
  m.def("_scaled_mm(Tensor self, Tensor mat2, Tensor scale_a, Tensor scale_b, Tensor? bias=None, Tensor? scale_result=None, ScalarType? out_dtype=None, bool use_fast_accum=False) -> Tensor", tags_0);
  m.def("_scaled_mm.out(Tensor self, Tensor mat2, Tensor scale_a, Tensor scale_b, Tensor? bias=None, Tensor? scale_result=None, ScalarType? out_dtype=None, bool use_fast_accum=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_scaled_grouped_mm(Tensor self, Tensor mat2, Tensor scale_a, Tensor scale_b, Tensor? offs=None, Tensor? bias=None, Tensor? scale_result=None, ScalarType? out_dtype=None, bool use_fast_accum=False) -> Tensor", tags_0);
  m.def("_sparse_compressed_tensor_with_dims(int nnz, int dense_dim, int[] size, int[] blocksize, ScalarType index_dtype, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_compressed_tensor.comp_plain_value_size(Tensor compressed_indices, Tensor plain_indices, Tensor values, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_csr_tensor.crow_col_value_size(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_csc_tensor.ccol_row_value_size(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_bsr_tensor.crow_col_value_size(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_bsc_tensor.ccol_row_value_size(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_compressed_tensor.comp_plain_value(Tensor compressed_indices, Tensor plain_indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_csr_tensor.crow_col_value(Tensor crow_indices, Tensor col_indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_csc_tensor.ccol_row_value(Tensor ccol_indices, Tensor row_indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_bsr_tensor.crow_col_value(Tensor crow_indices, Tensor col_indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_bsc_tensor.ccol_row_value(Tensor ccol_indices, Tensor row_indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("_sparse_compressed_tensor_unsafe(Tensor compressed_indices, Tensor plain_indices, Tensor values, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_sparse_csr_tensor_unsafe(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_sparse_csc_tensor_unsafe(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_sparse_bsr_tensor_unsafe(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_sparse_bsc_tensor_unsafe(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("sparse_coo_tensor.size(int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("sparse_coo_tensor.indices(Tensor indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, bool? is_coalesced=None) -> Tensor", tags_0);
  m.def("sparse_coo_tensor.indices_size(Tensor indices, Tensor values, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, bool? is_coalesced=None) -> Tensor", tags_0);
  m.def("_sparse_coo_tensor_unsafe(Tensor indices, Tensor values, SymInt[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, bool? is_coalesced=None) -> Tensor", tags_0);
  m.def("_validate_sparse_coo_tensor_args(Tensor indices, Tensor values, int[] size, bool? is_coalesced=None) -> ()", tags_0);
  m.def("_validate_sparse_compressed_tensor_args(Tensor compressed_indices, Tensor plain_indices, Tensor values, int[] size, Layout layout) -> ()", tags_0);
  m.def("_validate_sparse_csr_tensor_args(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size) -> ()", tags_0);
  m.def("_validate_sparse_csc_tensor_args(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size) -> ()", tags_0);
  m.def("_validate_sparse_bsr_tensor_args(Tensor crow_indices, Tensor col_indices, Tensor values, int[] size) -> ()", tags_0);
  m.def("_validate_sparse_bsc_tensor_args(Tensor ccol_indices, Tensor row_indices, Tensor values, int[] size) -> ()", tags_0);
  m.def("_sparse_coo_tensor_with_dims(int sparse_dim, int dense_dim, int[] size, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False) -> Tensor", tags_0);
  m.def("_sparse_coo_tensor_with_dims_and_tensors(int sparse_dim, int dense_dim, SymInt[] size, Tensor indices, Tensor values, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=False, bool? is_coalesced=None) -> Tensor", tags_0);
  m.def("sparse_resize_(Tensor(a!) self, int[] size, int sparse_dim, int dense_dim) -> Tensor(a!)", tags_0);
  m.def("sparse_resize_and_clear_(Tensor(a!) self, int[] size, int sparse_dim, int dense_dim) -> Tensor(a!)", tags_0);
  m.def("sparse_mask(Tensor self, Tensor mask) -> Tensor", tags_0);
  m.def("_sparse_mask_projection(Tensor self, Tensor mask, bool accumulate_matches=False) -> Tensor", tags_0);
  m.def("_to_cpu(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("to_dense(Tensor self, ScalarType? dtype=None, *, bool? masked_grad=None) -> Tensor", tags_0);
  m.def("_to_dense(Tensor self, ScalarType? dtype=None, bool? masked_grad=None) -> Tensor", tags_0);
  m.def("to_dense_backward(Tensor grad, Tensor input, bool? masked_grad=None) -> Tensor", tags_0);
  m.def("sparse_dim(Tensor self) -> int", tags_0);
  m.def("_dimI(Tensor self) -> int", tags_0);
  m.def("dense_dim(Tensor self) -> int", tags_0);
  m.def("_dimV(Tensor self) -> int", tags_0);
  m.def("_nnz(Tensor self) -> int", tags_0);
  m.def("coalesce(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_coalesce(Tensor self) -> Tensor", tags_0);
  m.def("is_coalesced(Tensor self) -> bool", tags_0);
  m.def("_indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_values(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_coalesced_(Tensor(a!) self, bool coalesced) -> Tensor(a!)", tags_0);
  m.def("indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("values(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("crow_indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("col_indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("ccol_indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("row_indices(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("hspmm.out(Tensor mat1, Tensor mat2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hspmm(Tensor mat1, Tensor mat2) -> Tensor", tags_0);
  m.def("copy_sparse_to_sparse_(Tensor(a!) self, Tensor src, bool non_blocking=False) -> Tensor(a!)", tags_0);
  m.def("unbind.int(Tensor(a -> *) self, int dim=0) -> Tensor(a)[]", tags_0);
  m.def("unbind.Dimname(Tensor(a -> *) self, Dimname dim) -> Tensor(a)[]", tags_0);
  m.def("to_sparse.sparse_dim(Tensor self, int sparse_dim) -> Tensor", tags_0);
  m.def("_to_sparse.sparse_dim(Tensor self, int sparse_dim) -> Tensor", tags_0);
  m.def("to_sparse(Tensor self, *, Layout? layout=None, int[2]? blocksize=None, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse(Tensor self, *, Layout? layout=None, int[2]? blocksize=None, int? dense_dim=None) -> Tensor", tags_0);
  m.def("to_sparse_csr(Tensor self, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse_csr(Tensor self, int? dense_dim=None) -> Tensor", tags_0);
  m.def("to_sparse_csc(Tensor self, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse_csc(Tensor self, int? dense_dim=None) -> Tensor", tags_0);
  m.def("to_sparse_bsr(Tensor self, int[2] blocksize, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse_bsr(Tensor self, int[2] blocksize, int? dense_dim=None) -> Tensor", tags_0);
  m.def("to_sparse_bsc(Tensor self, int[2] blocksize, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse_bsc(Tensor self, int[2] blocksize, int? dense_dim=None) -> Tensor", tags_0);
  m.def("_to_sparse_semi_structured(Tensor dense) -> (Tensor, Tensor)", tags_0);
  m.def("to_mkldnn(Tensor self, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("mkldnn_reorder_conv2d_weight(Tensor self, SymInt[2] padding=0, SymInt[2] stride=1, SymInt[2] dilation=1, SymInt groups=1, SymInt[]? input_size=None) -> Tensor", tags_0);
  m.def("mkldnn_reorder_conv3d_weight(Tensor self, SymInt[3] padding=0, SymInt[3] stride=1, SymInt[3] dilation=1, SymInt groups=1, SymInt[]? input_size=None) -> Tensor", tags_0);
  m.def("to_mkldnn_backward(Tensor grad, Tensor input) -> Tensor", tags_0);
  m.def("quantize_per_tensor_dynamic(Tensor self, ScalarType dtype, bool reduce_range) -> Tensor", tags_0);
  m.def("quantize_per_tensor(Tensor self, float scale, int zero_point, ScalarType dtype) -> Tensor", tags_0);
  m.def("quantize_per_tensor.tensor_qparams(Tensor self, Tensor scale, Tensor zero_point, ScalarType dtype) -> Tensor", tags_0);
  m.def("quantize_per_tensor.tensors(Tensor[] tensors, Tensor scales, Tensor zero_points, ScalarType dtype) -> Tensor[]", tags_0);
  m.def("quantize_per_channel(Tensor self, Tensor scales, Tensor zero_points, int axis, ScalarType dtype) -> Tensor", tags_0);
  m.def("dequantize.self(Tensor self) -> Tensor", tags_0);
  m.def("dequantize.tensors(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("q_scale(Tensor self) -> float", tags_0);
  m.def("q_zero_point(Tensor self) -> int", tags_0);
  m.def("q_per_channel_scales(Tensor self) -> Tensor", tags_0);
  m.def("q_per_channel_zero_points(Tensor self) -> Tensor", tags_0);
  m.def("q_per_channel_axis(Tensor self) -> int", tags_0);
  m.def("int_repr(Tensor self) -> Tensor", tags_0);
  m.def("_make_per_tensor_quantized_tensor(Tensor self, float scale, int zero_point) -> Tensor", tags_0);
  m.def("_make_per_channel_quantized_tensor(Tensor self, Tensor scale, Tensor zero_point, int axis) -> Tensor", tags_0);
  m.def("qscheme(Tensor self) -> QScheme", tags_0);
  m.def("fake_quantize_per_tensor_affine(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> Tensor", tags_0);
  m.def("fake_quantize_per_tensor_affine.tensor_qparams(Tensor self, Tensor scale, Tensor zero_point, int quant_min, int quant_max) -> Tensor", tags_0);
  m.def("fake_quantize_per_tensor_affine_cachemask(Tensor self, float scale, int zero_point, int quant_min, int quant_max) -> (Tensor output, Tensor mask)", tags_0);
  m.def("_fake_quantize_per_tensor_affine_cachemask_tensor_qparams(Tensor self, Tensor scale, Tensor zero_point, Tensor fake_quant_enabled, int quant_min, int quant_max) -> (Tensor output, Tensor mask)", tags_0);
  m.def("fake_quantize_per_tensor_affine_cachemask_backward(Tensor grad, Tensor mask) -> Tensor", tags_0);
  m.def("_fake_quantize_learnable_per_tensor_affine(Tensor self, Tensor scale, Tensor zero_point, int quant_min, int quant_max, float grad_factor=1.0) -> Tensor", tags_0);
  m.def("_fake_quantize_learnable_per_tensor_affine_backward(Tensor grad, Tensor self, Tensor scale, Tensor zero_point, int quant_min, int quant_max, float grad_factor=1.0) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("fake_quantize_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> Tensor", tags_0);
  m.def("fake_quantize_per_channel_affine_cachemask(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max) -> (Tensor output, Tensor mask)", tags_0);
  m.def("fake_quantize_per_channel_affine_cachemask_backward(Tensor grad, Tensor mask) -> Tensor", tags_0);
  m.def("_fake_quantize_learnable_per_channel_affine(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max, float grad_factor=1.0) -> Tensor", tags_0);
  m.def("_fake_quantize_learnable_per_channel_affine_backward(Tensor grad, Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max, float grad_factor=1.0) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("fused_moving_avg_obs_fake_quant(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> Tensor", tags_0);
  m.def("_fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask)", tags_0);
  m.def("_choose_qparams_per_tensor(Tensor self, bool reduce_range=False) -> (float, int)", tags_0);
  m.def("_saturate_weight_to_fp16(Tensor weight) -> Tensor", tags_0);
  m.def("choose_qparams_optimized(Tensor input, int numel, int n_bins, float ratio, int bit_width) -> (Tensor, Tensor)", tags_0);
  m.def("_autocast_to_reduced_precision(Tensor(a) self, bool cuda_enabled, bool cpu_enabled, ScalarType cuda_dtype, ScalarType cpu_dtype) -> Tensor(a)", tags_0);
  m.def("_autocast_to_full_precision(Tensor(a) self, bool cuda_enabled, bool cpu_enabled) -> Tensor(a)", tags_0);
  m.def("_to_copy(Tensor self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, bool non_blocking=False, MemoryFormat? memory_format=None) -> Tensor", tags_8);
  m.def("to.dtype_layout(Tensor(a) self, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor(a)", tags_0);
  m.def("to.device(Tensor(a) self, Device device, ScalarType dtype, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor(a)", tags_0);
  m.def("to.dtype(Tensor(a) self, ScalarType dtype, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor(a)", tags_0);
  m.def("to.other(Tensor(a) self, Tensor other, bool non_blocking=False, bool copy=False, MemoryFormat? memory_format=None) -> Tensor(a)", tags_0);
  m.def("meshgrid(Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("meshgrid.indexing(Tensor[] tensors, *, str indexing) -> Tensor[]", tags_0);
  m.def("cartesian_prod(Tensor[] tensors) -> Tensor", tags_10);
  m.def("combinations(Tensor self, int r=2, bool with_replacement=False) -> Tensor", tags_0);
  m.def("item(Tensor self) -> Scalar", tags_9);
  m.def("result_type.Tensor(Tensor tensor, Tensor other) -> ScalarType", tags_0);
  m.def("result_type.Scalar(Tensor tensor, Scalar other) -> ScalarType", tags_0);
  m.def("result_type.Scalar_Tensor(Scalar scalar, Tensor tensor) -> ScalarType", tags_0);
  m.def("result_type.Scalar_Scalar(Scalar scalar1, Scalar scalar2) -> ScalarType", tags_0);
  m.def("can_cast(ScalarType from_, ScalarType to) -> bool", tags_0);
  m.def("promote_types(ScalarType type1, ScalarType type2) -> ScalarType", tags_0);
  const std::vector<at::Tag> tags_18 = {at::Tag::core, at::Tag::data_dependent_output, at::Tag::pt2_compliant_tag};
  m.def("_local_scalar_dense(Tensor self) -> Scalar", tags_18);
  m.def("_lstm_mps(Tensor input, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)", tags_2);
  m.def("lstm_mps_backward(Tensor? grad_y, Tensor? grad_hy, Tensor? grad_cy, Tensor z_state, Tensor cell_state_fwd, Tensor input, Tensor layersOutputs, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor[], Tensor[])", tags_0);
  m.def("_thnn_fused_lstm_cell(Tensor input_gates, Tensor hidden_gates, Tensor cx, Tensor? input_bias=None, Tensor? hidden_bias=None) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_thnn_fused_lstm_cell_backward_impl(Tensor? grad_hy, Tensor? grad_cy, Tensor cx, Tensor cy, Tensor workspace, bool has_bias) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_thnn_fused_lstm_cell_backward(Tensor? grad_hy, Tensor? grad_cy, Tensor cx, Tensor cy, Tensor workspace, bool has_bias) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_thnn_differentiable_lstm_cell_backward(Tensor? grad_hy, Tensor? grad_cy, Tensor input_gates, Tensor hidden_gates, Tensor? input_bias, Tensor? hidden_bias, Tensor cx, Tensor cy) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_thnn_fused_gru_cell(Tensor input_gates, Tensor hidden_gates, Tensor hx, Tensor? input_bias=None, Tensor? hidden_bias=None) -> (Tensor, Tensor)", tags_0);
  m.def("_thnn_fused_gru_cell_backward(Tensor grad_hy, Tensor workspace, bool has_bias) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_thnn_differentiable_gru_cell_backward(Tensor grad_hy, Tensor input_gates, Tensor hidden_gates, Tensor hx, Tensor? input_bias, Tensor? hidden_bias) -> (Tensor, Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("lstm.input(Tensor input, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor, Tensor)", tags_2);
  m.def("lstm.data(Tensor data, Tensor batch_sizes, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor, Tensor)", tags_2);
  m.def("gru.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)", tags_2);
  m.def("gru.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)", tags_2);
  m.def("rnn_tanh.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)", tags_2);
  m.def("rnn_tanh.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)", tags_2);
  m.def("rnn_relu.input(Tensor input, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first) -> (Tensor, Tensor)", tags_2);
  m.def("rnn_relu.data(Tensor data, Tensor batch_sizes, Tensor hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional) -> (Tensor, Tensor)", tags_2);
  m.def("lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> (Tensor, Tensor)", tags_0);
  m.def("gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> Tensor", tags_0);
  m.def("rnn_tanh_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> Tensor", tags_0);
  m.def("rnn_relu_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor? b_ih=None, Tensor? b_hh=None) -> Tensor", tags_0);
  m.def("quantized_lstm_cell(Tensor input, Tensor[] hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> (Tensor, Tensor)", tags_0);
  m.def("quantized_gru_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> Tensor", tags_0);
  m.def("quantized_rnn_relu_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> Tensor", tags_0);
  m.def("quantized_rnn_tanh_cell(Tensor input, Tensor hx, Tensor w_ih, Tensor w_hh, Tensor b_ih, Tensor b_hh, Tensor packed_ih, Tensor packed_hh, Tensor col_offsets_ih, Tensor col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh) -> Tensor", tags_0);
  m.def("_pack_padded_sequence(Tensor input, Tensor lengths, bool batch_first) -> (Tensor, Tensor)", tags_0);
  m.def("_pack_padded_sequence_backward(Tensor grad, SymInt[] input_size, Tensor batch_sizes, bool batch_first) -> Tensor", tags_0);
  m.def("_pad_packed_sequence(Tensor data, Tensor batch_sizes, bool batch_first, Scalar padding_value, int total_length) -> (Tensor, Tensor)", tags_0);
  m.def("set_.source_Storage(Tensor(a!) self, Storage source) -> Tensor(a!)", tags_1);
  m.def("set_.source_Storage_storage_offset(Tensor(a!) self, Storage source, SymInt storage_offset, SymInt[] size, SymInt[] stride=[]) -> Tensor(a!)", tags_1);
  m.def("set_.source_Tensor_storage_offset(Tensor(a!) self, Tensor source, SymInt storage_offset, SymInt[] size, SymInt[] stride=[]) -> Tensor(a!)", tags_1);
  m.def("set_.source_Tensor(Tensor(a!) self, Tensor source) -> Tensor(a!)", tags_1);
  m.def("set_(Tensor(a!) self) -> Tensor(a!)", tags_1);
  m.def("lift(Tensor self) -> Tensor", tags_0);
  m.def("lift_fresh(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("lift_fresh_copy(Tensor self) -> Tensor", tags_15);
  m.def("is_set_to(Tensor self, Tensor tensor) -> bool", tags_0);
  m.def("masked_fill_.Scalar(Tensor(a!) self, Tensor mask, Scalar value) -> Tensor(a!)", tags_0);
  m.def("masked_fill.Scalar(Tensor self, Tensor mask, Scalar value) -> Tensor", tags_4);
  m.def("masked_fill_.Tensor(Tensor(a!) self, Tensor mask, Tensor value) -> Tensor(a!)", tags_0);
  m.def("masked_fill.Tensor(Tensor self, Tensor mask, Tensor value) -> Tensor", tags_0);
  m.def("masked_scatter_(Tensor(a!) self, Tensor mask, Tensor source) -> Tensor(a!)", tags_0);
  m.def("masked_scatter(Tensor self, Tensor mask, Tensor source) -> Tensor", tags_8);
  m.def("masked_scatter_backward(Tensor grad_output, Tensor mask, SymInt[] sizes) -> Tensor", tags_0);
  m.def("_masked_softmax(Tensor self, Tensor mask, int? dim=None, int? mask_type=None) -> Tensor", tags_0);
  m.def("_masked_softmax_backward(Tensor grad_output, Tensor output, Tensor mask, int? dim=None) -> Tensor", tags_0);
  m.def("view(Tensor(a) self, SymInt[] size) -> Tensor(a)", tags_8);
  m.def("view.dtype(Tensor(a) self, ScalarType dtype) -> Tensor(a)", tags_0);
  m.def("put_(Tensor(a!) self, Tensor index, Tensor source, bool accumulate=False) -> Tensor(a!)", tags_0);
  m.def("put(Tensor self, Tensor index, Tensor source, bool accumulate=False) -> Tensor", tags_0);
  m.def("index_add.out(Tensor self, int dim, Tensor index, Tensor source, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("index_add_(Tensor(a!) self, int dim, Tensor index, Tensor source, *, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("index_add(Tensor self, int dim, Tensor index, Tensor source, *, Scalar alpha=1) -> Tensor", tags_0);
  m.def("index_add.dimname(Tensor self, Dimname dim, Tensor index, Tensor source, *, Scalar alpha=1) -> Tensor", tags_0);
  m.def("index_reduce.out(Tensor self, int dim, Tensor index, Tensor source, str reduce, *, bool include_self=True, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("index_reduce_(Tensor(a!) self, int dim, Tensor index, Tensor source, str reduce, *, bool include_self=True) -> Tensor(a!)", tags_0);
  m.def("index_reduce(Tensor self, int dim, Tensor index, Tensor source, str reduce, *, bool include_self=True) -> Tensor", tags_0);
  m.def("index_fill_.int_Scalar(Tensor(a!) self, int dim, Tensor index, Scalar value) -> Tensor(a!)", tags_0);
  m.def("index_fill.int_Scalar(Tensor self, int dim, Tensor index, Scalar value) -> Tensor", tags_0);
  m.def("index_fill_.int_Tensor(Tensor(a!) self, int dim, Tensor index, Tensor value) -> Tensor(a!)", tags_0);
  m.def("index_fill.int_Tensor(Tensor self, int dim, Tensor index, Tensor value) -> Tensor", tags_0);
  m.def("index_fill_.Dimname_Scalar(Tensor(a!) self, Dimname dim, Tensor index, Scalar value) -> Tensor(a!)", tags_0);
  m.def("index_fill_.Dimname_Tensor(Tensor(a!) self, Dimname dim, Tensor index, Tensor value) -> Tensor(a!)", tags_0);
  m.def("index_fill.Dimname_Scalar(Tensor self, Dimname dim, Tensor index, Scalar value) -> Tensor", tags_0);
  m.def("index_fill.Dimname_Tensor(Tensor self, Dimname dim, Tensor index, Tensor value) -> Tensor", tags_0);
  m.def("scatter.src(Tensor self, int dim, Tensor index, Tensor src) -> Tensor", tags_8);
  m.def("scatter_.src(Tensor(a!) self, int dim, Tensor index, Tensor src) -> Tensor(a!)", tags_0);
  m.def("scatter.src_out(Tensor self, int dim, Tensor index, Tensor src, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("scatter.value(Tensor self, int dim, Tensor index, Scalar value) -> Tensor", tags_8);
  m.def("scatter_.value(Tensor(a!) self, int dim, Tensor index, Scalar value) -> Tensor(a!)", tags_0);
  m.def("scatter.value_out(Tensor self, int dim, Tensor index, Scalar value, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("scatter.reduce(Tensor self, int dim, Tensor index, Tensor src, *, str reduce) -> Tensor", tags_0);
  m.def("scatter_.reduce(Tensor(a!) self, int dim, Tensor index, Tensor src, *, str reduce) -> Tensor(a!)", tags_0);
  m.def("scatter.reduce_out(Tensor self, int dim, Tensor index, Tensor src, *, str reduce, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("scatter.value_reduce(Tensor self, int dim, Tensor index, Scalar value, *, str reduce) -> Tensor", tags_0);
  m.def("scatter_.value_reduce(Tensor(a!) self, int dim, Tensor index, Scalar value, *, str reduce) -> Tensor(a!)", tags_0);
  m.def("scatter.value_reduce_out(Tensor self, int dim, Tensor index, Scalar value, *, str reduce, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("scatter.dimname_src(Tensor self, Dimname dim, Tensor index, Tensor src) -> Tensor", tags_0);
  m.def("scatter.dimname_value(Tensor self, Dimname dim, Tensor index, Scalar value) -> Tensor", tags_0);
  m.def("scatter_add(Tensor self, int dim, Tensor index, Tensor src) -> Tensor", tags_8);
  m.def("scatter_add_(Tensor(a!) self, int dim, Tensor index, Tensor src) -> Tensor(a!)", tags_0);
  m.def("scatter_add.out(Tensor self, int dim, Tensor index, Tensor src, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("scatter_add.dimname(Tensor self, Dimname dim, Tensor index, Tensor src) -> Tensor", tags_0);
  m.def("scatter_reduce.two(Tensor self, int dim, Tensor index, Tensor src, str reduce, *, bool include_self=True) -> Tensor", tags_8);
  m.def("scatter_reduce_.two(Tensor(a!) self, int dim, Tensor index, Tensor src, str reduce, *, bool include_self=True) -> Tensor(a!)", tags_0);
  m.def("scatter_reduce.two_out(Tensor self, int dim, Tensor index, Tensor src, str reduce, *, bool include_self=True, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("eq_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("eq_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("bitwise_and.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_and.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_and.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("bitwise_and.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("bitwise_and.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("bitwise_and_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("bitwise_and_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("__and__.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("__and__.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("__iand__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("__iand__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("bitwise_or.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_or.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_or.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("bitwise_or.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("bitwise_or.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("bitwise_or_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("bitwise_or_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("__or__.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("__or__.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("__ior__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("__ior__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("bitwise_xor.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_xor.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_xor.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("bitwise_xor.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("bitwise_xor.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("bitwise_xor_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("bitwise_xor_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("__xor__.Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("__xor__.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("__ixor__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("__ixor__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("__lshift__.Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("__lshift__.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("__ilshift__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("__ilshift__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("bitwise_left_shift.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("bitwise_left_shift_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("bitwise_left_shift.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_left_shift.Tensor_Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("bitwise_left_shift_.Tensor_Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("bitwise_left_shift.Tensor_Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_left_shift.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("__rshift__.Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("__rshift__.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("__irshift__.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("__irshift__.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("bitwise_right_shift.Tensor(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("bitwise_right_shift_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("bitwise_right_shift.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_right_shift.Tensor_Scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("bitwise_right_shift_.Tensor_Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("bitwise_right_shift.Tensor_Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("bitwise_right_shift.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("tril_(Tensor(a!) self, int diagonal=0) -> Tensor(a!)", tags_0);
  m.def("triu_(Tensor(a!) self, int diagonal=0) -> Tensor(a!)", tags_0);
  m.def("digamma_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("lerp_.Scalar(Tensor(a!) self, Tensor end, Scalar weight) -> Tensor(a!)", tags_4);
  m.def("lerp_.Tensor(Tensor(a!) self, Tensor end, Tensor weight) -> Tensor(a!)", tags_4);
  m.def("addbmm_(Tensor(a!) self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor(a!)", tags_0);
  m.def("addbmm.out(Tensor self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("addbmm(Tensor self, Tensor batch1, Tensor batch2, *, Scalar beta=1, Scalar alpha=1) -> Tensor", tags_0);
  m.def("random_.from(Tensor(a!) self, int from, int? to, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("random_.to(Tensor(a!) self, int to, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("random_(Tensor(a!) self, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("uniform_(Tensor(a!) self, float from=0, float to=1, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("cauchy_(Tensor(a!) self, float median=0, float sigma=1, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("log_normal_(Tensor(a!) self, float mean=1, float std=2, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("exponential_(Tensor(a!) self, float lambd=1, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("geometric_(Tensor(a!) self, float p, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("diag.out(Tensor self, int diagonal=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("diag(Tensor self, int diagonal=0) -> Tensor", tags_0);
  m.def("cross.out(Tensor self, Tensor other, int? dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cross(Tensor self, Tensor other, int? dim=None) -> Tensor", tags_0);
  m.def("triu.out(Tensor self, int diagonal=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("triu(Tensor self, int diagonal=0) -> Tensor", tags_0);
  m.def("tril.out(Tensor self, int diagonal=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("tril(Tensor self, int diagonal=0) -> Tensor", tags_0);
  m.def("tril_indices(int row, int col, int offset=0, *, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("triu_indices(int row, int col, int offset=0, *, ScalarType? dtype=long, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("trace(Tensor self) -> Tensor", tags_0);
  m.def("trace_backward(Tensor grad, SymInt[] sizes) -> Tensor", tags_0);
  m.def("ne.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("ne.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("ne.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("ne.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("ne_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("ne_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("not_equal.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("not_equal.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("not_equal.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("not_equal.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("not_equal_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("not_equal_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("eq.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("eq.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("eq.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("eq.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("ge.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("ge.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("ge.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("ge.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("ge_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("ge_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("greater_equal.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("greater_equal.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("greater_equal.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("greater_equal.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("greater_equal_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("greater_equal_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("le.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("le.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("le.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("le.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("le_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("le_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("less_equal.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("less_equal.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("less_equal.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("less_equal.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("less_equal_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("less_equal_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("gt.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("gt.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("gt.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("gt.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("gt_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("gt_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("greater.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("greater.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("greater.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("greater.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("greater_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("greater_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("lt.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lt.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("lt.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lt.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("lt_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("lt_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("less.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("less.Scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("less.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("less.Tensor(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("less_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_0);
  m.def("less_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("take.out(Tensor self, Tensor index, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("take(Tensor self, Tensor index) -> Tensor", tags_0);
  m.def("take_along_dim.out(Tensor self, Tensor indices, int? dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("take_along_dim(Tensor self, Tensor indices, int? dim=None) -> Tensor", tags_0);
  m.def("index_select.out(Tensor self, int dim, Tensor index, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("index_select(Tensor self, int dim, Tensor index) -> Tensor", tags_8);
  m.def("index_select.dimname_out(Tensor self, Dimname dim, Tensor index, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("index_select.dimname(Tensor self, Dimname dim, Tensor index) -> Tensor", tags_0);
  m.def("index_select_backward(Tensor grad, SymInt[] self_sizes, int dim, Tensor index) -> Tensor", tags_0);
  m.def("masked_select.out(Tensor self, Tensor mask, *, Tensor(a!) out) -> Tensor(a!)", tags_11);
  m.def("masked_select(Tensor self, Tensor mask) -> Tensor", tags_11);
  m.def("masked_select_backward(Tensor grad, Tensor input, Tensor mask) -> Tensor", tags_0);
  m.def("nonzero.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_11);
  m.def("nonzero(Tensor self) -> Tensor", tags_13);
  m.def("nonzero_static.out(Tensor self, *, SymInt size, int fill_value=-1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nonzero_static(Tensor self, *, SymInt size, int fill_value=-1) -> Tensor", tags_0);
  m.def("nonzero_numpy(Tensor self) -> Tensor[]", tags_0);
  m.def("argwhere(Tensor self) -> Tensor", tags_11);
  m.def("gather.out(Tensor self, int dim, Tensor index, *, bool sparse_grad=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("gather(Tensor self, int dim, Tensor index, *, bool sparse_grad=False) -> Tensor", tags_8);
  m.def("gather_backward(Tensor grad, Tensor self, int dim, Tensor index, bool sparse_grad) -> Tensor", tags_0);
  m.def("gather.dimname_out(Tensor self, Dimname dim, Tensor index, *, bool sparse_grad=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("gather.dimname(Tensor self, Dimname dim, Tensor index, *, bool sparse_grad=False) -> Tensor", tags_0);
  m.def("_gather_sparse_backward(Tensor self, int dim, Tensor index, Tensor grad) -> Tensor", tags_0);
  m.def("addcmul.out(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("addcmul(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor", tags_4);
  m.def("addcmul_(Tensor(a!) self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor(a!)", tags_4);
  m.def("addcdiv.out(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("addcdiv(Tensor self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor", tags_4);
  m.def("addcdiv_(Tensor(a!) self, Tensor tensor1, Tensor tensor2, *, Scalar value=1) -> Tensor(a!)", tags_4);
  m.def("cross_entropy_loss(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100, float label_smoothing=0.0) -> Tensor", tags_0);
  m.def("triangular_solve.X(Tensor self, Tensor A, bool upper=True, bool transpose=False, bool unitriangular=False, *, Tensor(a!) X, Tensor(b!) M) -> (Tensor(a!) solution, Tensor(b!) cloned_coefficient)", tags_0);
  m.def("triangular_solve(Tensor self, Tensor A, bool upper=True, bool transpose=False, bool unitriangular=False) -> (Tensor solution, Tensor cloned_coefficient)", tags_0);
  m.def("_linalg_check_errors(Tensor info, str api_name, *, bool is_matrix) -> ()", tags_0);
  m.def("linalg_solve_triangular.out(Tensor self, Tensor B, *, bool upper, bool left=True, bool unitriangular=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_solve_triangular(Tensor self, Tensor B, *, bool upper, bool left=True, bool unitriangular=False) -> Tensor", tags_0);
  m.def("linalg_vander(Tensor x, *, SymInt? N=None) -> Tensor", tags_0);
  m.def("svd.U(Tensor self, bool some=True, bool compute_uv=True, *, Tensor(a!) U, Tensor(b!) S, Tensor(c!) V) -> (Tensor(a!) U, Tensor(b!) S, Tensor(c!) V)", tags_0);
  m.def("svd(Tensor self, bool some=True, bool compute_uv=True) -> (Tensor U, Tensor S, Tensor V)", tags_0);
  m.def("swapaxes(Tensor(a) self, int axis0, int axis1) -> Tensor(a)", tags_0);
  m.def("swapaxes_(Tensor(a!) self, int axis0, int axis1) -> Tensor(a!)", tags_1);
  m.def("swapdims(Tensor(a) self, int dim0, int dim1) -> Tensor(a)", tags_0);
  m.def("swapdims_(Tensor(a!) self, int dim0, int dim1) -> Tensor(a!)", tags_1);
  m.def("cholesky.out(Tensor self, bool upper=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cholesky(Tensor self, bool upper=False) -> Tensor", tags_0);
  m.def("cholesky_solve.out(Tensor self, Tensor input2, bool upper=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("cholesky_solve(Tensor self, Tensor input2, bool upper=False) -> Tensor", tags_0);
  m.def("_cholesky_solve_helper(Tensor self, Tensor A, bool upper) -> Tensor", tags_0);
  m.def("cholesky_inverse(Tensor self, bool upper=False) -> Tensor", tags_0);
  m.def("cholesky_inverse.out(Tensor self, bool upper=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("qr.Q(Tensor self, bool some=True, *, Tensor(a!) Q, Tensor(b!) R) -> (Tensor(a!) Q, Tensor(b!) R)", tags_0);
  m.def("qr(Tensor self, bool some=True) -> (Tensor Q, Tensor R)", tags_0);
  m.def("geqrf.a(Tensor self, *, Tensor(a!) a, Tensor(b!) tau) -> (Tensor(a!) a, Tensor(b!) tau)", tags_0);
  m.def("geqrf(Tensor self) -> (Tensor a, Tensor tau)", tags_0);
  m.def("orgqr(Tensor self, Tensor input2) -> Tensor", tags_0);
  m.def("orgqr.out(Tensor self, Tensor input2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("ormqr.out(Tensor self, Tensor input2, Tensor input3, bool left=True, bool transpose=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("ormqr(Tensor self, Tensor input2, Tensor input3, bool left=True, bool transpose=False) -> Tensor", tags_0);
  m.def("_lu_with_info(Tensor self, bool pivot=True, bool check_errors=True) -> (Tensor LU, Tensor pivots, Tensor info)", tags_0);
  m.def("lu_solve.out(Tensor self, Tensor LU_data, Tensor LU_pivots, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("lu_solve(Tensor self, Tensor LU_data, Tensor LU_pivots) -> Tensor", tags_0);
  m.def("lu_unpack(Tensor LU_data, Tensor LU_pivots, bool unpack_data=True, bool unpack_pivots=True) -> (Tensor P, Tensor L, Tensor U)", tags_0);
  m.def("lu_unpack.out(Tensor LU_data, Tensor LU_pivots, bool unpack_data=True, bool unpack_pivots=True, *, Tensor(a!) P, Tensor(b!) L, Tensor(c!) U) -> (Tensor(a!) P, Tensor(b!) L, Tensor(c!) U)", tags_0);
  m.def("multinomial.out(Tensor self, int num_samples, bool replacement=False, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("multinomial(Tensor self, int num_samples, bool replacement=False, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("lgamma.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lgamma_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("lgamma(Tensor self) -> Tensor", tags_4);
  m.def("digamma.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("digamma(Tensor self) -> Tensor", tags_4);
  m.def("polygamma.out(int n, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("polygamma(int n, Tensor self) -> Tensor", tags_4);
  m.def("polygamma_(Tensor(a!) self, int n) -> Tensor(a!)", tags_4);
  m.def("erfinv(Tensor self) -> Tensor", tags_4);
  m.def("erfinv_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("erfinv.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("i0(Tensor self) -> Tensor", tags_4);
  m.def("i0_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("i0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("sign(Tensor self) -> Tensor", tags_6);
  m.def("sign_(Tensor(a!) self) -> Tensor(a!)", tags_4);
  m.def("sign.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("signbit(Tensor self) -> Tensor", tags_4);
  m.def("signbit.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("dist(Tensor self, Tensor other, Scalar p=2) -> Tensor", tags_0);
  m.def("atan2.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_6);
  m.def("atan2_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("atan2(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("arctan2(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("arctan2.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("arctan2_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_0);
  m.def("lerp.Scalar_out(Tensor self, Tensor end, Scalar weight, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lerp.Tensor_out(Tensor self, Tensor end, Tensor weight, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("lerp.Scalar(Tensor self, Tensor end, Scalar weight) -> Tensor", tags_4);
  m.def("lerp.Tensor(Tensor self, Tensor end, Tensor weight) -> Tensor", tags_4);
  m.def("histc.out(Tensor self, int bins=100, Scalar min=0, Scalar max=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("histc(Tensor self, int bins=100, Scalar min=0, Scalar max=0) -> Tensor", tags_0);
  m.def("histogram.bins_tensor_out(Tensor self, Tensor bins, *, Tensor? weight=None, bool density=False, Tensor(a!) hist, Tensor(b!) bin_edges) -> (Tensor(a!) hist, Tensor(b!) bin_edges)", tags_0);
  m.def("histogram.bins_tensor(Tensor self, Tensor bins, *, Tensor? weight=None, bool density=False) -> (Tensor hist, Tensor bin_edges)", tags_0);
  m.def("histogram.bin_ct_out(Tensor self, int bins=100, *, float[]? range=None, Tensor? weight=None, bool density=False, Tensor(a!) hist, Tensor(b!) bin_edges) -> (Tensor(a!) hist, Tensor(b!) bin_edges)", tags_0);
  m.def("histogram.bin_ct(Tensor self, int bins=100, *, float[]? range=None, Tensor? weight=None, bool density=False) -> (Tensor hist, Tensor bin_edges)", tags_0);
  m.def("_histogramdd_bin_edges(Tensor self, int[] bins, *, float[]? range=None, Tensor? weight=None, bool density=False) -> Tensor[]", tags_0);
  m.def("_histogramdd_from_bin_cts(Tensor self, int[] bins, *, float[]? range=None, Tensor? weight=None, bool density=False) -> Tensor", tags_0);
  m.def("_histogramdd_from_bin_tensors(Tensor self, Tensor[] bins, *, Tensor? weight=None, bool density=False) -> Tensor", tags_0);
  m.def("histogramdd(Tensor self, int[] bins, float[]? range=None, Tensor? weight=None, bool density=False) -> (Tensor hist, Tensor[] bin_edges)", tags_0);
  m.def("histogramdd.int_bins(Tensor self, int bins, float[]? range=None, Tensor? weight=None, bool density=False) -> (Tensor hist, Tensor[] bin_edges)", tags_0);
  m.def("histogramdd.TensorList_bins(Tensor self, Tensor[] bins, float[]? range=None, Tensor? weight=None, bool density=False) -> (Tensor hist, Tensor[] bin_edges)", tags_0);
  m.def("fmod.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("fmod.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("fmod_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("fmod.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("fmod.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("fmod_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("hypot.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("hypot(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("hypot_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("igamma.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("igamma(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("igamma_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("igammac.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("igammac(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("igammac_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("nextafter.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("nextafter(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("nextafter_(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("remainder.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("remainder.Scalar(Tensor self, Scalar other) -> Tensor", tags_6);
  m.def("remainder_.Scalar(Tensor(a!) self, Scalar other) -> Tensor(a!)", tags_4);
  m.def("remainder.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("remainder.Tensor(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("remainder_.Tensor(Tensor(a!) self, Tensor other) -> Tensor(a!)", tags_4);
  m.def("remainder.Scalar_Tensor(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("min(Tensor self) -> Tensor", tags_0);
  m.def("min.unary_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fmin(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("fmin.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("max(Tensor self) -> Tensor", tags_0);
  m.def("fmax(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("fmax.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("maximum(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("maximum.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("max.other(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("max.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("max.unary_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("minimum(Tensor self, Tensor other) -> Tensor", tags_6);
  m.def("minimum.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("min.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("min.other(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("quantile(Tensor self, Tensor q, int? dim=None, bool keepdim=False, *, str interpolation='linear') -> Tensor", tags_0);
  m.def("quantile.out(Tensor self, Tensor q, int? dim=None, bool keepdim=False, *, str interpolation='linear', Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("quantile.scalar(Tensor self, float q, int? dim=None, bool keepdim=False, *, str interpolation='linear') -> Tensor", tags_0);
  m.def("quantile.scalar_out(Tensor self, float q, int? dim=None, bool keepdim=False, *, str interpolation='linear', Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nanquantile(Tensor self, Tensor q, int? dim=None, bool keepdim=False, *, str interpolation='linear') -> Tensor", tags_0);
  m.def("nanquantile.out(Tensor self, Tensor q, int? dim=None, bool keepdim=False, *, str interpolation='linear', Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nanquantile.scalar(Tensor self, float q, int? dim=None, bool keepdim=False, *, str interpolation='linear') -> Tensor", tags_0);
  m.def("nanquantile.scalar_out(Tensor self, float q, int? dim=None, bool keepdim=False, *, str interpolation='linear', Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("sort.values(Tensor self, int dim=-1, bool descending=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("sort.values_stable(Tensor self, *, bool? stable, int dim=-1, bool descending=False, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("sort(Tensor self, int dim=-1, bool descending=False) -> (Tensor values, Tensor indices)", tags_8);
  m.def("sort.stable(Tensor self, *, bool? stable, int dim=-1, bool descending=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("sort.dimname_values(Tensor self, Dimname dim, bool descending=False, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("sort.dimname_values_stable(Tensor self, *, bool? stable, Dimname dim, bool descending=False, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("sort.dimname(Tensor self, Dimname dim, bool descending=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("sort.dimname_stable(Tensor self, *, bool? stable, Dimname dim, bool descending=False) -> (Tensor values, Tensor indices)", tags_0);
  m.def("msort.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("msort(Tensor self) -> Tensor", tags_0);
  m.def("argsort(Tensor self, int dim=-1, bool descending=False) -> Tensor", tags_0);
  m.def("argsort.stable(Tensor self, *, bool stable, int dim=-1, bool descending=False) -> Tensor", tags_0);
  m.def("argsort.stable_out(Tensor self, *, bool stable, int dim=-1, bool descending=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("argsort.dimname(Tensor self, Dimname dim, bool descending=False) -> Tensor", tags_0);
  m.def("topk.values(Tensor self, SymInt k, int dim=-1, bool largest=True, bool sorted=True, *, Tensor(a!) values, Tensor(b!) indices) -> (Tensor(a!) values, Tensor(b!) indices)", tags_0);
  m.def("topk(Tensor self, SymInt k, int dim=-1, bool largest=True, bool sorted=True) -> (Tensor values, Tensor indices)", tags_8);
  m.def("all(Tensor self) -> Tensor", tags_0);
  m.def("all.all_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("any(Tensor self) -> Tensor", tags_8);
  m.def("any.all_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("renorm.out(Tensor self, Scalar p, int dim, Scalar maxnorm, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("renorm(Tensor self, Scalar p, int dim, Scalar maxnorm) -> Tensor", tags_0);
  m.def("renorm_(Tensor(a!) self, Scalar p, int dim, Scalar maxnorm) -> Tensor(a!)", tags_0);
  m.def("unfold(Tensor(a) self, int dimension, int size, int step) -> Tensor(a)", tags_0);
  m.def("unfold_backward(Tensor grad_in, SymInt[] input_sizes, int dim, int size, int step) -> Tensor", tags_0);
  const std::vector<at::Tag> tags_19 = {at::Tag::data_dependent_output, at::Tag::pointwise, at::Tag::pt2_compliant_tag};
  m.def("equal(Tensor self, Tensor other) -> bool", tags_19);
  m.def("pow.Tensor_Tensor_out(Tensor self, Tensor exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("pow.Tensor_Tensor(Tensor self, Tensor exponent) -> Tensor", tags_6);
  m.def("pow.Scalar_out(Scalar self, Tensor exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("pow.Scalar(Scalar self, Tensor exponent) -> Tensor", tags_6);
  m.def("pow.Tensor_Scalar_out(Tensor self, Scalar exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("pow.Tensor_Scalar(Tensor self, Scalar exponent) -> Tensor", tags_6);
  m.def("pow_.Scalar(Tensor(a!) self, Scalar exponent) -> Tensor(a!)", tags_4);
  m.def("pow_.Tensor(Tensor(a!) self, Tensor exponent) -> Tensor(a!)", tags_4);
  m.def("float_power.Tensor_Tensor_out(Tensor self, Tensor exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("float_power.Tensor_Tensor(Tensor self, Tensor exponent) -> Tensor", tags_4);
  m.def("float_power.Scalar_out(Scalar self, Tensor exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("float_power.Scalar(Scalar self, Tensor exponent) -> Tensor", tags_4);
  m.def("float_power.Tensor_Scalar_out(Tensor self, Scalar exponent, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("float_power.Tensor_Scalar(Tensor self, Scalar exponent) -> Tensor", tags_4);
  m.def("float_power_.Scalar(Tensor(a!) self, Scalar exponent) -> Tensor(a!)", tags_4);
  m.def("float_power_.Tensor(Tensor(a!) self, Tensor exponent) -> Tensor(a!)", tags_4);
  m.def("normal_(Tensor(a!) self, float mean=0, float std=1, *, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("normal_functional(Tensor self, float mean=0, float std=1, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("normal.Tensor_float_out(Tensor mean, float std=1, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("normal.Tensor_float(Tensor mean, float std=1, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("normal.float_Tensor_out(float mean, Tensor std, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("normal.float_Tensor(float mean, Tensor std, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("normal.Tensor_Tensor_out(Tensor mean, Tensor std, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("normal.Tensor_Tensor(Tensor mean, Tensor std, *, Generator? generator=None) -> Tensor", tags_2);
  m.def("normal.float_float(float mean, float std, SymInt[] size, *, Generator? generator=None, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_2);
  m.def("normal.float_float_out(float mean, float std, SymInt[] size, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("alias(Tensor(a) self) -> Tensor(a)", tags_8);
  m.def("_amp_foreach_non_finite_check_and_unscale_(Tensor(a!)[] self, Tensor(b!) found_inf, Tensor inv_scale) -> ()", tags_0);
  m.def("_amp_update_scale_(Tensor(a!) self, Tensor(b!) growth_tracker, Tensor found_inf, float scale_growth_factor, float scale_backoff_factor, int growth_interval) -> Tensor(a!)", tags_0);
  m.def("_foreach_add.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_add_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_add.List(Tensor[] self, Tensor[] other, *, Scalar alpha=1) -> Tensor[]", tags_0);
  m.def("_foreach_add_.List(Tensor(a!)[] self, Tensor[] other, *, Scalar alpha=1) -> ()", tags_0);
  m.def("_foreach_add.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_add_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_add.Tensor(Tensor[] self, Tensor other, *, Scalar alpha=1) -> Tensor[]", tags_0);
  m.def("_foreach_add_.Tensor(Tensor(a!)[] self, Tensor other, *, Scalar alpha=1) -> ()", tags_0);
  m.def("_foreach_sub.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_sub_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_sub.List(Tensor[] self, Tensor[] other, *, Scalar alpha=1) -> Tensor[]", tags_0);
  m.def("_foreach_sub_.List(Tensor(a!)[] self, Tensor[] other, *, Scalar alpha=1) -> ()", tags_0);
  m.def("_foreach_sub.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_sub_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_mul.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_mul_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_mul.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_mul_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_mul.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_mul_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_mul.Tensor(Tensor[] self, Tensor other) -> Tensor[]", tags_0);
  m.def("_foreach_mul_.Tensor(Tensor(a!)[] self, Tensor other) -> ()", tags_0);
  m.def("_foreach_div.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_div_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_div.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_div_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_div.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_div_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_div.Tensor(Tensor[] self, Tensor other) -> Tensor[]", tags_0);
  m.def("_foreach_div_.Tensor(Tensor(a!)[] self, Tensor other) -> ()", tags_0);
  m.def("_foreach_clamp_max.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_max_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_clamp_max.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_max_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_clamp_max.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_max_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_clamp_min.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_min_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_clamp_min.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_min_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_clamp_min.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_clamp_min_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_maximum.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_maximum_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_maximum.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_maximum_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_maximum.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_maximum_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_minimum.Scalar(Tensor[] self, Scalar scalar) -> Tensor[]", tags_0);
  m.def("_foreach_minimum_.Scalar(Tensor(a!)[] self, Scalar scalar) -> ()", tags_0);
  m.def("_foreach_minimum.List(Tensor[] self, Tensor[] other) -> Tensor[]", tags_0);
  m.def("_foreach_minimum_.List(Tensor(a!)[] self, Tensor[] other) -> ()", tags_0);
  m.def("_foreach_minimum.ScalarList(Tensor[] self, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_minimum_.ScalarList(Tensor(a!)[] self, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_addcdiv.Scalar(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1) -> Tensor[]", tags_0);
  m.def("_foreach_addcdiv.ScalarList(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_addcdiv.Tensor(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars) -> Tensor[]", tags_0);
  m.def("_foreach_addcdiv_.Scalar(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1) -> ()", tags_0);
  m.def("_foreach_addcdiv_.ScalarList(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_addcdiv_.Tensor(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars) -> ()", tags_0);
  m.def("_foreach_addcmul.Scalar(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1) -> Tensor[]", tags_0);
  m.def("_foreach_addcmul.ScalarList(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars) -> Tensor[]", tags_0);
  m.def("_foreach_addcmul.Tensor(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars) -> Tensor[]", tags_0);
  m.def("_foreach_addcmul_.Scalar(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1) -> ()", tags_0);
  m.def("_foreach_addcmul_.ScalarList(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars) -> ()", tags_0);
  m.def("_foreach_addcmul_.Tensor(Tensor(a!)[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars) -> ()", tags_0);
  m.def("_foreach_abs(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_abs_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_acos(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_acos_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_asin(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_asin_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_atan(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_atan_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_ceil(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_ceil_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_cos(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_cos_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_cosh(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_cosh_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_erf(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_erf_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_erfc(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_erfc_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_exp(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_exp_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_expm1(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_expm1_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_floor(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_floor_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_frac(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_frac_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_lerp.List(Tensor[] self, Tensor[] tensors1, Tensor[] weights) -> Tensor[]", tags_0);
  m.def("_foreach_lerp_.List(Tensor(a!)[] self, Tensor[] tensors1, Tensor[] weights) -> ()", tags_0);
  m.def("_foreach_lerp.Scalar(Tensor[] self, Tensor[] tensors1, Scalar weight) -> Tensor[]", tags_0);
  m.def("_foreach_lerp_.Scalar(Tensor(a!)[] self, Tensor[] tensors1, Scalar weight) -> ()", tags_0);
  m.def("_foreach_lerp.ScalarList(Tensor[] self, Tensor[] tensors1, Scalar[] weight) -> Tensor[]", tags_0);
  m.def("_foreach_lerp_.ScalarList(Tensor(a!)[] self, Tensor[] tensors1, Scalar[] weight) -> ()", tags_0);
  m.def("_foreach_lgamma(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_lgamma_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_log(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_log_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_log10(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_log10_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_log1p(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_log1p_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_log2(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_log2_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_max(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_neg(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_neg_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_norm.Scalar(Tensor[] self, Scalar ord=2, ScalarType? dtype=None) -> Tensor[]", tags_0);
  m.def("_foreach_pow.List(Tensor[] self, Tensor[] exponent) -> Tensor[]", tags_0);
  m.def("_foreach_pow.Scalar(Tensor[] self, Scalar exponent) -> Tensor[]", tags_0);
  m.def("_foreach_pow.ScalarList(Tensor[] self, Scalar[] exponent) -> Tensor[]", tags_0);
  m.def("_foreach_pow.ScalarAndTensor(Scalar self, Tensor[] exponent) -> Tensor[]", tags_0);
  m.def("_foreach_pow_.List(Tensor(a!)[] self, Tensor[] exponent) -> ()", tags_0);
  m.def("_foreach_pow_.Scalar(Tensor(a!)[] self, Scalar exponent) -> ()", tags_0);
  m.def("_foreach_pow_.ScalarList(Tensor(a!)[] self, Scalar[] exponent) -> ()", tags_0);
  m.def("_foreach_reciprocal(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_reciprocal_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_round(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_round_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_rsqrt(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_rsqrt_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_sigmoid(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_sigmoid_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_sign(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_sign_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_sin(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_sin_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_sinh(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_sinh_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_sqrt(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_sqrt_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_tan(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_tan_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_tanh(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_tanh_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_trunc(Tensor[] self) -> Tensor[]", tags_0);
  m.def("_foreach_trunc_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_zero_(Tensor(a!)[] self) -> ()", tags_0);
  m.def("_foreach_copy_(Tensor(a!)[] self, Tensor[] src, bool non_blocking=False) -> ()", tags_0);
  m.def("_foreach_copy(Tensor[] self, Tensor[] src, bool non_blocking=False) -> Tensor[] self_out", tags_0);
  m.def("bucketize.Tensor(Tensor self, Tensor boundaries, *, bool out_int32=False, bool right=False) -> Tensor", tags_0);
  m.def("bucketize.Tensor_out(Tensor self, Tensor boundaries, *, bool out_int32=False, bool right=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("bucketize.Scalar(Scalar self, Tensor boundaries, *, bool out_int32=False, bool right=False) -> Tensor", tags_0);
  m.def("searchsorted.Tensor(Tensor sorted_sequence, Tensor self, *, bool out_int32=False, bool right=False, str? side=None, Tensor? sorter=None) -> Tensor", tags_0);
  m.def("searchsorted.Tensor_out(Tensor sorted_sequence, Tensor self, *, bool out_int32=False, bool right=False, str? side=None, Tensor? sorter=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("searchsorted.Scalar(Tensor sorted_sequence, Scalar self, *, bool out_int32=False, bool right=False, str? side=None, Tensor? sorter=None) -> Tensor", tags_0);
  m.def("searchsorted.Scalar_out(Tensor sorted_sequence, Scalar self, *, bool out_int32=False, bool right=False, str? side=None, Tensor? sorter=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_convert_indices_from_coo_to_csr(Tensor self, int size, *, bool out_int32=False) -> Tensor", tags_0);
  m.def("_convert_indices_from_coo_to_csr.out(Tensor self, int size, *, bool out_int32=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_convert_indices_from_csr_to_coo(Tensor crow_indices, Tensor col_indices, *, bool out_int32=False, bool transpose=False) -> Tensor", tags_0);
  m.def("_convert_indices_from_csr_to_coo.out(Tensor crow_indices, Tensor col_indices, *, bool out_int32=False, bool transpose=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mse_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mse_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor", tags_0);
  m.def("mse_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("mse_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction) -> Tensor", tags_0);
  m.def("l1_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor", tags_0);
  m.def("multi_margin_loss.out(Tensor self, Tensor target, Scalar p=1, Scalar margin=1, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("multi_margin_loss(Tensor self, Tensor target, Scalar p=1, Scalar margin=1, Tensor? weight=None, int reduction=Mean) -> Tensor", tags_0);
  m.def("multi_margin_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Scalar p, Scalar margin, Tensor? weight=None, int reduction=Mean, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("multi_margin_loss_backward(Tensor grad_output, Tensor self, Tensor target, Scalar p, Scalar margin, Tensor? weight=None, int reduction=Mean) -> Tensor", tags_0);
  m.def("multilabel_margin_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("multilabel_margin_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor", tags_0);
  m.def("multilabel_margin_loss_forward.output(Tensor self, Tensor target, int reduction, *, Tensor(a!) output, Tensor(b!) is_target) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("multilabel_margin_loss_forward(Tensor self, Tensor target, int reduction) -> (Tensor output, Tensor is_target)", tags_0);
  m.def("multilabel_margin_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, Tensor is_target, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("multilabel_margin_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction, Tensor is_target) -> Tensor", tags_0);
  m.def("nll_loss.out(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nll_loss_nd(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100) -> Tensor", tags_0);
  m.def("nll_loss(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100) -> Tensor", tags_0);
  m.def("nll_loss_forward.output(Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, *, Tensor(a!) output, Tensor(b!) total_weight) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("nll_loss_forward(Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index) -> (Tensor output, Tensor total_weight)", tags_0);
  m.def("nll_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, Tensor total_weight, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("nll_loss_backward(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, Tensor total_weight) -> Tensor", tags_0);
  m.def("nll_loss2d.out(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nll_loss2d(Tensor self, Tensor target, Tensor? weight=None, int reduction=Mean, SymInt ignore_index=-100) -> Tensor", tags_0);
  m.def("nll_loss2d_forward.output(Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, *, Tensor(a!) output, Tensor(b!) total_weight) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("nll_loss2d_forward(Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index) -> (Tensor output, Tensor total_weight)", tags_0);
  m.def("nll_loss2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, Tensor total_weight, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("nll_loss2d_backward(Tensor grad_output, Tensor self, Tensor target, Tensor? weight, int reduction, SymInt ignore_index, Tensor total_weight) -> Tensor", tags_0);
  m.def("smooth_l1_loss.out(Tensor self, Tensor target, int reduction=Mean, float beta=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("smooth_l1_loss(Tensor self, Tensor target, int reduction=Mean, float beta=1.0) -> Tensor", tags_0);
  m.def("smooth_l1_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, float beta, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("smooth_l1_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction, float beta) -> Tensor", tags_0);
  m.def("huber_loss.out(Tensor self, Tensor target, int reduction=Mean, float delta=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("huber_loss(Tensor self, Tensor target, int reduction=Mean, float delta=1.0) -> Tensor", tags_0);
  m.def("huber_loss_backward.out(Tensor grad_output, Tensor self, Tensor target, int reduction, float delta, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("huber_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction, float delta) -> Tensor", tags_0);
  m.def("soft_margin_loss.out(Tensor self, Tensor target, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("soft_margin_loss(Tensor self, Tensor target, int reduction=Mean) -> Tensor", tags_0);
  m.def("soft_margin_loss_backward.grad_input(Tensor grad_output, Tensor self, Tensor target, int reduction, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("soft_margin_loss_backward(Tensor grad_output, Tensor self, Tensor target, int reduction) -> Tensor", tags_0);
  m.def("elu.out(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("elu(Tensor self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> Tensor", tags_4);
  m.def("elu_backward.grad_input(Tensor grad_output, Scalar alpha, Scalar scale, Scalar input_scale, bool is_result, Tensor self_or_result, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("elu_backward(Tensor grad_output, Scalar alpha, Scalar scale, Scalar input_scale, bool is_result, Tensor self_or_result) -> Tensor", tags_0);
  m.def("elu_(Tensor(a!) self, Scalar alpha=1, Scalar scale=1, Scalar input_scale=1) -> Tensor(a!)", tags_0);
  m.def("glu.out(Tensor self, int dim=-1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("glu(Tensor self, int dim=-1) -> Tensor", tags_0);
  m.def("glu_backward.grad_input(Tensor grad_output, Tensor self, int dim, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("glu_backward(Tensor grad_output, Tensor self, int dim) -> Tensor", tags_0);
  m.def("glu_jvp(Tensor glu, Tensor x, Tensor dx, int dim) -> Tensor", tags_0);
  m.def("glu_backward_jvp(Tensor grad_x, Tensor grad_glu, Tensor x, Tensor dgrad_glu, Tensor dx, int dim) -> Tensor", tags_0);
  m.def("hardsigmoid.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hardsigmoid(Tensor self) -> Tensor", tags_4);
  m.def("hardsigmoid_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("hardsigmoid_backward.grad_input(Tensor grad_output, Tensor self, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("hardsigmoid_backward(Tensor grad_output, Tensor self) -> Tensor", tags_0);
  m.def("hardtanh.out(Tensor self, Scalar min_val=-1, Scalar max_val=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hardtanh(Tensor self, Scalar min_val=-1, Scalar max_val=1) -> Tensor", tags_6);
  m.def("hardtanh_backward.grad_input(Tensor grad_output, Tensor self, Scalar min_val, Scalar max_val, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("hardtanh_backward(Tensor grad_output, Tensor self, Scalar min_val, Scalar max_val) -> Tensor", tags_0);
  m.def("hardtanh_(Tensor(a!) self, Scalar min_val=-1, Scalar max_val=1) -> Tensor(a!)", tags_0);
  m.def("hardswish.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("hardswish(Tensor self) -> Tensor", tags_0);
  m.def("hardswish_(Tensor(a!) self) -> Tensor(a!)", tags_0);
  m.def("hardswish_backward(Tensor grad_output, Tensor self) -> Tensor", tags_0);
  m.def("leaky_relu.out(Tensor self, Scalar negative_slope=0.01, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("leaky_relu(Tensor self, Scalar negative_slope=0.01) -> Tensor", tags_8);
  m.def("leaky_relu_backward.grad_input(Tensor grad_output, Tensor self, Scalar negative_slope, bool self_is_result, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("leaky_relu_backward(Tensor grad_output, Tensor self, Scalar negative_slope, bool self_is_result) -> Tensor", tags_0);
  m.def("leaky_relu_(Tensor(a!) self, Scalar negative_slope=0.01) -> Tensor(a!)", tags_0);
  m.def("log_sigmoid.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("log_sigmoid(Tensor self) -> Tensor", tags_0);
  m.def("log_sigmoid_forward.output(Tensor self, *, Tensor(a!) output, Tensor(b!) buffer) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("log_sigmoid_forward(Tensor self) -> (Tensor output, Tensor buffer)", tags_0);
  m.def("log_sigmoid_backward.grad_input(Tensor grad_output, Tensor self, Tensor buffer, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("log_sigmoid_backward(Tensor grad_output, Tensor self, Tensor buffer) -> Tensor", tags_0);
  m.def("rrelu_with_noise.out(Tensor self, Tensor(b!) noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None, *, Tensor(a!) out) -> Tensor(a!)", tags_2);
  m.def("rrelu_with_noise(Tensor self, Tensor(b!) noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor", tags_2);
  m.def("rrelu_with_noise_backward(Tensor grad_output, Tensor self, Tensor noise, Scalar lower, Scalar upper, bool training, bool self_is_result) -> Tensor", tags_0);
  m.def("rrelu_with_noise_(Tensor(a!) self, Tensor(b!) noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> Tensor(a!)", tags_2);
  m.def("softplus.out(Tensor self, Scalar beta=1, Scalar threshold=20, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("softplus(Tensor self, Scalar beta=1, Scalar threshold=20) -> Tensor", tags_4);
  m.def("softplus_backward.grad_input(Tensor grad_output, Tensor self, Scalar beta, Scalar threshold, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("softplus_backward(Tensor grad_output, Tensor self, Scalar beta, Scalar threshold) -> Tensor", tags_0);
  m.def("softshrink.out(Tensor self, Scalar lambd=0.5, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("softshrink(Tensor self, Scalar lambd=0.5) -> Tensor", tags_4);
  m.def("softshrink_backward.grad_input(Tensor grad_output, Tensor self, Scalar lambd, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("softshrink_backward(Tensor grad_output, Tensor self, Scalar lambd) -> Tensor", tags_0);
  m.def("adaptive_avg_pool2d.out(Tensor self, SymInt[2] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("adaptive_avg_pool2d(Tensor self, SymInt[2] output_size) -> Tensor", tags_0);
  m.def("mkldnn_adaptive_avg_pool2d(Tensor self, int[2] output_size) -> Tensor", tags_0);
  m.def("mkldnn_adaptive_avg_pool2d.out(Tensor self, int[2] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("mkldnn_adaptive_avg_pool2d_backward(Tensor grad_output, Tensor self) -> Tensor", tags_0);
  m.def("_adaptive_avg_pool2d(Tensor self, SymInt[2] output_size) -> Tensor", tags_8);
  m.def("_adaptive_avg_pool2d_backward(Tensor grad_output, Tensor self) -> Tensor", tags_8);
  m.def("adaptive_avg_pool3d.out(Tensor self, SymInt[3] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("adaptive_avg_pool3d(Tensor self, SymInt[3] output_size) -> Tensor", tags_0);
  m.def("_adaptive_avg_pool3d(Tensor self, SymInt[3] output_size) -> Tensor", tags_8);
  m.def("adaptive_avg_pool3d_backward.grad_input(Tensor grad_output, Tensor self, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_adaptive_avg_pool3d_backward(Tensor grad_output, Tensor self) -> Tensor", tags_0);
  m.def("adaptive_max_pool2d.out(Tensor self, int[2] output_size, *, Tensor(a!) out, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("adaptive_max_pool2d(Tensor self, int[2] output_size) -> (Tensor, Tensor)", tags_0);
  m.def("adaptive_max_pool2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("adaptive_max_pool2d_backward(Tensor grad_output, Tensor self, Tensor indices) -> Tensor", tags_0);
  m.def("adaptive_max_pool3d.out(Tensor self, int[3] output_size, *, Tensor(a!) out, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("adaptive_max_pool3d(Tensor self, int[3] output_size) -> (Tensor, Tensor)", tags_0);
  m.def("adaptive_max_pool3d_backward.grad_input(Tensor grad_output, Tensor self, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("adaptive_max_pool3d_backward(Tensor grad_output, Tensor self, Tensor indices) -> Tensor", tags_0);
  m.def("avg_pool2d.out(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("avg_pool2d(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> Tensor", tags_8);
  m.def("avg_pool2d_backward.grad_input(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, bool ceil_mode, bool count_include_pad, int? divisor_override, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("avg_pool2d_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, bool ceil_mode, bool count_include_pad, int? divisor_override) -> Tensor", tags_8);
  m.def("avg_pool3d.out(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("avg_pool3d(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, bool ceil_mode=False, bool count_include_pad=True, int? divisor_override=None) -> Tensor", tags_8);
  m.def("avg_pool3d_backward.grad_input(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, bool ceil_mode, bool count_include_pad, int? divisor_override, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("avg_pool3d_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, bool ceil_mode, bool count_include_pad, int? divisor_override) -> Tensor", tags_0);
  m.def("fractional_max_pool2d.output(Tensor self, int[2] kernel_size, int[2] output_size, Tensor random_samples, *, Tensor(a!) output, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("fractional_max_pool2d(Tensor self, int[2] kernel_size, int[2] output_size, Tensor random_samples) -> (Tensor, Tensor)", tags_0);
  m.def("fractional_max_pool2d_backward.grad_input(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] output_size, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("fractional_max_pool2d_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] output_size, Tensor indices) -> Tensor", tags_0);
  m.def("fractional_max_pool3d.output(Tensor self, int[3] kernel_size, int[3] output_size, Tensor random_samples, *, Tensor(a!) output, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("fractional_max_pool3d(Tensor self, int[3] kernel_size, int[3] output_size, Tensor random_samples) -> (Tensor, Tensor)", tags_0);
  m.def("fractional_max_pool3d_backward.grad_input(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] output_size, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("fractional_max_pool3d_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] output_size, Tensor indices) -> Tensor", tags_0);
  m.def("max_pool2d_with_indices.out(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False, *, Tensor(a!) out, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("max_pool2d_with_indices(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)", tags_8);
  m.def("max_pool2d_with_indices_backward.grad_input(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, bool ceil_mode, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("max_pool2d_with_indices_backward(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride, int[2] padding, int[2] dilation, bool ceil_mode, Tensor indices) -> Tensor", tags_8);
  m.def("max_pool3d_with_indices.out(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False, *, Tensor(a!) out, Tensor(b!) indices) -> (Tensor(a!), Tensor(b!))", tags_0);
  m.def("max_pool3d_with_indices(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False) -> (Tensor, Tensor)", tags_8);
  m.def("max_pool3d_with_indices_backward.grad_input(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, int[3] dilation, bool ceil_mode, Tensor indices, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("max_pool3d_with_indices_backward(Tensor grad_output, Tensor self, int[3] kernel_size, int[3] stride, int[3] padding, int[3] dilation, bool ceil_mode, Tensor indices) -> Tensor", tags_0);
  m.def("max_unpool2d.out(Tensor self, Tensor indices, SymInt[2] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("max_unpool2d(Tensor self, Tensor indices, SymInt[2] output_size) -> Tensor", tags_0);
  m.def("max_unpool3d.out(Tensor self, Tensor indices, SymInt[3] output_size, int[3] stride, int[3] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("max_unpool3d(Tensor self, Tensor indices, SymInt[3] output_size, int[3] stride, int[3] padding) -> Tensor", tags_0);
  m.def("reflection_pad1d.out(Tensor self, SymInt[2] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("reflection_pad1d(Tensor self, SymInt[2] padding) -> Tensor", tags_8);
  m.def("reflection_pad1d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[2] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("reflection_pad1d_backward(Tensor grad_output, Tensor self, SymInt[2] padding) -> Tensor", tags_0);
  m.def("reflection_pad2d.out(Tensor self, SymInt[4] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("reflection_pad2d(Tensor self, SymInt[4] padding) -> Tensor", tags_8);
  m.def("reflection_pad2d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[4] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("reflection_pad2d_backward(Tensor grad_output, Tensor self, SymInt[4] padding) -> Tensor", tags_0);
  m.def("reflection_pad3d.out(Tensor self, SymInt[6] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("reflection_pad3d(Tensor self, SymInt[6] padding) -> Tensor", tags_8);
  m.def("reflection_pad3d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[6] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("reflection_pad3d_backward(Tensor grad_output, Tensor self, SymInt[6] padding) -> Tensor", tags_0);
  m.def("replication_pad1d.out(Tensor self, SymInt[2] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("replication_pad1d(Tensor self, SymInt[2] padding) -> Tensor", tags_0);
  m.def("replication_pad1d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[2] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("replication_pad1d_backward(Tensor grad_output, Tensor self, SymInt[2] padding) -> Tensor", tags_0);
  m.def("replication_pad2d.out(Tensor self, SymInt[4] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("replication_pad2d(Tensor self, SymInt[4] padding) -> Tensor", tags_8);
  m.def("replication_pad2d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[4] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("replication_pad2d_backward(Tensor grad_output, Tensor self, SymInt[4] padding) -> Tensor", tags_0);
  m.def("replication_pad3d.out(Tensor self, SymInt[6] padding, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("replication_pad3d(Tensor self, SymInt[6] padding) -> Tensor", tags_8);
  m.def("replication_pad3d_backward.grad_input(Tensor grad_output, Tensor self, SymInt[6] padding, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("replication_pad3d_backward(Tensor grad_output, Tensor self, SymInt[6] padding) -> Tensor", tags_0);
  m.def("_pad_circular(Tensor self, SymInt[] pad) -> Tensor", tags_0);
  m.def("_pad_enum(Tensor self, SymInt[] pad, int mode, float? value=None) -> Tensor", tags_0);
  m.def("pad(Tensor self, SymInt[] pad, str mode=\"constant\", float? value=None) -> Tensor", tags_0);
  m.def("upsample_linear1d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_bilinear2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_8);
  m.def("_upsample_bilinear2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_trilinear3d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_bicubic2d.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_0);
  m.def("_upsample_bicubic2d_aa.vec(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_nearest1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact1d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_nearest2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_8);
  m.def("_upsample_nearest_exact2d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_nearest3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact3d.vec(Tensor input, SymInt[]? output_size, float[]? scale_factors) -> Tensor", tags_0);
  m.def("upsample_linear1d.out(Tensor self, SymInt[1] output_size, bool align_corners, float? scales=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_linear1d(Tensor self, SymInt[1] output_size, bool align_corners, float? scales=None) -> Tensor", tags_0);
  m.def("upsample_linear1d_backward.grad_input(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, bool align_corners, float? scales=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_linear1d_backward(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, bool align_corners, float? scales=None) -> Tensor", tags_0);
  m.def("upsample_bilinear2d.out(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_bilinear2d(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_bilinear2d_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_bilinear2d_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_bilinear2d_aa.out(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_upsample_bilinear2d_aa(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_bilinear2d_aa_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_upsample_bilinear2d_aa_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_bicubic2d.out(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_bicubic2d(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_bicubic2d_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_bicubic2d_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_bicubic2d_aa.out(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_upsample_bicubic2d_aa(Tensor self, SymInt[2] output_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_bicubic2d_aa_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_upsample_bicubic2d_aa_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, bool align_corners, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_trilinear3d.out(Tensor self, SymInt[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_trilinear3d(Tensor self, SymInt[3] output_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_trilinear3d_backward.grad_input(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_trilinear3d_backward(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, bool align_corners, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_nearest1d.out(Tensor self, SymInt[1] output_size, float? scales=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact1d.out(Tensor self, SymInt[1] output_size, float? scales=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest1d(Tensor self, SymInt[1] output_size, float? scales=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact1d(Tensor self, SymInt[1] output_size, float? scales=None) -> Tensor", tags_0);
  m.def("upsample_nearest1d_backward.grad_input(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, float? scales=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact1d_backward.grad_input(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, float? scales=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest1d_backward(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, float? scales=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact1d_backward(Tensor grad_output, SymInt[1] output_size, SymInt[3] input_size, float? scales=None) -> Tensor", tags_0);
  m.def("upsample_nearest2d.out(Tensor self, SymInt[2] output_size, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact2d.out(Tensor self, SymInt[2] output_size, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest2d(Tensor self, SymInt[2] output_size, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact2d(Tensor self, SymInt[2] output_size, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_nearest2d_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact2d_backward.grad_input(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest2d_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact2d_backward(Tensor grad_output, SymInt[2] output_size, SymInt[4] input_size, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_nearest3d.out(Tensor self, SymInt[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact3d.out(Tensor self, SymInt[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest3d(Tensor self, SymInt[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact3d(Tensor self, SymInt[3] output_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("upsample_nearest3d_backward.grad_input(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("_upsample_nearest_exact3d_backward.grad_input(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, float? scales_d=None, float? scales_h=None, float? scales_w=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_0);
  m.def("upsample_nearest3d_backward(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("_upsample_nearest_exact3d_backward(Tensor grad_output, SymInt[3] output_size, SymInt[5] input_size, float? scales_d=None, float? scales_h=None, float? scales_w=None) -> Tensor", tags_0);
  m.def("sigmoid_backward.grad_input(Tensor grad_output, Tensor output, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_4);
  m.def("sigmoid_backward(Tensor grad_output, Tensor output) -> Tensor", tags_4);
  m.def("logit_backward.grad_input(Tensor grad_output, Tensor self, float? eps=None, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_4);
  m.def("logit_backward(Tensor grad_output, Tensor self, float? eps=None) -> Tensor", tags_4);
  m.def("tanh_backward.grad_input(Tensor grad_output, Tensor output, *, Tensor(a!) grad_input) -> Tensor(a!)", tags_4);
  m.def("tanh_backward(Tensor grad_output, Tensor output) -> Tensor", tags_4);
  m.def("slow_conv_transpose2d.out(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] output_padding=0, SymInt[2] dilation=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("slow_conv_transpose2d(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] output_padding=0, SymInt[2] dilation=1) -> Tensor", tags_0);
  m.def("slow_conv_transpose3d.out(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] output_padding=0, SymInt[3] dilation=1, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("slow_conv_transpose3d(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] output_padding=0, SymInt[3] dilation=1) -> Tensor", tags_0);
  m.def("thnn_conv2d.out(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("thnn_conv2d(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0) -> Tensor", tags_0);
  m.def("_slow_conv2d_forward.output(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias, SymInt[2] stride, SymInt[2] padding, *, Tensor(a!) output) -> Tensor(a!)", tags_0);
  m.def("_slow_conv2d_forward(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias, SymInt[2] stride, SymInt[2] padding) -> Tensor", tags_0);
  m.def("_slow_conv2d_backward.grad_input(Tensor grad_output, Tensor self, Tensor weight, SymInt[2] kernel_size, SymInt[2] stride, SymInt[2] padding, *, Tensor(a!) grad_input, Tensor(b!) grad_weight, Tensor(c!) grad_bias) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_0);
  m.def("_slow_conv2d_backward.output_mask(Tensor grad_output, Tensor self, Tensor weight, SymInt[2] kernel_size, SymInt[2] stride, SymInt[2] padding, bool[3] output_mask) -> (Tensor grad_input, Tensor grad_weight, Tensor grad_bias)", tags_0);
  m.def("_conv_depthwise2d.out(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias, SymInt[2] stride, SymInt[2] padding, SymInt[2] dilation, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_conv_depthwise2d(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias, SymInt[2] stride, SymInt[2] padding, SymInt[2] dilation) -> Tensor", tags_0);
  m.def("conv_depthwise3d(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias, SymInt[3] stride, SymInt[3] padding, SymInt[3] dilation) -> Tensor", tags_0);
  m.def("slow_conv3d.out(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("slow_conv3d(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0) -> Tensor", tags_0);
  m.def("slow_conv3d_forward.output(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias, SymInt[3] stride, SymInt[3] padding, *, Tensor(a!) output) -> Tensor(a!)", tags_0);
  m.def("slow_conv3d_forward(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias, SymInt[3] stride, SymInt[3] padding) -> Tensor", tags_0);
  m.def("slow_conv_dilated2d(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] dilation=1) -> Tensor", tags_0);
  m.def("slow_conv_dilated3d(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] dilation=1) -> Tensor", tags_0);
  m.def("col2im.out(Tensor self, SymInt[2] output_size, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("col2im(Tensor self, SymInt[2] output_size, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor", tags_8);
  m.def("column_stack(Tensor[] tensors) -> Tensor", tags_0);
  m.def("column_stack.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("im2col.out(Tensor self, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("im2col(Tensor self, int[2] kernel_size, int[2] dilation, int[2] padding, int[2] stride) -> Tensor", tags_0);
  m.def("isfinite(Tensor self) -> Tensor", tags_4);
  m.def("isinf(Tensor self) -> Tensor", tags_6);
  m.def("record_stream(Tensor(a!) self, Stream s) -> ()", tags_0);
  m.def("isposinf(Tensor self) -> Tensor", tags_4);
  m.def("isposinf.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("isneginf(Tensor self) -> Tensor", tags_4);
  m.def("isneginf.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("_add_batch_dim(Tensor self, int batch_dim, int level) -> Tensor", tags_0);
  m.def("_remove_batch_dim(Tensor self, int level, SymInt batch_size, int out_dim) -> Tensor", tags_0);
  m.def("special_entr(Tensor self) -> Tensor", tags_4);
  m.def("special_entr.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_ndtri(Tensor self) -> Tensor", tags_4);
  m.def("special_ndtri.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_log_ndtr(Tensor self) -> Tensor", tags_4);
  m.def("special_log_ndtr.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_expm1(Tensor self) -> Tensor", tags_0);
  m.def("special_expm1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_exp2(Tensor self) -> Tensor", tags_0);
  m.def("special_exp2.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_psi(Tensor self) -> Tensor", tags_0);
  m.def("special_psi.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_digamma(Tensor self) -> Tensor", tags_0);
  m.def("special_digamma.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_gammaln(Tensor self) -> Tensor", tags_0);
  m.def("special_gammaln.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_erf(Tensor self) -> Tensor", tags_0);
  m.def("special_erf.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_erfc(Tensor self) -> Tensor", tags_0);
  m.def("special_erfc.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_erfcx(Tensor self) -> Tensor", tags_4);
  m.def("special_erfcx.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_erfinv(Tensor self) -> Tensor", tags_0);
  m.def("special_erfinv.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_ndtr(Tensor self) -> Tensor", tags_0);
  m.def("special_ndtr.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_xlog1py(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("special_xlog1py.self_scalar(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("special_xlog1py.other_scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("special_xlog1py.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_xlog1py.self_scalar_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_xlog1py.other_scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_xlogy(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("special_xlogy.self_scalar(Scalar self, Tensor other) -> Tensor", tags_0);
  m.def("special_xlogy.other_scalar(Tensor self, Scalar other) -> Tensor", tags_0);
  m.def("special_xlogy.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_xlogy.self_scalar_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_xlogy.other_scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_zeta(Tensor self, Tensor other) -> Tensor", tags_4);
  m.def("special_zeta.self_scalar(Scalar self, Tensor other) -> Tensor", tags_4);
  m.def("special_zeta.other_scalar(Tensor self, Scalar other) -> Tensor", tags_4);
  m.def("special_zeta.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_zeta.self_scalar_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_zeta.other_scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_i0(Tensor self) -> Tensor", tags_0);
  m.def("special_i0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_i0e(Tensor self) -> Tensor", tags_4);
  m.def("special_i0e.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_i1(Tensor self) -> Tensor", tags_4);
  m.def("special_i1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_i1e(Tensor self) -> Tensor", tags_4);
  m.def("special_i1e.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_logit(Tensor self, float? eps=None) -> Tensor", tags_0);
  m.def("special_logit.out(Tensor self, float? eps=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_polygamma(int n, Tensor self) -> Tensor", tags_0);
  m.def("special_polygamma.out(int n, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_logsumexp(Tensor self, int[1] dim, bool keepdim=False) -> Tensor", tags_0);
  m.def("special_logsumexp.out(Tensor self, int[1] dim, bool keepdim=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_expit(Tensor self) -> Tensor", tags_0);
  m.def("special_expit.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_sinc(Tensor self) -> Tensor", tags_0);
  m.def("special_sinc.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_round(Tensor self, *, int decimals=0) -> Tensor", tags_0);
  m.def("special_round.out(Tensor self, *, int decimals=0, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_log1p(Tensor self) -> Tensor", tags_0);
  m.def("special_log1p.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_log_softmax(Tensor self, int dim, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("special_gammainc.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_gammainc(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("special_gammaincc.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_gammaincc(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("special_multigammaln(Tensor self, int p) -> Tensor", tags_0);
  m.def("special_multigammaln.out(Tensor self, int p, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("special_softmax(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("fft_fft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_fft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ifft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_ifft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_rfft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_rfft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_irfft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_irfft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_hfft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_hfft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ihfft(Tensor self, SymInt? n=None, int dim=-1, str? norm=None) -> Tensor", tags_0);
  m.def("fft_ihfft.out(Tensor self, SymInt? n=None, int dim=-1, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_fft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_fft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ifft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_ifft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_rfft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_rfft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_irfft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_irfft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_hfft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_hfft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ihfft2(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None) -> Tensor", tags_0);
  m.def("fft_ihfft2.out(Tensor self, SymInt[1]? s=None, int[1] dim=[-2,-1], str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_fftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_fftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ifftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_ifftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_rfftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_rfftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_irfftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_irfftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_hfftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_hfftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_ihfftn(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None) -> Tensor", tags_0);
  m.def("fft_ihfftn.out(Tensor self, SymInt[1]? s=None, int[1]? dim=None, str? norm=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_fftfreq(int n, float d=1.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("fft_fftfreq.out(int n, float d=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_rfftfreq(int n, float d=1.0, *, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("fft_rfftfreq.out(int n, float d=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("fft_fftshift(Tensor self, int[1]? dim=None) -> Tensor", tags_0);
  m.def("fft_ifftshift(Tensor self, int[1]? dim=None) -> Tensor", tags_0);
  m.def("linalg_cholesky_ex(Tensor self, *, bool upper=False, bool check_errors=False) -> (Tensor L, Tensor info)", tags_0);
  m.def("linalg_cholesky_ex.L(Tensor self, *, bool upper=False, bool check_errors=False, Tensor(a!) L, Tensor(b!) info) -> (Tensor(a!) L, Tensor(b!) info)", tags_0);
  m.def("linalg_cholesky(Tensor self, *, bool upper=False) -> Tensor", tags_0);
  m.def("linalg_cholesky.out(Tensor self, *, bool upper=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_cross(Tensor self, Tensor other, *, int dim=-1) -> Tensor", tags_0);
  m.def("linalg_cross.out(Tensor self, Tensor other, *, int dim=-1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_lu_factor(Tensor A, *, bool pivot=True) -> (Tensor LU, Tensor pivots)", tags_0);
  m.def("linalg_lu_factor.out(Tensor A, *, bool pivot=True, Tensor(a!) LU, Tensor(b!) pivots) -> (Tensor(a!) LU, Tensor(b!) pivots)", tags_0);
  m.def("linalg_lu_factor_ex(Tensor A, *, bool pivot=True, bool check_errors=False) -> (Tensor LU, Tensor pivots, Tensor info)", tags_0);
  m.def("linalg_lu_factor_ex.out(Tensor A, *, bool pivot=True, bool check_errors=False, Tensor(a!) LU, Tensor(b!) pivots, Tensor(c!) info) -> (Tensor(a!) LU, Tensor(b!) pivots, Tensor(c!) info)", tags_0);
  m.def("linalg_lu(Tensor A, *, bool pivot=True) -> (Tensor P, Tensor L, Tensor U)", tags_0);
  m.def("linalg_lu.out(Tensor A, *, bool pivot=True, Tensor(a!) P, Tensor(b!) L, Tensor(c!) U) -> (Tensor(a!) P, Tensor(b!) L, Tensor(c!) U)", tags_0);
  m.def("linalg_lu_solve(Tensor LU, Tensor pivots, Tensor B, *, bool left=True, bool adjoint=False) -> Tensor", tags_0);
  m.def("linalg_lu_solve.out(Tensor LU, Tensor pivots, Tensor B, *, bool left=True, bool adjoint=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_linalg_det(Tensor A) -> (Tensor result, Tensor LU, Tensor pivots)", tags_0);
  m.def("_linalg_det.result(Tensor A, *, Tensor(a!) result, Tensor(b!) LU, Tensor(c!) pivots) -> (Tensor(a!) result, Tensor(b!) LU, Tensor(c!) pivots)", tags_0);
  m.def("linalg_det(Tensor A) -> Tensor", tags_0);
  m.def("linalg_det.out(Tensor A, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("det(Tensor self) -> Tensor", tags_0);
  m.def("linalg_ldl_factor_ex(Tensor self, *, bool hermitian=False, bool check_errors=False) -> (Tensor LD, Tensor pivots, Tensor info)", tags_0);
  m.def("linalg_ldl_factor_ex.out(Tensor self, *, bool hermitian=False, bool check_errors=False, Tensor(a!) LD, Tensor(b!) pivots, Tensor(c!) info) -> (Tensor(a!) LD, Tensor(b!) pivots, Tensor(c!) info)", tags_0);
  m.def("linalg_ldl_factor(Tensor self, *, bool hermitian=False) -> (Tensor LD, Tensor pivots)", tags_0);
  m.def("linalg_ldl_factor.out(Tensor self, *, bool hermitian=False, Tensor(a!) LD, Tensor(b!) pivots) -> (Tensor(a!) LD, Tensor(b!) pivots)", tags_0);
  m.def("linalg_ldl_solve(Tensor LD, Tensor pivots, Tensor B, *, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_ldl_solve.out(Tensor LD, Tensor pivots, Tensor B, *, bool hermitian=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_lstsq(Tensor self, Tensor b, float? rcond=None, *, str? driver=None) -> (Tensor solution, Tensor residuals, Tensor rank, Tensor singular_values)", tags_11);
  m.def("linalg_lstsq.out(Tensor self, Tensor b, float? rcond=None, *, str? driver=None, Tensor(a!) solution, Tensor(b!) residuals, Tensor(c!) rank, Tensor(d!) singular_values) -> (Tensor(a!) solution, Tensor(b!) residuals, Tensor(c!) rank, Tensor(d!) singular_values)", tags_11);
  m.def("linalg_matmul(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("linalg_matmul.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_vecdot(Tensor x, Tensor y, *, int dim=-1) -> Tensor", tags_0);
  m.def("linalg_vecdot.out(Tensor x, Tensor y, *, int dim=-1, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_exp(Tensor self) -> Tensor", tags_0);
  m.def("_linalg_slogdet(Tensor A) -> (Tensor sign, Tensor logabsdet, Tensor LU, Tensor pivots)", tags_0);
  m.def("_linalg_slogdet.sign(Tensor A, *, Tensor(a!) sign, Tensor(b!) logabsdet, Tensor(c!) LU, Tensor(d!) pivots) -> (Tensor(a!) sign, Tensor(b!) logabsdet, Tensor(c!) LU, Tensor(d!) pivots)", tags_0);
  m.def("linalg_slogdet(Tensor A) -> (Tensor sign, Tensor logabsdet)", tags_0);
  m.def("linalg_slogdet.out(Tensor A, *, Tensor(a!) sign, Tensor(b!) logabsdet) -> (Tensor(a!) sign, Tensor(b!) logabsdet)", tags_0);
  m.def("slogdet(Tensor self) -> (Tensor sign, Tensor logabsdet)", tags_0);
  m.def("slogdet.out(Tensor self, *, Tensor(a!) sign, Tensor(b!) logabsdet) -> (Tensor(a!) sign, Tensor(b!) logabsdet)", tags_0);
  m.def("logdet(Tensor self) -> Tensor", tags_0);
  m.def("linalg_eig(Tensor self) -> (Tensor eigenvalues, Tensor eigenvectors)", tags_0);
  m.def("linalg_eig.out(Tensor self, *, Tensor(a!) eigenvalues, Tensor(b!) eigenvectors) -> (Tensor(a!) eigenvalues, Tensor(b!) eigenvectors)", tags_0);
  m.def("_linalg_eigvals(Tensor self) -> Tensor", tags_0);
  m.def("linalg_eigvals(Tensor self) -> Tensor", tags_0);
  m.def("linalg_eigvals.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_linalg_eigh(Tensor A, str UPLO=\"L\", bool compute_v=True) -> (Tensor eigenvalues, Tensor eigenvectors)", tags_0);
  m.def("_linalg_eigh.eigenvalues(Tensor A, str UPLO=\"L\", bool compute_v=True, *, Tensor(a!) eigenvalues, Tensor(b!) eigenvectors) -> (Tensor(a!) eigenvalues, Tensor(b!) eigenvectors)", tags_0);
  m.def("linalg_eigh(Tensor self, str UPLO=\"L\") -> (Tensor eigenvalues, Tensor eigenvectors)", tags_0);
  m.def("linalg_eigh.eigvals(Tensor self, str UPLO=\"L\", *, Tensor(a!) eigvals, Tensor(b!) eigvecs) -> (Tensor(a!) eigenvalues, Tensor(b!) eigenvectors)", tags_0);
  m.def("linalg_eigvalsh(Tensor self, str UPLO=\"L\") -> Tensor", tags_0);
  m.def("linalg_eigvalsh.out(Tensor self, str UPLO=\"L\", *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_householder_product(Tensor input, Tensor tau) -> Tensor", tags_0);
  m.def("linalg_householder_product.out(Tensor input, Tensor tau, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_inv_ex(Tensor A, *, bool check_errors=False) -> (Tensor inverse, Tensor info)", tags_0);
  m.def("linalg_inv_ex.inverse(Tensor A, *, bool check_errors=False, Tensor(a!) inverse, Tensor(b!) info) -> (Tensor(a!) inverse, Tensor(b!) info)", tags_0);
  m.def("linalg_inv(Tensor A) -> Tensor", tags_0);
  m.def("linalg_inv.out(Tensor A, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("inverse(Tensor self) -> Tensor", tags_0);
  m.def("inverse.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("inner(Tensor self, Tensor other) -> Tensor", tags_0);
  m.def("inner.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("outer(Tensor self, Tensor vec2) -> Tensor", tags_0);
  m.def("outer.out(Tensor self, Tensor vec2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("ger(Tensor self, Tensor vec2) -> Tensor", tags_0);
  m.def("ger.out(Tensor self, Tensor vec2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_norm(Tensor self, Scalar? ord=None, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("linalg_norm.ord_str(Tensor self, str ord, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("linalg_norm.out(Tensor self, Scalar? ord=None, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_norm.ord_str_out(Tensor self, str ord, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_vector_norm(Tensor self, Scalar ord=2, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("linalg_vector_norm.out(Tensor self, Scalar ord=2, int[1]? dim=None, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_norm(Tensor self, Scalar ord, int[] dim=[-2,-1], bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("linalg_matrix_norm.out(Tensor self, Scalar ord, int[] dim=[-2,-1], bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_norm.str_ord(Tensor self, str ord='fro', int[] dim=[-2,-1], bool keepdim=False, *, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("linalg_matrix_norm.str_ord_out(Tensor self, str ord='fro', int[] dim=[-2,-1], bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_linalg_svd(Tensor A, bool full_matrices=False, bool compute_uv=True, *, str? driver=None) -> (Tensor U, Tensor S, Tensor Vh)", tags_0);
  m.def("_linalg_svd.U(Tensor A, bool full_matrices=False, bool compute_uv=True, *, str? driver=None, Tensor(a!) U, Tensor(b!) S, Tensor(c!) Vh) -> (Tensor(a!) U, Tensor(b!) S, Tensor(c!) Vh)", tags_0);
  m.def("linalg_svd(Tensor A, bool full_matrices=True, *, str? driver=None) -> (Tensor U, Tensor S, Tensor Vh)", tags_0);
  m.def("linalg_svd.U(Tensor A, bool full_matrices=True, *, str? driver=None, Tensor(a!) U, Tensor(b!) S, Tensor(c!) Vh) -> (Tensor(a!) U, Tensor(b!) S, Tensor(c!) Vh)", tags_0);
  m.def("linalg_svdvals(Tensor A, *, str? driver=None) -> Tensor", tags_0);
  m.def("linalg_svdvals.out(Tensor A, *, str? driver=None, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_cond(Tensor self, Scalar? p=None) -> Tensor", tags_0);
  m.def("linalg_cond.out(Tensor self, Scalar? p=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_cond.p_str(Tensor self, str p) -> Tensor", tags_0);
  m.def("linalg_cond.p_str_out(Tensor self, str p, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_pinv.atol_rtol_tensor(Tensor self, *, Tensor? atol=None, Tensor? rtol=None, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_pinv.atol_rtol_tensor_out(Tensor self, *, Tensor? atol=None, Tensor? rtol=None, bool hermitian=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_pinv.atol_rtol_float(Tensor self, *, float? atol=None, float? rtol=None, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_pinv.atol_rtol_float_out(Tensor self, *, float? atol=None, float? rtol=None, bool hermitian=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_pinv(Tensor self, float rcond, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_pinv.rcond_tensor(Tensor self, Tensor rcond, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_pinv.out(Tensor self, float rcond, bool hermitian=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_pinv.out_rcond_tensor(Tensor self, Tensor rcond, bool hermitian=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("_linalg_solve_ex(Tensor A, Tensor B, *, bool left=True, bool check_errors=False) -> (Tensor result, Tensor LU, Tensor pivots, Tensor info)", tags_0);
  m.def("_linalg_solve_ex.result(Tensor A, Tensor B, *, bool left=True, bool check_errors=False, Tensor(a!) result, Tensor(b!) LU, Tensor(c!) pivots, Tensor(d!) info) -> (Tensor(a!) result, Tensor(b!) LU, Tensor(c!) pivots, Tensor(d!) info)", tags_0);
  m.def("linalg_solve_ex(Tensor A, Tensor B, *, bool left=True, bool check_errors=False) -> (Tensor result, Tensor info)", tags_0);
  m.def("linalg_solve_ex.out(Tensor A, Tensor B, *, bool left=True, bool check_errors=False, Tensor(a!) result, Tensor(b!) info) -> (Tensor(a!) result, Tensor(b!) info)", tags_0);
  m.def("linalg_solve(Tensor A, Tensor B, *, bool left=True) -> Tensor", tags_0);
  m.def("_spsolve(Tensor A, Tensor B, *, bool left=True) -> Tensor", tags_0);
  m.def("linalg_solve.out(Tensor A, Tensor B, *, bool left=True, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_tensorinv(Tensor self, int ind=2) -> Tensor", tags_0);
  m.def("linalg_tensorinv.out(Tensor self, int ind=2, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_tensorsolve(Tensor self, Tensor other, int[]? dims=None) -> Tensor", tags_0);
  m.def("linalg_tensorsolve.out(Tensor self, Tensor other, int[]? dims=None, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_qr(Tensor A, str mode='reduced') -> (Tensor Q, Tensor R)", tags_0);
  m.def("linalg_qr.out(Tensor A, str mode='reduced', *, Tensor(a!) Q, Tensor(b!) R) -> (Tensor(a!) Q, Tensor(b!) R)", tags_0);
  m.def("linalg_matrix_power(Tensor self, int n) -> Tensor", tags_0);
  m.def("linalg_matrix_power.out(Tensor self, int n, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_rank.atol_rtol_tensor(Tensor input, *, Tensor? atol=None, Tensor? rtol=None, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_matrix_rank.atol_rtol_tensor_out(Tensor input, *, Tensor? atol=None, Tensor? rtol=None, bool hermitian=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_rank.atol_rtol_float(Tensor self, *, float? atol=None, float? rtol=None, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_matrix_rank.atol_rtol_float_out(Tensor self, *, float? atol=None, float? rtol=None, bool hermitian=False, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_rank(Tensor self, float tol, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_matrix_rank.out(Tensor self, float tol, bool hermitian=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_matrix_rank.tol_tensor(Tensor input, Tensor tol, bool hermitian=False) -> Tensor", tags_0);
  m.def("linalg_matrix_rank.out_tol_tensor(Tensor input, Tensor tol, bool hermitian=False, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("linalg_multi_dot(Tensor[] tensors) -> Tensor", tags_0);
  m.def("linalg_multi_dot.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_0);
  m.def("nested_to_padded_tensor(Tensor self, float padding, int[]? output_size=None) -> Tensor", tags_0);
  m.def("_test_serialization_subcmul(Tensor self, Tensor other, Scalar alpha=1) -> Tensor", tags_0);
  m.def("_test_parallel_materialize(Tensor self, int num_parallel, bool skip_first=False) -> Tensor", tags_0);
  m.def("_test_optional_intlist(Tensor values, int[]? addends) -> Tensor", tags_0);
  m.def("_test_optional_filled_intlist(Tensor values, int[2]? addends) -> Tensor", tags_0);
  m.def("_test_optional_floatlist(Tensor values, float[]? addends) -> Tensor", tags_0);
  m.def("_test_string_default(Tensor dummy, str a=\"\\\"'\\\\\", str b='\"\\'\\\\') -> Tensor", tags_0);
  m.def("_test_ambiguous_defaults.a(Tensor dummy, int a=1, int b=1) -> Tensor", tags_0);
  m.def("_test_ambiguous_defaults.b(Tensor dummy, int a=2, str b=\"2\") -> Tensor", tags_0);
  m.def("_test_warn_in_autograd(Tensor self) -> Tensor", tags_0);
  m.def("_test_autograd_multiple_dispatch.fullcoverage(Tensor self) -> Tensor", tags_0);
  m.def("_test_autograd_multiple_dispatch.ntonly(Tensor self, bool b) -> Tensor", tags_0);
  m.def("_test_autograd_multiple_dispatch_view(Tensor(a) self) -> Tensor(a)", tags_0);
  m.def("_test_autograd_multiple_dispatch_view_copy(Tensor self) -> Tensor", tags_15);
  m.def("segment_reduce(Tensor data, str reduce, *, Tensor? lengths=None, Tensor? indices=None, Tensor? offsets=None, int axis=0, bool unsafe=False, Scalar? initial=None) -> Tensor", tags_0);
  m.def("_segment_reduce_backward(Tensor grad, Tensor output, Tensor data, str reduce, *, Tensor? lengths=None, Tensor? offsets=None, int axis=0, Scalar? initial=None) -> Tensor", tags_0);
  m.def("pad_sequence(Tensor[] sequences, bool batch_first=False, float padding_value=0.0, str padding_side=\"right\") -> Tensor", tags_0);
  m.def("flatten_dense_tensors(Tensor[] tensors) -> Tensor", tags_0);
  m.def("unflatten_dense_tensors(Tensor flat, Tensor[] tensors) -> Tensor[]", tags_0);
  m.def("_nested_tensor_from_tensor_list(Tensor[] list, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None) -> Tensor", tags_0);
  m.def("_fw_primal_copy(Tensor self, int level) -> Tensor", tags_15);
  m.def("_make_dual_copy(Tensor primal, Tensor tangent, int level) -> Tensor", tags_15);
  m.def("view_as_real_copy(Tensor self) -> Tensor", tags_15);
  m.def("view_as_complex_copy(Tensor self) -> Tensor", tags_15);
  m.def("_conj_copy(Tensor self) -> Tensor", tags_15);
  m.def("_neg_view_copy(Tensor self) -> Tensor", tags_15);
  m.def("as_strided_copy(Tensor self, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None) -> Tensor", tags_15);
  m.def("_sparse_broadcast_to_copy(Tensor self, int[] size) -> Tensor", tags_15);
  m.def("diagonal_copy(Tensor self, int offset=0, int dim1=0, int dim2=1) -> Tensor", tags_15);
  m.def("expand_copy(Tensor self, SymInt[] size, *, bool implicit=False) -> Tensor", tags_15);
  m.def("permute_copy(Tensor self, int[] dims) -> Tensor", tags_15);
  m.def("_reshape_alias_copy(Tensor self, SymInt[] size, SymInt[] stride) -> Tensor", tags_15);
  m.def("select_copy.int(Tensor self, int dim, SymInt index) -> Tensor", tags_15);
  m.def("detach_copy(Tensor self) -> Tensor", tags_15);
  m.def("slice_copy.Tensor(Tensor self, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1) -> Tensor", tags_15);
  m.def("split_copy.Tensor(Tensor self, SymInt split_size, int dim=0) -> Tensor[]", tags_15);
  m.def("split_with_sizes_copy(Tensor self, SymInt[] split_sizes, int dim=0) -> Tensor[]", tags_15);
  m.def("squeeze_copy(Tensor self) -> Tensor", tags_15);
  m.def("squeeze_copy.dim(Tensor self, int dim) -> Tensor", tags_15);
  m.def("squeeze_copy.dims(Tensor self, int[] dim) -> Tensor", tags_15);
  m.def("t_copy(Tensor self) -> Tensor", tags_15);
  m.def("transpose_copy.int(Tensor self, int dim0, int dim1) -> Tensor", tags_15);
  m.def("unsqueeze_copy(Tensor self, int dim) -> Tensor", tags_15);
  m.def("_indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("_values_copy(Tensor self) -> Tensor", tags_15);
  m.def("indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("values_copy(Tensor self) -> Tensor", tags_15);
  m.def("crow_indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("col_indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("ccol_indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("row_indices_copy(Tensor self) -> Tensor", tags_15);
  m.def("unbind_copy.int(Tensor self, int dim=0) -> Tensor[]", tags_15);
  m.def("unbind_copy.int_out(Tensor self, int dim=0, *, Tensor(a!)[] out) -> ()", tags_0);
  m.def("split_copy.Tensor_out(Tensor self, SymInt split_size, int dim=0, *, Tensor(a!)[] out) -> ()", tags_0);
  m.def("split_with_sizes_copy.out(Tensor self, SymInt[] split_sizes, int dim=0, *, Tensor(a!)[] out) -> ()", tags_0);
  m.def("view_copy(Tensor self, SymInt[] size) -> Tensor", tags_15);
  m.def("view_copy.dtype(Tensor self, ScalarType dtype) -> Tensor", tags_15);
  m.def("unfold_copy(Tensor self, int dimension, int size, int step) -> Tensor", tags_15);
  m.def("alias_copy(Tensor self) -> Tensor", tags_15);
  m.def("to_padded_tensor(Tensor self, float padding, SymInt[]? output_size=None) -> Tensor", tags_0);
  m.def("_jagged_to_padded_dense_forward(Tensor values, Tensor[] offsets, SymInt[] max_lengths, float padding_value=0.0) -> Tensor", tags_0);
  m.def("_padded_dense_to_jagged_forward(Tensor dense, Tensor[] offsets, SymInt? total_L=None) -> Tensor", tags_0);
  m.def("_nested_from_padded_tensor(Tensor padded, Tensor offsets, Tensor dummy, int ragged_idx=1, Tensor? min_seqlen=None, Tensor? max_seqlen=None, SymInt? sum_S=None) -> Tensor", tags_0);
  m.def("_nested_tensor_softmax_with_shape(Tensor self, Tensor query) -> Tensor", tags_2);
  m.def("_safe_softmax(Tensor self, int dim, ScalarType? dtype=None) -> Tensor", tags_0);
  m.def("_transformer_encoder_layer_fwd(Tensor src, int embed_dim, int num_heads, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, bool use_gelu, bool norm_first, float eps, Tensor norm_weight_1, Tensor norm_bias_1, Tensor norm_weight_2, Tensor norm_bias_2, Tensor ffn_weight_1, Tensor ffn_bias_1, Tensor ffn_weight_2, Tensor ffn_bias_2, Tensor? mask=None, int? mask_type=None) -> Tensor", tags_0);
  m.def("_native_multi_head_attention(Tensor query, Tensor key, Tensor value, int embed_dim, int num_head, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, Tensor? mask=None, bool need_weights=True, bool average_attn_weights=True, int? mask_type=None) -> (Tensor, Tensor)", tags_0);
  m.def("scaled_dot_product_attention(Tensor query, Tensor key, Tensor value, Tensor? attn_mask=None, float dropout_p=0.0, bool is_causal=False, *, float? scale=None, bool enable_gqa=False) -> Tensor", tags_2);
  m.def("_fused_sdp_choice(Tensor query, Tensor key, Tensor value, Tensor? attn_mask=None, float dropout_p=0.0, bool is_causal=False, *, float? scale=None, bool enable_gqa=False) -> int", tags_2);
  m.def("_scaled_dot_product_attention_math(Tensor query, Tensor key, Tensor value, Tensor? attn_mask=None, float dropout_p=0.0, bool is_causal=False, Tensor? dropout_mask=None, *, float? scale=None, bool enable_gqa=False) -> (Tensor, Tensor)", tags_2);
  m.def("_scaled_dot_product_attention_math_for_mps(Tensor query, Tensor key, Tensor value, Tensor? attn_mask=None, float dropout_p=0.0, bool is_causal=False, Tensor? dropout_mask=None, *, float? scale=None) -> (Tensor, Tensor)", tags_2);
  m.def("_scaled_dot_product_flash_attention(Tensor query, Tensor key, Tensor value, float dropout_p=0.0, bool is_causal=False, bool return_debug_mask=False, *, float? scale=None) -> (Tensor output, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, Tensor rng_state, Tensor unused, Tensor debug_attn_mask)", tags_2);
  m.def("_scaled_dot_product_flash_attention_for_cpu(Tensor query, Tensor key, Tensor value, float dropout_p=0.0, bool is_causal=False, *, Tensor? attn_mask=None, float? scale=None) -> (Tensor output, Tensor logsumexp)", tags_2);
  m.def("_scaled_dot_product_fused_attention_overrideable(Tensor query, Tensor key, Tensor value, Tensor? attn_bias=None, float dropout_p=0.0, bool is_causal=False, bool return_debug_mask=False, *, float? scale=None) -> (Tensor output, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, Tensor philox_seed, Tensor philox_offset, Tensor debug_attn_mask)", tags_2);
  m.def("_scaled_dot_product_flash_attention_backward(Tensor grad_out, Tensor query, Tensor key, Tensor value, Tensor out, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, float dropout_p, bool is_causal, Tensor philox_seed, Tensor philox_offset, *, float? scale=None) -> (Tensor grad_query, Tensor grad_key, Tensor grad_value)", tags_0);
  m.def("_scaled_dot_product_flash_attention_for_cpu_backward(Tensor grad_out, Tensor query, Tensor key, Tensor value, Tensor out, Tensor logsumexp, float dropout_p, bool is_causal, *, Tensor? attn_mask=None, float? scale=None) -> (Tensor grad_query, Tensor grad_key, Tensor grad_value)", tags_0);
  m.def("_scaled_dot_product_fused_attention_overrideable_backward(Tensor grad_out, Tensor query, Tensor key, Tensor value, Tensor attn_bias, bool[4] grad_input_mask, Tensor out, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, float dropout_p, bool is_causal, Tensor philox_seed, Tensor philox_offset, *, float? scale=None) -> (Tensor grad_query, Tensor grad_key, Tensor grad_value, Tensor grad_attn_bias)", tags_0);
  m.def("_scaled_dot_product_efficient_attention(Tensor query, Tensor key, Tensor value, Tensor? attn_bias, bool compute_log_sumexp, float dropout_p=0.0, bool is_causal=False, *, float? scale=None) -> (Tensor output, Tensor log_sumexp, Tensor philox_seed, Tensor philox_offset)", tags_2);
  m.def("_scaled_dot_product_efficient_attention_backward(Tensor grad_out_, Tensor query, Tensor key, Tensor value, Tensor attn_bias, Tensor out, Tensor logsumexp, Tensor philox_seed, Tensor philox_offset, float dropout_p, bool[4] grad_input_mask, bool is_causal=False, *, float? scale=None) -> (Tensor, Tensor, Tensor, Tensor)", tags_2);
  m.def("_scaled_dot_product_cudnn_attention(Tensor query, Tensor key, Tensor value, Tensor? attn_bias, bool compute_log_sumexp, float dropout_p=0.0, bool is_causal=False, bool return_debug_mask=False, *, float? scale=None) -> (Tensor output, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, Tensor philox_seed, Tensor philox_offset, Tensor debug_attn_mask)", tags_2);
  m.def("_scaled_dot_product_cudnn_attention_backward(Tensor grad_out, Tensor query, Tensor key, Tensor value, Tensor out, Tensor logsumexp, Tensor philox_seed, Tensor philox_offset, Tensor attn_bias, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, float dropout_p, bool is_causal, *, float? scale=None) -> (Tensor, Tensor, Tensor)", tags_2);
  m.def("_flash_attention_forward(Tensor query, Tensor key, Tensor value, Tensor? cum_seq_q, Tensor? cum_seq_k, SymInt max_q, SymInt max_k, float dropout_p, bool is_causal, bool return_debug_mask, *, float? scale=None, SymInt? window_size_left=None, SymInt? window_size_right=None, Tensor? seqused_k=None, Tensor? alibi_slopes=None) -> (Tensor output, Tensor softmax_logsumexp, Tensor rng_state, Tensor unused, Tensor debug_attn_mask)", tags_2);
  m.def("_flash_attention_backward(Tensor grad_out, Tensor query, Tensor key, Tensor value, Tensor out, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, float dropout_p, bool is_causal, Tensor rng_state, Tensor unused, *, float? scale=None, SymInt? window_size_left=None, SymInt? window_size_right=None) -> (Tensor, Tensor, Tensor)", tags_0);
  m.def("_efficient_attention_forward(Tensor query, Tensor key, Tensor value, Tensor? bias, Tensor? cu_seqlens_q, Tensor? cu_seqlens_k, SymInt? max_seqlen_q, SymInt? max_seqlen_k, float dropout_p, int custom_mask_type, bool compute_log_sumexp=False, *, float? scale=None, Tensor? seqlen_k=None, int? window_size=None) -> (Tensor output, Tensor logsumexp, Tensor philox_seed, Tensor philox_offset, SymInt max_seqlen_batch_q, SymInt max_seqlen_batch_k)", tags_2);
  m.def("_efficient_attention_backward(Tensor grad_out_, Tensor query, Tensor key, Tensor value, Tensor? bias, Tensor out, Tensor? cu_seqlens_q, Tensor? cu_seqlens_k, SymInt max_seqlen_q, SymInt max_seqlen_k, Tensor logsumexp, float dropout_p, Tensor philox_seed, Tensor philox_offset, int custom_mask_type, bool bias_requires_grad, *, float? scale=None, int? num_splits_key=None, int? window_size=None, bool shared_storage_dqdkdv=False) -> (Tensor, Tensor, Tensor, Tensor)", tags_0);
  m.def("_cudnn_attention_forward(Tensor query, Tensor key, Tensor value, Tensor? attn_bias, Tensor? cum_seq_q, Tensor? cum_seq_k, SymInt max_q, SymInt max_k, bool compute_log_sumexp, float dropout_p=0.0, bool is_causal=False, bool return_debug_mask=False, *, float? scale=None) -> (Tensor output, Tensor logsumexp, Tensor cum_seq_q, Tensor cum_seq_k, SymInt max_q, SymInt max_k, Tensor philox_seed, Tensor philox_offset, Tensor debug_attn_mask)", tags_2);
  m.def("_triton_scaled_dot_attention(Tensor q, Tensor k, Tensor v, float dropout_p=0.0) -> Tensor", tags_2);
  m.def("_fill_mem_eff_dropout_mask_(Tensor(a!) self, float dropout_p, int seed, int offset) -> Tensor(a!)", tags_2);
  m.def("_triton_multi_head_attention(Tensor query, Tensor key, Tensor value, int embed_dim, int num_head, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, Tensor? mask=None) -> Tensor", tags_0);
  m.def("special_airy_ai(Tensor x) -> Tensor", tags_4);
  m.def("special_airy_ai.out(Tensor x, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_bessel_j0(Tensor self) -> Tensor", tags_4);
  m.def("special_bessel_j0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_bessel_j1(Tensor self) -> Tensor", tags_4);
  m.def("special_bessel_j1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_bessel_y0(Tensor self) -> Tensor", tags_4);
  m.def("special_bessel_y0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_bessel_y1(Tensor self) -> Tensor", tags_4);
  m.def("special_bessel_y1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_t(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_t.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_t.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_t.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_t.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_t.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_u(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_u.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_u.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_u.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_u.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_u.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_v(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_v.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_v.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_v.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_v.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_v.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_w(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_w.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_w.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_chebyshev_polynomial_w.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_w.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_chebyshev_polynomial_w.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_h(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_h.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_h.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_h.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_h.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_h.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_he(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_he.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_he.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_hermite_polynomial_he.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_he.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_hermite_polynomial_he.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_laguerre_polynomial_l(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_laguerre_polynomial_l.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_laguerre_polynomial_l.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_laguerre_polynomial_l.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_laguerre_polynomial_l.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_laguerre_polynomial_l.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_legendre_polynomial_p(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_legendre_polynomial_p.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_legendre_polynomial_p.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_legendre_polynomial_p.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_legendre_polynomial_p.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_legendre_polynomial_p.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_modified_bessel_i0(Tensor self) -> Tensor", tags_4);
  m.def("special_modified_bessel_i0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_modified_bessel_i1(Tensor self) -> Tensor", tags_4);
  m.def("special_modified_bessel_i1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_modified_bessel_k0(Tensor self) -> Tensor", tags_4);
  m.def("special_modified_bessel_k0.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_modified_bessel_k1(Tensor self) -> Tensor", tags_4);
  m.def("special_modified_bessel_k1.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_scaled_modified_bessel_k0(Tensor x) -> Tensor", tags_4);
  m.def("special_scaled_modified_bessel_k0.out(Tensor x, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_scaled_modified_bessel_k1(Tensor x) -> Tensor", tags_4);
  m.def("special_scaled_modified_bessel_k1.out(Tensor x, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_t.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_u.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_v.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w(Tensor x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w.x_scalar(Scalar x, Tensor n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w.n_scalar(Tensor x, Scalar n) -> Tensor", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w.out(Tensor x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w.x_scalar_out(Scalar x, Tensor n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_shifted_chebyshev_polynomial_w.n_scalar_out(Tensor x, Scalar n, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("special_spherical_bessel_j0(Tensor x) -> Tensor", tags_4);
  m.def("special_spherical_bessel_j0.out(Tensor x, *, Tensor(a!) out) -> Tensor(a!)", tags_4);
  m.def("_foobar(Tensor self, bool arg1=True, bool arg2=True, *, bool arg3=True) -> Tensor", tags_0);
  m.def("_fused_adam_(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_adam_.tensor_lr(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_adamw_(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_adamw_.tensor_lr(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_sgd_(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] momentum_buffer_list, *, float weight_decay, float momentum, float lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_sgd_.tensor_lr(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] momentum_buffer_list, *, float weight_decay, float momentum, Tensor lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_fused_adagrad_(Tensor(a!)[] self, Tensor(b!)[] grads, Tensor(c!)[] state_sums, Tensor(d!)[] state_steps, *, float lr, float lr_decay, float weight_decay, float eps, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> ()", tags_0);
  m.def("_propagate_xla_data(Tensor input, Tensor output) -> ()", tags_0);
  const std::vector<at::Tag> tags_20 = {at::Tag::generated, at::Tag::pt2_compliant_tag};
  m.def("_new_zeros_with_same_feature_meta.out(Tensor self, Tensor other, *, int self_num_batch_dims=0, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_cudnn_ctc_loss.out(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank, bool deterministic, bool zero_infinity, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_cudnn_rnn_flatten_weight.out(Tensor[] weight_arr, int weight_stride0, SymInt input_size, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, bool bidirectional, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  const std::vector<at::Tag> tags_21 = {at::Tag::generated, at::Tag::nondeterministic_seeded, at::Tag::pt2_compliant_tag};
  m.def("_cudnn_rnn.out(Tensor input, Tensor[] weight, int weight_stride0, Tensor? weight_buf, Tensor hx, Tensor? cx, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, SymInt[] batch_sizes, Tensor? dropout_state, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3, Tensor(e!) out4) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!), Tensor(e!))", tags_21);
  m.def("_cudnn_rnn_backward.out(Tensor input, Tensor[] weight, int weight_stride0, Tensor weight_buf, Tensor hx, Tensor? cx, Tensor output, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, int mode, SymInt hidden_size, SymInt proj_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, SymInt[] batch_sizes, Tensor? dropout_state, Tensor reserve, bool[4] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!)[] out3) -> ()", tags_20);
  m.def("_cudnn_init_dropout_state.out(float dropout, bool train, int dropout_seed, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("_fused_dropout.out(Tensor self, float p, Generator? generator=None, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_21);
  m.def("_masked_scale.out(Tensor self, Tensor mask, float scale, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("native_dropout.out(Tensor input, float p, bool? train, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_21);
  m.def("native_dropout_backward.out(Tensor grad_output, Tensor mask, float scale, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_conj_physical.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("avg_pool1d.out(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, bool ceil_mode=False, bool count_include_pad=True, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("adaptive_avg_pool1d.out(Tensor self, int[1] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_add_relu.Scalar_out(Tensor self, Scalar other, Scalar alpha=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("add.Scalar_out(Tensor self, Scalar other, Scalar alpha=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("affine_grid_generator.out(Tensor theta, SymInt[] size, bool align_corners, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_functorch_fallback.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bartlett_window.out(int window_length, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bartlett_window.periodic_out(int window_length, bool periodic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantized_batch_norm.out(Tensor input, Tensor? weight, Tensor? bias, Tensor mean, Tensor var, float eps, float output_scale, int output_zero_point, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bernoulli.Tensor_out(Tensor self, Tensor p, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("bernoulli.Tensor(Tensor self, Tensor p, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("bernoulli.float_out(Tensor self, float p=0.5, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("binary_cross_entropy_with_logits.out(Tensor self, Tensor target, Tensor? weight=None, Tensor? pos_weight=None, int reduction=Mean, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bincount.out(Tensor self, Tensor? weights=None, int minlength=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("blackman_window.out(int window_length, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("blackman_window.periodic_out(int window_length, bool periodic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("block_diag.out(Tensor[] tensors, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("constant_pad_nd.out(Tensor self, SymInt[] pad, Scalar value=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("convolution.out(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("convolution_backward.out(Tensor grad_output, Tensor input, Tensor weight, SymInt[]? bias_sizes, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("convolution_overrideable.out(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("convolution_backward_overrideable.out(Tensor grad_output, Tensor input, Tensor weight, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_convolution.out(Tensor input, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, bool transposed, SymInt[] output_padding, SymInt groups, bool benchmark, bool deterministic, bool cudnn_enabled, bool allow_tf32, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("conv_tbc.out(Tensor self, Tensor weight, Tensor bias, int pad=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("copy.out(Tensor self, Tensor src, bool non_blocking=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_copy_from.out(Tensor self, Tensor dst, bool non_blocking=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_copy_from_and_resize.out(Tensor self, Tensor dst, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("count_nonzero.dim_IntList_out(Tensor self, int[] dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("count_nonzero.out(Tensor self, int? dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_affine_grid_generator.out(Tensor theta, int N, int C, int H, int W, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_affine_grid_generator_backward.out(Tensor grad, int N, int C, int H, int W, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_batch_norm.out(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("cudnn_batch_norm_backward.out(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon, Tensor reserveSpace, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("cudnn_convolution_transpose.out(Tensor self, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, bool allow_tf32, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_mps_convolution_transpose.out(Tensor self, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mps_convolution_transpose_backward.out(Tensor self, Tensor grad_output, Tensor weight, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool[2] output_mask, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("cudnn_convolution_relu.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_convolution_add_relu.out(Tensor self, Tensor weight, Tensor z, Scalar? alpha, Tensor? bias, SymInt[] stride, SymInt[] padding, SymInt[] dilation, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_grid_sampler.out(Tensor self, Tensor grid, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("cudnn_grid_sampler_backward.out(Tensor self, Tensor grid, Tensor grad_output, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_ctc_loss.out(Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, int blank=0, bool zero_infinity=False, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_ctc_loss.Tensor_out(Tensor log_probs, Tensor targets, Tensor input_lengths, Tensor target_lengths, int blank=0, bool zero_infinity=False, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_ctc_loss_backward.out(Tensor grad, Tensor log_probs, Tensor targets, int[] input_lengths, int[] target_lengths, Tensor neg_log_likelihood, Tensor log_alpha, int blank, bool zero_infinity=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("diag_embed.out(Tensor self, int offset=0, int dim1=-2, int dim2=-1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("diagonal_backward.out(Tensor grad_output, SymInt[] input_sizes, int offset, int dim1, int dim2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("div.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("div.Scalar_mode_out(Tensor self, Scalar other, *, str? rounding_mode, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("embedding.out(Tensor weight, Tensor indices, SymInt padding_idx=-1, bool scale_grad_by_freq=False, bool sparse=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("embedding_dense_backward.out(Tensor grad_output, Tensor indices, SymInt num_weights, SymInt padding_idx, bool scale_grad_by_freq, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("embedding_renorm.out(Tensor self, Tensor indices, float max_norm, float norm_type, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("embedding_renorm(Tensor self, Tensor indices, float max_norm, float norm_type) -> Tensor", tags_20);
  m.def("_embedding_bag_forward_only.out(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq=False, int mode=0, bool sparse=False, Tensor? per_sample_weights=None, bool include_last_offset=False, int padding_idx=-1, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("_embedding_bag.out(Tensor weight, Tensor indices, Tensor offsets, bool scale_grad_by_freq=False, int mode=0, bool sparse=False, Tensor? per_sample_weights=None, bool include_last_offset=False, int padding_idx=-1, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("_embedding_bag_dense_backward.out(Tensor grad, Tensor indices, Tensor offset2bag, Tensor bag_size, Tensor maximum_indices, SymInt num_weights, bool scale_grad_by_freq, int mode, Tensor? per_sample_weights, int padding_idx=-1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_embedding_bag_per_sample_weights_backward.out(Tensor grad, Tensor weight, Tensor indices, Tensor offsets, Tensor offset2bag, int mode, int padding_idx=-1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("empty.names_out(int[] size, *, Dimname[]? names, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("empty_permuted.out(SymInt[] size, int[] physical_layout, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("new_empty.out(Tensor self, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("new_empty_strided.out(Tensor self, SymInt[] size, SymInt[] stride, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("new_full.out(Tensor self, SymInt[] size, Scalar fill_value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("new_zeros.out(Tensor self, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("new_ones.out(Tensor self, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_empty_affine_quantized.out(SymInt[] size, *, float scale=1, int zero_point=0, MemoryFormat? memory_format=contiguous_format, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_empty_per_channel_affine_quantized.out(SymInt[] size, *, Tensor scales, Tensor zero_points, int axis, MemoryFormat? memory_format=contiguous_format, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("resize.out(Tensor self, SymInt[] size, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("resize(Tensor self, SymInt[] size, *, MemoryFormat? memory_format=None) -> Tensor", tags_20);
  m.def("_resize_output.out(Tensor self, SymInt[] size, Device device, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_resize_output(Tensor self, SymInt[] size, Device device) -> Tensor", tags_20);
  m.def("empty_quantized.out(int[] size, Tensor qtensor, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("empty_like.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("empty_strided.out(SymInt[] size, SymInt[] stride, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("fill.Scalar_out(Tensor self, Scalar value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("fill.Tensor_out(Tensor self, Tensor value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("floor_divide.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("full.names_out(int[] size, Scalar fill_value, *, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("full_like.out(Tensor self, Scalar fill_value, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("from_file.out(str filename, bool? shared=None, int? size=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("grid_sampler_2d.out(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("grid_sampler_2d_backward.out(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, bool[2] output_mask, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_grid_sampler_2d_cpu_fallback.out(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("grid_sampler_3d.out(Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("grid_sampler_3d_backward.out(Tensor grad_output, Tensor input, Tensor grid, int interpolation_mode, int padding_mode, bool align_corners, bool[2] output_mask, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("hann_window.out(int window_length, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hann_window.periodic_out(int window_length, bool periodic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hamming_window.out(int window_length, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hamming_window.periodic_out(int window_length, bool periodic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hamming_window.periodic_alpha_out(int window_length, bool periodic, float alpha, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hamming_window.periodic_alpha_beta_out(int window_length, bool periodic, float alpha, float beta, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("kaiser_window.out(int window_length, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("kaiser_window.periodic_out(int window_length, bool periodic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("kaiser_window.beta_out(int window_length, bool periodic, float beta, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("native_group_norm.out(Tensor input, Tensor? weight, Tensor? bias, SymInt N, SymInt C, SymInt HxW, int group, float eps, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("native_group_norm_backward.out(Tensor grad_out, Tensor input, Tensor mean, Tensor rstd, Tensor? weight, SymInt N, SymInt C, SymInt HxW, int group, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("index_put.out(Tensor self, Tensor?[] indices, Tensor values, bool accumulate=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_index_put_impl.out(Tensor self, Tensor?[] indices, Tensor values, bool accumulate=False, bool unsafe=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_index_put_impl(Tensor self, Tensor?[] indices, Tensor values, bool accumulate=False, bool unsafe=False) -> Tensor", tags_20);
  m.def("isnan.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("native_layer_norm.out(Tensor input, SymInt[] normalized_shape, Tensor? weight, Tensor? bias, float eps, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("native_layer_norm_backward.out(Tensor grad_out, Tensor input, SymInt[] normalized_shape, Tensor mean, Tensor rstd, Tensor? weight, Tensor? bias, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("linear_backward.out(Tensor self, Tensor grad_output, Tensor weight, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("mkldnn_linear.out(Tensor self, Tensor weight, Tensor? bias=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_linear_backward_input.out(int[] input_size, Tensor grad_output, Tensor weight, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_linear_backward_weights.out(Tensor grad_output, Tensor input, Tensor weight, bool bias_defined, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("mkldnn_linear_backward.out(Tensor self, Tensor grad_output, Tensor weight, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("matmul_backward.out(Tensor grad, Tensor self, Tensor other, bool[2] mask, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_aminmax.out(Tensor self, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_aminmax.dim_out(Tensor self, int dim, bool keepdim=False, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("max_pool2d_backward.out(Tensor grad_output, Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_max_pool2d.out(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_max_pool2d_backward.out(Tensor grad_output, Tensor output, Tensor input, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_max_pool3d.out(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_max_pool3d_backward.out(Tensor grad_output, Tensor output, Tensor input, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantized_max_pool1d.out(Tensor self, int[1] kernel_size, int[1] stride=[], int[1] padding=0, int[1] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantized_max_pool2d.out(Tensor self, int[2] kernel_size, int[2] stride=[], int[2] padding=0, int[2] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantized_max_pool3d.out(Tensor self, int[3] kernel_size, int[3] stride=[], int[3] padding=0, int[3] dilation=1, bool ceil_mode=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("median.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("nanmedian.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_mps_convolution.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mps_convolution_backward.out(Tensor self, Tensor grad_output, Tensor weight, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("mkldnn_convolution.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_rnn_layer.out(Tensor input, Tensor weight0, Tensor weight1, Tensor weight2, Tensor weight3, Tensor hx_, Tensor cx_, bool reverse, int[] batch_sizes, int mode, int hidden_size, int num_layers, bool has_biases, bool bidirectional, bool batch_first, bool train, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("mkldnn_rnn_layer_backward.out(Tensor input, Tensor weight1, Tensor weight2, Tensor weight3, Tensor weight4, Tensor hx_, Tensor cx_tmp, Tensor output, Tensor hy_, Tensor cy_, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, bool reverse, int mode, int hidden_size, int num_layers, bool has_biases, bool train, bool bidirectional, int[] batch_sizes, bool batch_first, Tensor workspace, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3, Tensor(e!) out4, Tensor(f!) out5, Tensor(g!) out6) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!), Tensor(e!), Tensor(f!), Tensor(g!))", tags_20);
  m.def("miopen_batch_norm.out(Tensor input, Tensor weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, bool training, float exponential_average_factor, float epsilon, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("miopen_batch_norm_backward.out(Tensor input, Tensor grad_output, Tensor weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_var, float epsilon, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("miopen_convolution.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("miopen_convolution_transpose.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] output_padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("miopen_depthwise_convolution.out(Tensor self, Tensor weight, Tensor? bias, SymInt[] padding, SymInt[] stride, SymInt[] dilation, SymInt groups, bool benchmark, bool deterministic, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("miopen_rnn.out(Tensor input, Tensor[] weight, int weight_stride0, Tensor hx, Tensor? cx, int mode, int hidden_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, int[] batch_sizes, Tensor? dropout_state, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3, Tensor(e!) out4) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!), Tensor(e!))", tags_21);
  m.def("miopen_rnn_backward.out(Tensor input, Tensor[] weight, int weight_stride0, Tensor weight_buf, Tensor hx, Tensor? cx, Tensor output, Tensor? grad_output, Tensor? grad_hy, Tensor? grad_cy, int mode, int hidden_size, int num_layers, bool batch_first, float dropout, bool train, bool bidirectional, int[] batch_sizes, Tensor? dropout_state, Tensor reserve, bool[4] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!)[] out3) -> ()", tags_20);
  m.def("_sparse_sparse_matmul.out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mul.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_native_batch_norm_legit_functional(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, bool training, float momentum, float eps) -> (Tensor, Tensor, Tensor, Tensor running_mean_out, Tensor running_var_out)", tags_20);
  m.def("_native_batch_norm_legit_no_training.out(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, float momentum, float eps, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("batch_norm_stats.out(Tensor input, float eps, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("batch_norm_gather_stats.out(Tensor input, Tensor mean, Tensor invstd, Tensor? running_mean, Tensor? running_var, float momentum, float eps, int count, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("batch_norm_gather_stats_with_counts.out(Tensor input, Tensor mean, Tensor invstd, Tensor? running_mean, Tensor? running_var, float momentum, float eps, Tensor counts, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("native_batch_norm_backward.out(Tensor grad_out, Tensor input, Tensor? weight, Tensor? running_mean, Tensor? running_var, Tensor? save_mean, Tensor? save_invstd, bool train, float eps, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("batch_norm_backward_reduce.out(Tensor grad_out, Tensor input, Tensor mean, Tensor invstd, Tensor? weight, bool input_g, bool weight_g, bool bias_g, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("batch_norm_backward_elemt.out(Tensor grad_out, Tensor input, Tensor mean, Tensor invstd, Tensor? weight, Tensor sum_dy, Tensor sum_dy_xmu, Tensor count, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("batch_norm_update_stats.out(Tensor input, Tensor? running_mean, Tensor? running_var, float momentum, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_nnpack_spatial_convolution.out(Tensor input, Tensor weight, Tensor? bias, SymInt[2] padding, SymInt[2] stride=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("ones.names_out(int[] size, *, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("ones_like.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_euclidean_dist.out(Tensor x1, Tensor x2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_cdist_forward.out(Tensor x1, Tensor x2, float p, int? compute_mode, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_cdist_backward.out(Tensor grad, Tensor x1, Tensor x2, float p, Tensor cdist, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_pdist_forward.out(Tensor self, float p=2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_pdist_backward.out(Tensor grad, Tensor self, float p, Tensor pdist, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("pixel_shuffle.out(Tensor self, int upscale_factor, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("pixel_unshuffle.out(Tensor self, int downscale_factor, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("channel_shuffle.out(Tensor self, SymInt groups, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_pin_memory.out(Tensor self, Device? device=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("scalar_tensor.out(Scalar s, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("rand.names_out(SymInt[] size, *, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("rand.generator_with_names_out(SymInt[] size, *, Generator? generator, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("rand_like.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("randint_like.out(Tensor self, SymInt high, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("randint_like.low_dtype_out(Tensor self, SymInt low, SymInt high, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("randn.names_out(SymInt[] size, *, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("randn.generator_with_names_out(SymInt[] size, *, Generator? generator, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("randn_like.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("repeat.out(Tensor self, SymInt[] repeats, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("repeat_interleave.Tensor_out(Tensor repeats, *, SymInt? output_size=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_mkldnn_reshape.out(Tensor self, int[] shape, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("relu.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("select_backward.out(Tensor grad_output, SymInt[] input_sizes, int dim, SymInt index, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("celu.out(Tensor self, Scalar alpha=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("slice_backward.out(Tensor grad_output, SymInt[] input_sizes, int dim, SymInt start, SymInt end, SymInt step, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  const std::vector<at::Tag> tags_22 = {at::Tag::generated, at::Tag::pt2_compliant_tag, at::Tag::view_copy};
  m.def("slice_scatter.out(Tensor self, Tensor src, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("select_scatter.out(Tensor self, Tensor src, int dim, SymInt index, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("diagonal_scatter.out(Tensor self, Tensor src, int offset=0, int dim1=0, int dim2=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("as_strided_scatter.out(Tensor self, Tensor src, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("unsafe_split.Tensor_out(Tensor self, SymInt split_size, int dim=0, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("unsafe_split_with_sizes.out(Tensor self, SymInt[] split_sizes, int dim=0, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("sum.out(Tensor self, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("std_mean.correction_out(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("prod.out(Tensor self, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_mkldnn_transpose.out(Tensor self, int dim0, int dim1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("flip.out(Tensor self, int[] dims, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("roll.out(Tensor self, SymInt[1] shifts, int[1] dims=[], *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("rot90.out(Tensor self, int k=1, int[] dims=[0,1], *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_transform_bias_rescale_qkv.out(Tensor qkv, Tensor qkv_bias, int num_heads, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_nested_tensor_from_mask.out(Tensor t, Tensor mask, bool mask_check=True, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_from_padded.out(Tensor padded, Tensor cpu_nested_shape_example, bool fuse_transform_0213=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_tensor_size.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_tensor_strides.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_tensor_storage_offsets.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_from_padded_and_nested_example.out(Tensor padded, Tensor nt_example, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_view_from_buffer_copy.out(Tensor self, Tensor nested_size, Tensor nested_strides, Tensor offsets, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_nested_view_from_jagged_copy.out(Tensor self, Tensor offsets, Tensor dummy, Tensor? lengths=None, int ragged_idx=1, Tensor? min_seqlen=None, Tensor? max_seqlen=None, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_nested_get_values_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_trilinear.out(Tensor i1, Tensor i2, Tensor i3, int[] expand1, int[] expand2, int[] expand3, int[] sumdim, int unroll_dim=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_unique.out(Tensor self, bool sorted=True, bool return_inverse=False, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("unique_dim.out(Tensor self, int dim, bool sorted=True, bool return_inverse=False, bool return_counts=False, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("unique_consecutive.out(Tensor self, bool return_inverse=False, bool return_counts=False, int? dim=None, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("unique_dim_consecutive.out(Tensor self, int dim, bool return_inverse=False, bool return_counts=False, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_unique2.out(Tensor self, bool sorted=True, bool return_inverse=False, bool return_counts=False, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_unsafe_view.out(Tensor self, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("var_mean.correction_out(Tensor self, int[1]? dim=None, *, Scalar? correction=None, bool keepdim=False, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_weight_norm_interface.out(Tensor v, Tensor g, int dim=0, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_weight_norm_interface_backward.out(Tensor grad_w, Tensor saved_v, Tensor saved_g, Tensor saved_norms, int dim, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("zeros.names_out(int[] size, *, Dimname[]? names, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_efficientzerotensor.out(SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("zeros_like.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_standard_gamma_grad.out(Tensor self, Tensor output, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_standard_gamma.out(Tensor self, Generator? generator=None, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("_dirichlet_grad.out(Tensor x, Tensor alpha, Tensor total, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sample_dirichlet.out(Tensor self, Generator? generator=None, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("poisson.out(Tensor self, Generator? generator=None, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("binomial.out(Tensor count, Tensor prob, Generator? generator=None, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("native_norm.out(Tensor self, Scalar p=2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("native_norm.ScalarOpt_dim_dtype_out(Tensor self, Scalar? p, int[1] dim, bool keepdim, ScalarType? dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_batch_norm_with_update_functional(Tensor input, Tensor? weight, Tensor? bias, Tensor running_mean, Tensor running_var, float momentum, float eps) -> (Tensor, Tensor, Tensor, Tensor, Tensor running_mean_out, Tensor running_var_out)", tags_20);
  m.def("_batch_norm_no_update.out(Tensor input, Tensor? weight, Tensor? bias, Tensor? running_mean, Tensor? running_var, float momentum, float eps, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!))", tags_20);
  m.def("_sparse_sum.dim_out(Tensor self, int[1] dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_sum_backward.out(Tensor grad, Tensor self, int[] dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_csr_sum.dim_dtype_out(Tensor self, int[1] dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_csr_prod.dim_dtype_out(Tensor self, int[1] dim, bool keepdim=False, *, ScalarType? dtype=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_softmax.out(Tensor self, int dim, bool half_to_float, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_softmax_backward_data.out(Tensor grad_output, Tensor output, int dim, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_log_softmax.out(Tensor self, int dim, bool half_to_float, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_log_softmax_backward_data.out(Tensor grad_output, Tensor output, int dim, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_spdiags.out(Tensor diagonals, Tensor offsets, int[] shape, Layout? layout=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("norm.ScalarOpt_dtype_out(Tensor self, Scalar? p, *, ScalarType dtype, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("norm.Scalar_out(Tensor self, Scalar p=2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("clone.out(Tensor self, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("resize_as.out(Tensor self, Tensor the_template, *, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("resize_as(Tensor self, Tensor the_template, *, MemoryFormat? memory_format=None) -> Tensor", tags_20);
  m.def("resize_as_sparse.out(Tensor self, Tensor the_template, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("resize_as_sparse(Tensor self, Tensor the_template) -> Tensor", tags_20);
  m.def("zero.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("zero(Tensor self) -> Tensor", tags_20);
  m.def("sub.Scalar_out(Tensor self, Scalar other, Scalar alpha=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("rsub.Tensor_out(Tensor self, Tensor other, *, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("rsub.Scalar_out(Tensor self, Scalar other, Scalar alpha=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_addmm.out(Tensor self, Tensor mat1, Tensor mat2, *, Scalar beta=1, Scalar alpha=1, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("sparse_coo_tensor.size_out(int[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_coo_tensor_with_dims.out(int sparse_dim, int dense_dim, int[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_coo_tensor_with_dims_and_tensors.out(int sparse_dim, int dense_dim, SymInt[] size, Tensor indices, Tensor values, *, bool? is_coalesced=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("sparse_resize.out(Tensor self, int[] size, int sparse_dim, int dense_dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("sparse_resize(Tensor self, int[] size, int sparse_dim, int dense_dim) -> Tensor", tags_20);
  m.def("sparse_resize_and_clear.out(Tensor self, int[] size, int sparse_dim, int dense_dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("sparse_resize_and_clear(Tensor self, int[] size, int sparse_dim, int dense_dim) -> Tensor", tags_20);
  m.def("sparse_mask.out(Tensor self, Tensor mask, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_sparse_mask_projection.out(Tensor self, Tensor mask, bool accumulate_matches=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_dense.out(Tensor self, ScalarType? dtype=None, bool? masked_grad=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_coalesce.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_coalesced.out(Tensor self, bool coalesced, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_coalesced(Tensor self, bool coalesced) -> Tensor", tags_20);
  m.def("copy_sparse_to_sparse.out(Tensor self, Tensor src, bool non_blocking=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("copy_sparse_to_sparse(Tensor self, Tensor src, bool non_blocking=False) -> Tensor", tags_20);
  m.def("_to_sparse.sparse_dim_out(Tensor self, int sparse_dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_sparse.out(Tensor self, *, Layout? layout=None, int[2]? blocksize=None, int? dense_dim=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_sparse_csr.out(Tensor self, int? dense_dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_sparse_csc.out(Tensor self, int? dense_dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_sparse_bsr.out(Tensor self, int[2] blocksize, int? dense_dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_to_sparse_bsc.out(Tensor self, int[2] blocksize, int? dense_dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("to_mkldnn.out(Tensor self, ScalarType? dtype=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_reorder_conv2d_weight.out(Tensor self, SymInt[2] padding=0, SymInt[2] stride=1, SymInt[2] dilation=1, SymInt groups=1, SymInt[]? input_size=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_reorder_conv3d_weight.out(Tensor self, SymInt[3] padding=0, SymInt[3] stride=1, SymInt[3] dilation=1, SymInt groups=1, SymInt[]? input_size=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantize_per_tensor_dynamic.out(Tensor self, ScalarType dtype, bool reduce_range, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantize_per_tensor.out(Tensor self, float scale, int zero_point, ScalarType dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantize_per_tensor.tensor_qparams_out(Tensor self, Tensor scale, Tensor zero_point, ScalarType dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("quantize_per_tensor.tensors_out(Tensor[] tensors, Tensor scales, Tensor zero_points, ScalarType dtype, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("quantize_per_channel.out(Tensor self, Tensor scales, Tensor zero_points, int axis, ScalarType dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("dequantize.self_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("dequantize.tensors_out(Tensor[] tensors, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("q_per_channel_scales.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("q_per_channel_zero_points.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("int_repr.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_make_per_tensor_quantized_tensor.out(Tensor self, float scale, int zero_point, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_make_per_channel_quantized_tensor.out(Tensor self, Tensor scale, Tensor zero_point, int axis, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("fake_quantize_per_tensor_affine_cachemask.out(Tensor self, float scale, int zero_point, int quant_min, int quant_max, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_fake_quantize_per_tensor_affine_cachemask_tensor_qparams.out(Tensor self, Tensor scale, Tensor zero_point, Tensor fake_quant_enabled, int quant_min, int quant_max, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_fake_quantize_learnable_per_tensor_affine.out(Tensor self, Tensor scale, Tensor zero_point, int quant_min, int quant_max, float grad_factor=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("fake_quantize_per_channel_affine_cachemask.out(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_fake_quantize_learnable_per_channel_affine.out(Tensor self, Tensor scale, Tensor zero_point, int axis, int quant_min, int quant_max, float grad_factor=1.0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_fused_moving_avg_obs_fq_helper.out(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False, *, Tensor(e!) out0, Tensor(f!) out1) -> (Tensor(e!), Tensor(f!))", tags_20);
  m.def("_fused_moving_avg_obs_fq_helper_functional(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask, Tensor running_min_out, Tensor running_max_out, Tensor scale_out, Tensor zero_point_out)", tags_20);
  m.def("_to_copy.out(Tensor self, *, bool non_blocking=False, MemoryFormat? memory_format=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_lstm_mps.out(Tensor input, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3, Tensor(e!) out4, Tensor(f!) out5) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!), Tensor(e!), Tensor(f!))", tags_21);
  m.def("lstm_mps_backward.out(Tensor? grad_y, Tensor? grad_hy, Tensor? grad_cy, Tensor z_state, Tensor cell_state_fwd, Tensor input, Tensor layersOutputs, Tensor[] hx, Tensor[] params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first, *, Tensor(a!) out0, Tensor(b!)[] out1, Tensor(c!)[] out2) -> ()", tags_20);
  m.def("_thnn_fused_lstm_cell.out(Tensor input_gates, Tensor hidden_gates, Tensor cx, Tensor? input_bias=None, Tensor? hidden_bias=None, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_thnn_fused_lstm_cell_backward_impl.out(Tensor? grad_hy, Tensor? grad_cy, Tensor cx, Tensor cy, Tensor workspace, bool has_bias, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("_thnn_fused_gru_cell.out(Tensor input_gates, Tensor hidden_gates, Tensor hx, Tensor? input_bias=None, Tensor? hidden_bias=None, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_thnn_fused_gru_cell_backward.out(Tensor grad_hy, Tensor workspace, bool has_bias, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2, Tensor(d!) out3, Tensor(e!) out4) -> (Tensor(a!), Tensor(b!), Tensor(c!), Tensor(d!), Tensor(e!))", tags_20);
  m.def("_pack_padded_sequence.out(Tensor input, Tensor lengths, bool batch_first, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("set.source_Storage_out(Tensor self, Storage source, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("set.source_Storage(Tensor self, Storage source) -> Tensor", tags_20);
  m.def("set.source_Storage_storage_offset_out(Tensor self, Storage source, SymInt storage_offset, SymInt[] size, SymInt[] stride=[], *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("set.source_Storage_storage_offset(Tensor self, Storage source, SymInt storage_offset, SymInt[] size, SymInt[] stride=[]) -> Tensor", tags_20);
  m.def("set.source_Tensor_out(Tensor self, Tensor source, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("set.source_Tensor(Tensor self, Tensor source) -> Tensor", tags_20);
  m.def("set.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("set(Tensor self) -> Tensor", tags_20);
  m.def("lift.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("lift_fresh_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("masked_fill.Scalar_out(Tensor self, Tensor mask, Scalar value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("masked_fill.Tensor_out(Tensor self, Tensor mask, Tensor value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("masked_scatter.out(Tensor self, Tensor mask, Tensor source, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_masked_softmax.out(Tensor self, Tensor mask, int? dim=None, int? mask_type=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_masked_softmax_backward.out(Tensor grad_output, Tensor output, Tensor mask, int? dim=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("put.out(Tensor self, Tensor index, Tensor source, bool accumulate=False, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("index_fill.int_Scalar_out(Tensor self, int dim, Tensor index, Scalar value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("index_fill.int_Tensor_out(Tensor self, int dim, Tensor index, Tensor value, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bitwise_and.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bitwise_or.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bitwise_xor.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("__lshift__.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("__lshift__.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bitwise_left_shift.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("__rshift__.Scalar_out(Tensor self, Scalar other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("__rshift__.Tensor_out(Tensor self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("bitwise_right_shift.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("random.from_out(Tensor self, int from, int? to, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("random.from(Tensor self, int from, int? to, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("random.to_out(Tensor self, int to, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("random.to(Tensor self, int to, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("random.out(Tensor self, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("random(Tensor self, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("uniform.out(Tensor self, float from=0, float to=1, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("uniform(Tensor self, float from=0, float to=1, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("cauchy.out(Tensor self, float median=0, float sigma=1, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("cauchy(Tensor self, float median=0, float sigma=1, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("log_normal.out(Tensor self, float mean=1, float std=2, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("log_normal(Tensor self, float mean=1, float std=2, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("exponential.out(Tensor self, float lambd=1, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("exponential(Tensor self, float lambd=1, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("geometric.out(Tensor self, float p, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("geometric(Tensor self, float p, *, Generator? generator=None) -> Tensor", tags_21);
  m.def("tril_indices.out(int row, int col, int offset=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("triu_indices.out(int row, int col, int offset=0, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("trace.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_cholesky_solve_helper.out(Tensor self, Tensor A, bool upper, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("dist.out(Tensor self, Tensor other, Scalar p=2, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_histogramdd_bin_edges.out(Tensor self, int[] bins, *, float[]? range=None, Tensor? weight=None, bool density=False, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_histogramdd_from_bin_cts.out(Tensor self, int[] bins, *, float[]? range=None, Tensor? weight=None, bool density=False, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_histogramdd_from_bin_tensors.out(Tensor self, Tensor[] bins, *, Tensor? weight=None, bool density=False, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("remainder.Scalar_Tensor_out(Scalar self, Tensor other, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("unfold_backward.out(Tensor grad_in, SymInt[] input_sizes, int dim, int size, int step, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("normal.out(Tensor self, float mean=0, float std=1, *, Generator? generator=None, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("_amp_foreach_non_finite_check_and_unscale.out(Tensor[] self, Tensor(b!) found_inf, Tensor inv_scale, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_amp_foreach_non_finite_check_and_unscale(Tensor[] self, Tensor found_inf, Tensor inv_scale) -> (Tensor[] self_out, Tensor found_inf_out)", tags_20);
  m.def("_amp_update_scale.out(Tensor self, Tensor(b!) growth_tracker, Tensor found_inf, float scale_growth_factor, float scale_backoff_factor, int growth_interval, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_amp_update_scale(Tensor self, Tensor growth_tracker, Tensor found_inf, float scale_growth_factor, float scale_backoff_factor, int growth_interval) -> (Tensor, Tensor growth_tracker_out)", tags_20);
  m.def("_foreach_add.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_add.List_out(Tensor[] self, Tensor[] other, *, Scalar alpha=1, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_add.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_add.Tensor_out(Tensor[] self, Tensor other, *, Scalar alpha=1, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sub.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sub.List_out(Tensor[] self, Tensor[] other, *, Scalar alpha=1, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sub.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_mul.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_mul.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_mul.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_mul.Tensor_out(Tensor[] self, Tensor other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_div.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_div.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_div.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_div.Tensor_out(Tensor[] self, Tensor other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_max.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_max.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_max.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_min.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_min.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_clamp_min.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_maximum.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_maximum.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_maximum.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_minimum.Scalar_out(Tensor[] self, Scalar scalar, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_minimum.List_out(Tensor[] self, Tensor[] other, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_minimum.ScalarList_out(Tensor[] self, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcdiv.Scalar_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcdiv.ScalarList_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcdiv.Tensor_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcmul.Scalar_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar value=1, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcmul.ScalarList_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Scalar[] scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_addcmul.Tensor_out(Tensor[] self, Tensor[] tensor1, Tensor[] tensor2, Tensor scalars, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_abs.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_acos.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_asin.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_atan.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_ceil.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_cos.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_cosh.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_erf.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_erfc.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_exp.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_expm1.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_floor.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_frac.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_lerp.List_out(Tensor[] self, Tensor[] tensors1, Tensor[] weights, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_lerp.Scalar_out(Tensor[] self, Tensor[] tensors1, Scalar weight, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_lerp.ScalarList_out(Tensor[] self, Tensor[] tensors1, Scalar[] weight, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_lgamma.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_log.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_log10.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_log1p.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_log2.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_max.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_neg.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_norm.Scalar_out(Tensor[] self, Scalar ord=2, ScalarType? dtype=None, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_pow.List_out(Tensor[] self, Tensor[] exponent, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_pow.Scalar_out(Tensor[] self, Scalar exponent, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_pow.ScalarList_out(Tensor[] self, Scalar[] exponent, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_reciprocal.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_round.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_rsqrt.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sigmoid.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sign.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sin.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sinh.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_sqrt.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_tan.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_tanh.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_trunc.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_zero.out(Tensor[] self, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_foreach_zero(Tensor[] self) -> Tensor[] self_out", tags_20);
  m.def("_foreach_copy.out(Tensor[] self, Tensor[] src, bool non_blocking=False, *, Tensor(a!)[] out) -> ()", tags_20);
  m.def("bucketize.Scalar_out(Scalar self, Tensor boundaries, *, bool out_int32=False, bool right=False, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("glu_jvp.out(Tensor glu, Tensor x, Tensor dx, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("glu_backward_jvp.out(Tensor grad_x, Tensor grad_glu, Tensor x, Tensor dgrad_glu, Tensor dx, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("hardswish_backward.out(Tensor grad_output, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("rrelu_with_noise_functional(Tensor self, Tensor noise, Scalar lower=0.125, Scalar upper=0.3333333333333333, bool training=False, Generator? generator=None) -> (Tensor, Tensor noise_out)", tags_21);
  m.def("rrelu_with_noise_backward.out(Tensor grad_output, Tensor self, Tensor noise, Scalar lower, Scalar upper, bool training, bool self_is_result, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("mkldnn_adaptive_avg_pool2d_backward.out(Tensor grad_output, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_adaptive_avg_pool2d.out(Tensor self, SymInt[2] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_adaptive_avg_pool2d_backward.out(Tensor grad_output, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_adaptive_avg_pool3d.out(Tensor self, SymInt[3] output_size, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_adaptive_avg_pool3d_backward.out(Tensor grad_output, Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("upsample_bilinear2d.vec_out(Tensor input, SymInt[]? output_size, bool align_corners, float[]? scale_factors, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("upsample_nearest2d.vec_out(Tensor input, SymInt[]? output_size, float[]? scale_factors, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_slow_conv2d_backward.output_mask_out(Tensor grad_output, Tensor self, Tensor weight, SymInt[2] kernel_size, SymInt[2] stride, SymInt[2] padding, bool[3] output_mask, *, Tensor(a!) out0, Tensor(b!) out1, Tensor(c!) out2) -> (Tensor(a!), Tensor(b!), Tensor(c!))", tags_20);
  m.def("conv_depthwise3d.out(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias, SymInt[3] stride, SymInt[3] padding, SymInt[3] dilation, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("slow_conv_dilated2d.out(Tensor self, Tensor weight, SymInt[2] kernel_size, Tensor? bias=None, SymInt[2] stride=1, SymInt[2] padding=0, SymInt[2] dilation=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("slow_conv_dilated3d.out(Tensor self, Tensor weight, SymInt[3] kernel_size, Tensor? bias=None, SymInt[3] stride=1, SymInt[3] padding=0, SymInt[3] dilation=1, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("isinf.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("linalg_matrix_exp.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_optional_intlist.out(Tensor values, int[]? addends, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_optional_filled_intlist.out(Tensor values, int[2]? addends, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_optional_floatlist.out(Tensor values, float[]? addends, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_warn_in_autograd.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_autograd_multiple_dispatch.fullcoverage_out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_test_autograd_multiple_dispatch_view_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("segment_reduce.out(Tensor data, str reduce, *, Tensor? lengths=None, Tensor? indices=None, Tensor? offsets=None, int axis=0, bool unsafe=False, Scalar? initial=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_segment_reduce_backward.out(Tensor grad, Tensor output, Tensor data, str reduce, *, Tensor? lengths=None, Tensor? offsets=None, int axis=0, Scalar? initial=None, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_nested_tensor_from_tensor_list.out(Tensor[] list, ScalarType? dtype=None, Layout? layout=None, Device? device=None, bool? pin_memory=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_fw_primal_copy.out(Tensor self, int level, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_make_dual_copy.out(Tensor primal, Tensor tangent, int level, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("view_as_real_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("view_as_complex_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_conj_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_neg_view_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("as_strided_copy.out(Tensor self, SymInt[] size, SymInt[] stride, SymInt? storage_offset=None, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_sparse_broadcast_to_copy.out(Tensor self, int[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("diagonal_copy.out(Tensor self, int offset=0, int dim1=0, int dim2=1, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("expand_copy.out(Tensor self, SymInt[] size, *, bool implicit=False, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("permute_copy.out(Tensor self, int[] dims, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_reshape_alias_copy.out(Tensor self, SymInt[] size, SymInt[] stride, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("select_copy.int_out(Tensor self, int dim, SymInt index, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("detach_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("slice_copy.Tensor_out(Tensor self, int dim=0, SymInt? start=None, SymInt? end=None, SymInt step=1, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("squeeze_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("squeeze_copy.dim_out(Tensor self, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("squeeze_copy.dims_out(Tensor self, int[] dim, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("t_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("transpose_copy.int_out(Tensor self, int dim0, int dim1, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("unsqueeze_copy.out(Tensor self, int dim, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("_values_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("values_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("crow_indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("col_indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("ccol_indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("row_indices_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("view_copy.out(Tensor self, SymInt[] size, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("view_copy.dtype_out(Tensor self, ScalarType dtype, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("unfold_copy.out(Tensor self, int dimension, int size, int step, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("alias_copy.out(Tensor self, *, Tensor(a!) out) -> Tensor(a!)", tags_22);
  m.def("to_padded_tensor.out(Tensor self, float padding, SymInt[]? output_size=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_transformer_encoder_layer_fwd.out(Tensor src, int embed_dim, int num_heads, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, bool use_gelu, bool norm_first, float eps, Tensor norm_weight_1, Tensor norm_bias_1, Tensor norm_weight_2, Tensor norm_bias_2, Tensor ffn_weight_1, Tensor ffn_bias_1, Tensor ffn_weight_2, Tensor ffn_bias_2, Tensor? mask=None, int? mask_type=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_native_multi_head_attention.out(Tensor query, Tensor key, Tensor value, int embed_dim, int num_head, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, Tensor? mask=None, bool need_weights=True, bool average_attn_weights=True, int? mask_type=None, *, Tensor(a!) out0, Tensor(b!) out1) -> (Tensor(a!), Tensor(b!))", tags_20);
  m.def("_triton_scaled_dot_attention.out(Tensor q, Tensor k, Tensor v, float dropout_p=0.0, *, Tensor(a!) out) -> Tensor(a!)", tags_21);
  m.def("_triton_multi_head_attention.out(Tensor query, Tensor key, Tensor value, int embed_dim, int num_head, Tensor qkv_weight, Tensor qkv_bias, Tensor proj_weight, Tensor proj_bias, Tensor? mask=None, *, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_foobar.out(Tensor self, bool arg1=True, bool arg2=True, *, bool arg3=True, Tensor(a!) out) -> Tensor(a!)", tags_20);
  m.def("_fused_adam.out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_adam(Tensor[] self, Tensor[] grads, Tensor[] exp_avgs, Tensor[] exp_avg_sqs, Tensor[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] exp_avgs_out, Tensor[] exp_avg_sqs_out, Tensor[] max_exp_avg_sqs_out)", tags_20);
  m.def("_fused_adam.tensor_lr_out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_adam.tensor_lr(Tensor[] self, Tensor[] grads, Tensor[] exp_avgs, Tensor[] exp_avg_sqs, Tensor[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] exp_avgs_out, Tensor[] exp_avg_sqs_out, Tensor[] max_exp_avg_sqs_out)", tags_20);
  m.def("_fused_adamw.out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_adamw(Tensor[] self, Tensor[] grads, Tensor[] exp_avgs, Tensor[] exp_avg_sqs, Tensor[] max_exp_avg_sqs, Tensor[] state_steps, *, float lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] exp_avgs_out, Tensor[] exp_avg_sqs_out, Tensor[] max_exp_avg_sqs_out)", tags_20);
  m.def("_fused_adamw.tensor_lr_out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] exp_avgs, Tensor(d!)[] exp_avg_sqs, Tensor(e!)[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_adamw.tensor_lr(Tensor[] self, Tensor[] grads, Tensor[] exp_avgs, Tensor[] exp_avg_sqs, Tensor[] max_exp_avg_sqs, Tensor[] state_steps, *, Tensor lr, float beta1, float beta2, float weight_decay, float eps, bool amsgrad, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] exp_avgs_out, Tensor[] exp_avg_sqs_out, Tensor[] max_exp_avg_sqs_out)", tags_20);
  m.def("_fused_sgd.out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] momentum_buffer_list, *, float weight_decay, float momentum, float lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_sgd(Tensor[] self, Tensor[] grads, Tensor[] momentum_buffer_list, *, float weight_decay, float momentum, float lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] momentum_buffer_list_out)", tags_20);
  m.def("_fused_sgd.tensor_lr_out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] momentum_buffer_list, *, float weight_decay, float momentum, Tensor lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_sgd.tensor_lr(Tensor[] self, Tensor[] grads, Tensor[] momentum_buffer_list, *, float weight_decay, float momentum, Tensor lr, float dampening, bool nesterov, bool maximize, bool is_first_step, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] momentum_buffer_list_out)", tags_20);
  m.def("_fused_adagrad.out(Tensor[] self, Tensor(b!)[] grads, Tensor(c!)[] state_sums, Tensor(d!)[] state_steps, *, float lr, float lr_decay, float weight_decay, float eps, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None, Tensor(a!)[] out) -> ()", tags_20);
  m.def("_fused_adagrad(Tensor[] self, Tensor[] grads, Tensor[] state_sums, Tensor[] state_steps, *, float lr, float lr_decay, float weight_decay, float eps, bool maximize, Tensor? grad_scale=None, Tensor? found_inf=None) -> (Tensor[] self_out, Tensor[] grads_out, Tensor[] state_sums_out, Tensor[] state_steps_out)", tags_20);;
  // Distributed Ops
  // Implementations located in torch/csrc/jit/runtime/register_distributed_ops.cpp
  m.def("get_gradients(int context_id) -> Dict(Tensor, Tensor)");
}

}  // namespace at
