#pragma once // @generated by aten/src/ATen/gen.py #include #include #include #include #include #include #include #include #include #include namespace c10 { class Scalar; } namespace at { struct Generator; class Tensor; struct Type; } // namespace at namespace at { namespace native { // These functions are defined in native/TensorFactories.cpp. #define TENSOR(T, S) \ CAFFE2_API Tensor tensor(ArrayRef values, const TensorOptions& options); \ inline Tensor tensor( \ std::initializer_list values, const TensorOptions& options) { \ return native::tensor(ArrayRef(values), options); \ } \ inline Tensor tensor(T value, const TensorOptions& options) { \ return native::tensor(ArrayRef(value), options); \ } \ inline Tensor tensor(ArrayRef values) { \ return native::tensor(std::move(values), at::dtype(k##S)); \ } \ inline Tensor tensor(std::initializer_list values) { \ return native::tensor(ArrayRef(values)); \ } \ inline Tensor tensor(T value) { \ return native::tensor(ArrayRef(value)); \ } AT_FORALL_SCALAR_TYPES_AND3(Bool, Half, BFloat16, TENSOR) #undef TENSOR CAFFE2_API Tensor _cast_Byte(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Char(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Double(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Float(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Int(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Long(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Short(const Tensor & self, bool non_blocking=false); CAFFE2_API Tensor _cast_Half(const Tensor & self, bool non_blocking=false); CAFFE2_API void backward(const Tensor & self, const Tensor & gradient={}, bool keep_graph=false, bool create_graph=false); CAFFE2_API void set_data(const Tensor & self, const Tensor & new_data); CAFFE2_API Tensor data(const Tensor & self); CAFFE2_API bool is_leaf(const Tensor & self); CAFFE2_API int64_t output_nr(const Tensor & self); CAFFE2_API int64_t _version(const Tensor & self); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & rename_(Tensor & self, c10::optional names); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor rename(const Tensor & self, c10::optional names); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor align_to(const Tensor & self, DimnameList names); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor align_as(const Tensor & self, const Tensor & other); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::vector align_tensors(TensorList tensors); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor refine_names(const Tensor & self, DimnameList names); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor unflatten(const Tensor & self, Dimname dim, IntArrayRef sizes, DimnameList names); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor unflatten(const Tensor & self, int64_t dim, IntArrayRef sizes, DimnameList names); #endif CAFFE2_API std::tuple _cudnn_ctc_loss(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank, bool deterministic, bool zero_infinity); CAFFE2_API Tensor _cudnn_rnn_flatten_weight(TensorList weight_arr, int64_t weight_stride0, int64_t input_size, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, bool bidirectional); CAFFE2_API std::tuple _cudnn_rnn(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state); CAFFE2_API std::tuple> _cudnn_rnn_backward(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, const Tensor & output, const Tensor & grad_output, const Tensor & grad_hy, const Tensor & grad_cy, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state, const Tensor & reserve, std::array output_mask); CAFFE2_API Tensor _cudnn_init_dropout_state(double dropout, bool train, int64_t dropout_seed, const TensorOptions & options); CAFFE2_API int64_t _debug_has_internal_overlap(const Tensor & self); CAFFE2_API std::tuple fused_dropout_cuda(const Tensor & self, double p, Generator * generator=nullptr); CAFFE2_API Tensor masked_scale_cuda(const Tensor & self, const Tensor & mask, double scale); CAFFE2_API std::tuple _sobol_engine_draw(const Tensor & quasi, int64_t n, const Tensor & sobolstate, int64_t dimension, int64_t num_generated, c10::optional dtype); CAFFE2_API Tensor & _sobol_engine_ff_(Tensor & self, int64_t n, const Tensor & sobolstate, int64_t dimension, int64_t num_generated); CAFFE2_API Tensor & _sobol_engine_scramble_(Tensor & self, const Tensor & ltm, int64_t dimension); CAFFE2_API Tensor & _sobol_engine_initialize_state_(Tensor & self, int64_t dimension); CAFFE2_API Tensor _reshape_from_tensor(const Tensor & self, const Tensor & shape); CAFFE2_API Tensor _shape_as_tensor(const Tensor & self); CAFFE2_API Tensor dropout(const Tensor & input, double p, bool train); CAFFE2_API Tensor & dropout_(Tensor & self, double p, bool train); CAFFE2_API Tensor feature_dropout(const Tensor & input, double p, bool train); CAFFE2_API Tensor & feature_dropout_(Tensor & self, double p, bool train); CAFFE2_API Tensor alpha_dropout(const Tensor & input, double p, bool train); CAFFE2_API Tensor & alpha_dropout_(Tensor & self, double p, bool train); CAFFE2_API Tensor feature_alpha_dropout(const Tensor & input, double p, bool train); CAFFE2_API Tensor & feature_alpha_dropout_(Tensor & self, double p, bool train); CAFFE2_API Tensor abs(const Tensor & self); CAFFE2_API Tensor & _abs__cpu(Tensor & self); CAFFE2_API Tensor & _abs__cuda(Tensor & self); CAFFE2_API Tensor & _abs_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _abs_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor acos(const Tensor & self); CAFFE2_API Tensor & _acos__cpu(Tensor & self); CAFFE2_API Tensor & _acos__cuda(Tensor & self); CAFFE2_API Tensor & _acos_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _acos_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor avg_pool1d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true); CAFFE2_API Tensor adaptive_avg_pool1d(const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool1d(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor add(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor mkldnn_add(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor add_sparse(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & add_(Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & mkldnn_add_(Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & add_sparse_(Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & add_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & mkldnn_add_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & add_out_sparse_cpu(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & add_out_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor add(const Tensor & self, Scalar other, Scalar alpha=1); CAFFE2_API Tensor & add_(Tensor & self, Scalar other, Scalar alpha=1); CAFFE2_API Tensor addr(const Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & addr_(Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & addr_out(Tensor & out, const Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor affine_grid_generator(const Tensor & theta, IntArrayRef size, bool align_corners); CAFFE2_API Tensor affine_grid_generator_backward(const Tensor & grad, IntArrayRef size, bool align_corners); CAFFE2_API Tensor all(const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API Tensor & all_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor all(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & all_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false); #endif CAFFE2_API bool allclose(const Tensor & self, const Tensor & other, double rtol=1e-05, double atol=1e-08, bool equal_nan=false); CAFFE2_API Tensor any(const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API Tensor & any_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor any(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & any_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false); #endif CAFFE2_API Tensor arange(Scalar end, const TensorOptions & options={}); CAFFE2_API Tensor arange(Scalar start, Scalar end, const TensorOptions & options={}); CAFFE2_API Tensor arange(Scalar start, Scalar end, Scalar step, const TensorOptions & options={}); CAFFE2_API Tensor & arange_out(Tensor & out, Scalar end); CAFFE2_API Tensor & arange_cpu_out(Tensor & out, Scalar start, Scalar end, Scalar step=1); CAFFE2_API Tensor & arange_cuda_out(Tensor & out, Scalar start, Scalar end, Scalar step=1); CAFFE2_API Tensor _dim_arange(const Tensor & like, int64_t dim); CAFFE2_API Tensor argmax(const Tensor & self, c10::optional dim=c10::nullopt, bool keepdim=false); CAFFE2_API Tensor argmin(const Tensor & self, c10::optional dim=c10::nullopt, bool keepdim=false); CAFFE2_API Tensor as_strided_tensorimpl(const Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional storage_offset=c10::nullopt); CAFFE2_API Tensor as_strided_qtensorimpl(const Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional storage_offset=c10::nullopt); CAFFE2_API Tensor & as_strided_(Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional storage_offset=c10::nullopt); CAFFE2_API Tensor asin(const Tensor & self); CAFFE2_API Tensor & _asin__cpu(Tensor & self); CAFFE2_API Tensor & _asin__cuda(Tensor & self); CAFFE2_API Tensor & _asin_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _asin_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor atan(const Tensor & self); CAFFE2_API Tensor & _atan__cpu(Tensor & self); CAFFE2_API Tensor & _atan__cuda(Tensor & self); CAFFE2_API Tensor & _atan_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _atan_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor baddbmm_cpu(const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor baddbmm_cuda(const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & baddbmm__cpu(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & baddbmm__cuda(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & _baddbmm_mkl_(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & baddbmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & baddbmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor bartlett_window(int64_t window_length, const TensorOptions & options={}); CAFFE2_API Tensor bartlett_window(int64_t window_length, bool periodic, const TensorOptions & options={}); CAFFE2_API Tensor batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps, bool cudnn_enabled); CAFFE2_API std::tuple _batch_norm_impl_index(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps, bool cudnn_enabled); CAFFE2_API std::tuple _batch_norm_impl_index_backward(int64_t impl_index, const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var_transform, bool train, double eps, std::array output_mask); CAFFE2_API Tensor bernoulli(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor & bernoulli_out(Tensor & out, const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor & bernoulli_tensor_cpu_(Tensor & self, const Tensor & p, Generator * generator=nullptr); CAFFE2_API Tensor & bernoulli_tensor_cuda_(Tensor & self, const Tensor & p, Generator * generator=nullptr); CAFFE2_API Tensor & bernoulli_scalar_cpu_(Tensor & self, double p=0.5, Generator * generator=nullptr); CAFFE2_API Tensor & bernoulli_scalar_cuda_(Tensor & self, double p=0.5, Generator * generator=nullptr); CAFFE2_API Tensor bernoulli(const Tensor & self, double p, Generator * generator=nullptr); CAFFE2_API Tensor bilinear(const Tensor & input1, const Tensor & input2, const Tensor & weight, const Tensor & bias); CAFFE2_API Tensor binary_cross_entropy_with_logits(const Tensor & self, const Tensor & target, const Tensor & weight={}, const Tensor & pos_weight={}, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor binary_cross_entropy_with_logits_backward(const Tensor & grad_output, const Tensor & self, const Tensor & target, const Tensor & weight={}, const Tensor & pos_weight={}, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor _bincount_cpu(const Tensor & self, const Tensor & weights={}, int64_t minlength=0); CAFFE2_API Tensor _bincount_cuda(const Tensor & self, const Tensor & weights={}, int64_t minlength=0); CAFFE2_API Tensor bitwise_not(const Tensor & self); CAFFE2_API Tensor & bitwise_not_(Tensor & self); CAFFE2_API Tensor & bitwise_not_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor logical_not(const Tensor & self); CAFFE2_API Tensor & logical_not_(Tensor & self); CAFFE2_API Tensor & logical_not_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor logical_xor(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & logical_xor_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & logical_xor_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor blackman_window(int64_t window_length, const TensorOptions & options={}); CAFFE2_API Tensor blackman_window(int64_t window_length, bool periodic, const TensorOptions & options={}); CAFFE2_API Tensor bmm_cpu(const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor bmm_cuda(const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor & bmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor & bmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & mat2); CAFFE2_API std::vector broadcast_tensors(TensorList tensors); CAFFE2_API Tensor cat(TensorList tensors, int64_t dim=0); CAFFE2_API Tensor & cat_out(Tensor & out, TensorList tensors, int64_t dim=0); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor cat(TensorList tensors, Dimname dim); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & cat_out(Tensor & out, TensorList tensors, Dimname dim); #endif CAFFE2_API Tensor ceil(const Tensor & self); CAFFE2_API Tensor & ceil_(Tensor & self); CAFFE2_API Tensor & ceil_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor chain_matmul(TensorList matrices); CAFFE2_API std::vector chunk(const Tensor & self, int64_t chunks, int64_t dim=0); CAFFE2_API Tensor clamp(const Tensor & self, c10::optional min=c10::nullopt, c10::optional max=c10::nullopt); CAFFE2_API Tensor & _clamp__cpu(Tensor & self, c10::optional min=c10::nullopt, c10::optional max=c10::nullopt); CAFFE2_API Tensor & _clamp__cuda(Tensor & self, c10::optional min=c10::nullopt, c10::optional max=c10::nullopt); CAFFE2_API Tensor & _clamp_out_cpu(Tensor & out, const Tensor & self, c10::optional min=c10::nullopt, c10::optional max=c10::nullopt); CAFFE2_API Tensor & _clamp_out_cuda(Tensor & out, const Tensor & self, c10::optional min=c10::nullopt, c10::optional max=c10::nullopt); CAFFE2_API Tensor clamp_max(const Tensor & self, Scalar max); CAFFE2_API Tensor & _clamp_max__cpu(Tensor & self, Scalar max); CAFFE2_API Tensor & _clamp_max__cuda(Tensor & self, Scalar max); CAFFE2_API Tensor & _clamp_max_out_cpu(Tensor & out, const Tensor & self, Scalar max); CAFFE2_API Tensor & _clamp_max_out_cuda(Tensor & out, const Tensor & self, Scalar max); CAFFE2_API Tensor clamp_min(const Tensor & self, Scalar min); CAFFE2_API Tensor & _clamp_min__cpu(Tensor & self, Scalar min); CAFFE2_API Tensor & _clamp_min__cuda(Tensor & self, Scalar min); CAFFE2_API Tensor & _clamp_min_out_cpu(Tensor & out, const Tensor & self, Scalar min); CAFFE2_API Tensor & _clamp_min_out_cuda(Tensor & out, const Tensor & self, Scalar min); CAFFE2_API bool cudnn_is_acceptable(const Tensor & self); CAFFE2_API Tensor constant_pad_nd(const Tensor & self, IntArrayRef pad, Scalar value=0); CAFFE2_API Tensor contiguous(const Tensor & self, MemoryFormat memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups); CAFFE2_API Tensor convolution_overrideable(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups); CAFFE2_API std::tuple convolution_backward_overrideable(const Tensor & grad_output, const Tensor & input, const Tensor & weight, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, std::array output_mask); CAFFE2_API Tensor _convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, bool benchmark, bool deterministic, bool cudnn_enabled); CAFFE2_API Tensor _convolution_nogroup(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding); CAFFE2_API std::tuple _convolution_double_backward(const Tensor & ggI, const Tensor & ggW, const Tensor & ggb, const Tensor & gO, const Tensor & weight, const Tensor & self, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, bool benchmark, bool deterministic, bool cudnn_enabled, std::array output_mask); CAFFE2_API Tensor conv1d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1); CAFFE2_API Tensor conv2d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1); CAFFE2_API Tensor conv3d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1); CAFFE2_API Tensor conv_tbc(const Tensor & self, const Tensor & weight, const Tensor & bias, int64_t pad=0); CAFFE2_API std::tuple conv_tbc_backward(const Tensor & self, const Tensor & input, const Tensor & weight, const Tensor & bias, int64_t pad); CAFFE2_API Tensor conv_transpose1d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1); CAFFE2_API Tensor conv_transpose2d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1); CAFFE2_API Tensor conv_transpose3d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1); CAFFE2_API Tensor & copy_(Tensor & self, const Tensor & src, bool non_blocking=false); CAFFE2_API Tensor cos(const Tensor & self); CAFFE2_API Tensor & _cos__cpu(Tensor & self); CAFFE2_API Tensor & _cos__cuda(Tensor & self); CAFFE2_API Tensor & _cos_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _cos_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor cosh(const Tensor & self); CAFFE2_API Tensor & _cosh__cpu(Tensor & self); CAFFE2_API Tensor & _cosh__cuda(Tensor & self); CAFFE2_API Tensor & _cosh_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _cosh_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor cosine_embedding_loss(const Tensor & input1, const Tensor & input2, const Tensor & target, double margin=0.0, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor cudnn_affine_grid_generator_forward(const Tensor & theta, int64_t N, int64_t C, int64_t H, int64_t W); CAFFE2_API Tensor cudnn_affine_grid_generator_backward(const Tensor & grad, int64_t N, int64_t C, int64_t H, int64_t W); CAFFE2_API std::tuple cudnn_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double exponential_average_factor, double epsilon); CAFFE2_API std::tuple cudnn_batch_norm_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var, double epsilon); CAFFE2_API Tensor cudnn_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor cudnn_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple cudnn_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array output_mask); CAFFE2_API Tensor cudnn_convolution_backward_bias(const Tensor & grad_output); CAFFE2_API Tensor cudnn_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor cudnn_convolution_transpose(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple cudnn_convolution_transpose_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array output_mask); CAFFE2_API Tensor cudnn_convolution_backward_bias(const Tensor & grad_output); CAFFE2_API Tensor cudnn_convolution_transpose_backward_input(const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor cudnn_convolution_transpose_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor cudnn_grid_sampler_forward(const Tensor & self, const Tensor & grid); CAFFE2_API std::tuple cudnn_grid_sampler_backward(const Tensor & self, const Tensor & grid, const Tensor & grad_output); CAFFE2_API Tensor cumsum(const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor & cumsum_out(Tensor & out, const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor cumsum(const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & cumsum_out(Tensor & out, const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor cumprod(const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor & cumprod_out(Tensor & out, const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor cumprod(const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & cumprod_out(Tensor & out, const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor ctc_loss(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, int64_t reduction=Reduction::Mean, bool zero_infinity=false); CAFFE2_API Tensor ctc_loss(const Tensor & log_probs, const Tensor & targets, const Tensor & input_lengths, const Tensor & target_lengths, int64_t blank=0, int64_t reduction=Reduction::Mean, bool zero_infinity=false); CAFFE2_API std::tuple ctc_loss_cpu(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, bool zero_infinity=false); CAFFE2_API std::tuple ctc_loss_gpu(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, bool zero_infinity=false); CAFFE2_API Tensor ctc_loss_backward_cpu(const Tensor & grad, const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, const Tensor & neg_log_likelihood, const Tensor & log_alpha, int64_t blank, bool zero_infinity=false); CAFFE2_API Tensor ctc_loss_backward_gpu(const Tensor & grad, const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, const Tensor & neg_log_likelihood, const Tensor & log_alpha, int64_t blank, bool zero_infinity=false); CAFFE2_API Tensor det(const Tensor & self); CAFFE2_API Tensor diag_embed(const Tensor & self, int64_t offset=0, int64_t dim1=-2, int64_t dim2=-1); CAFFE2_API Tensor diagflat(const Tensor & self, int64_t offset=0); CAFFE2_API Tensor diagonal(const Tensor & self, int64_t offset=0, int64_t dim1=0, int64_t dim2=1); CAFFE2_API Tensor & fill_diagonal_(Tensor & self, Scalar fill_value, bool wrap=false); CAFFE2_API Tensor div(const Tensor & self, const Tensor & other); CAFFE2_API Tensor div_sparse(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & div_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & div_sparse_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & div_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & div_out_sparse_zerodim(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor div(const Tensor & self, Scalar other); CAFFE2_API Tensor & div_(Tensor & self, Scalar other); CAFFE2_API Tensor & dot_out(Tensor & out, const Tensor & self, const Tensor & tensor); CAFFE2_API Tensor einsum(std::string equation, TensorList tensors); CAFFE2_API Tensor embedding(const Tensor & weight, const Tensor & indices, int64_t padding_idx=-1, bool scale_grad_by_freq=false, bool sparse=false); CAFFE2_API Tensor embedding_backward(const Tensor & grad, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq, bool sparse); CAFFE2_API Tensor embedding_dense_backward_cpu(const Tensor & grad_output, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq); CAFFE2_API Tensor embedding_dense_backward_cuda(const Tensor & grad_output, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq); CAFFE2_API Tensor & embedding_renorm_cpu_(Tensor & self, const Tensor & indices, double max_norm, double norm_type); CAFFE2_API Tensor & embedding_renorm_cuda_(Tensor & self, const Tensor & indices, double max_norm, double norm_type); CAFFE2_API Tensor embedding_sparse_backward(const Tensor & grad, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq); CAFFE2_API std::tuple embedding_bag(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={}); CAFFE2_API std::tuple _embedding_bag_cpu(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={}); CAFFE2_API std::tuple _embedding_bag_cuda(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={}); CAFFE2_API Tensor _embedding_bag_backward(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, bool sparse, const Tensor & per_sample_weights); CAFFE2_API Tensor _embedding_bag_sparse_backward(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights); CAFFE2_API Tensor _embedding_bag_dense_backward_cpu(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights); CAFFE2_API Tensor _embedding_bag_dense_backward_cuda(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights); CAFFE2_API Tensor _embedding_bag_per_sample_weights_backward_cpu(const Tensor & grad, const Tensor & weight, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, int64_t mode); CAFFE2_API Tensor _embedding_bag_per_sample_weights_backward_cuda(const Tensor & grad, const Tensor & weight, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, int64_t mode); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor empty(IntArrayRef size, c10::optional names, const TensorOptions & options={}, c10::optional memory_format=c10::nullopt); #endif CAFFE2_API Tensor empty_cpu(IntArrayRef size, const TensorOptions & options={}, c10::optional memory_format=c10::nullopt); CAFFE2_API Tensor empty_cuda(IntArrayRef size, const TensorOptions & options={}, c10::optional memory_format=c10::nullopt); CAFFE2_API Tensor empty_mkldnn(IntArrayRef size, const TensorOptions & options={}, c10::optional memory_format=c10::nullopt); CAFFE2_API Tensor empty_sparse(IntArrayRef size, const TensorOptions & options={}, c10::optional memory_format=c10::nullopt); CAFFE2_API Tensor new_empty(const Tensor & self, IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor new_full(const Tensor & self, IntArrayRef size, Scalar fill_value, const TensorOptions & options={}); CAFFE2_API Tensor empty_affine_quantized_other_backends_stub(IntArrayRef size, const TensorOptions & options={}, double scale=1, int64_t zero_point=0, c10::optional memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor empty_affine_quantized_cpu(IntArrayRef size, const TensorOptions & options={}, double scale=1, int64_t zero_point=0, c10::optional memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor empty_per_channel_affine_quantized_other_backends_stub(IntArrayRef size, const Tensor & scales, const Tensor & zero_points, int64_t axis, const TensorOptions & options={}, c10::optional memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor empty_per_channel_affine_quantized_cpu(IntArrayRef size, const Tensor & scales, const Tensor & zero_points, int64_t axis, const TensorOptions & options={}, c10::optional memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor & resize_cpu_(Tensor & self, IntArrayRef size); CAFFE2_API Tensor & resize_cuda_(Tensor & self, IntArrayRef size); CAFFE2_API Tensor & quantized_resize_cpu_(Tensor & self, IntArrayRef size); CAFFE2_API Tensor & empty_out(Tensor & out, IntArrayRef size, c10::optional memory_format=c10::nullopt); CAFFE2_API Tensor empty_like(const Tensor & self); CAFFE2_API Tensor empty_like(const Tensor & self, const TensorOptions & options, c10::optional memory_format=MemoryFormat::Contiguous); CAFFE2_API Tensor empty_strided_cpu(IntArrayRef size, IntArrayRef stride, const TensorOptions & options={}); CAFFE2_API Tensor empty_strided_cuda(IntArrayRef size, IntArrayRef stride, const TensorOptions & options={}); CAFFE2_API Tensor erf(const Tensor & self); CAFFE2_API Tensor & _erf__cpu(Tensor & self); CAFFE2_API Tensor & _erf__cuda(Tensor & self); CAFFE2_API Tensor & _erf_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _erf_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor erfc(const Tensor & self); CAFFE2_API Tensor & _erfc__cpu(Tensor & self); CAFFE2_API Tensor & _erfc__cuda(Tensor & self); CAFFE2_API Tensor & _erfc_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _erfc_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor exp(const Tensor & self); CAFFE2_API Tensor & _exp__cpu(Tensor & self); CAFFE2_API Tensor & _exp__cuda(Tensor & self); CAFFE2_API Tensor & _exp_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _exp_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor expm1(const Tensor & self); CAFFE2_API Tensor & expm1_(Tensor & self); CAFFE2_API Tensor & expm1_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor expand(const Tensor & self, IntArrayRef size, bool implicit=false); CAFFE2_API Tensor expand_as(const Tensor & self, const Tensor & other); CAFFE2_API Tensor eye(int64_t n, const TensorOptions & options={}); CAFFE2_API Tensor eye(int64_t n, int64_t m, const TensorOptions & options={}); CAFFE2_API Tensor & eye_out_cpu(Tensor & out, int64_t n); CAFFE2_API Tensor & eye_out_cuda(Tensor & out, int64_t n); CAFFE2_API Tensor & eye_out_cpu(Tensor & out, int64_t n, int64_t m); CAFFE2_API Tensor & eye_out_cuda(Tensor & out, int64_t n, int64_t m); CAFFE2_API Tensor flatten(const Tensor & self, int64_t start_dim=0, int64_t end_dim=-1); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor flatten(const Tensor & self, int64_t start_dim, int64_t end_dim, Dimname out_dim); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor flatten(const Tensor & self, Dimname start_dim, Dimname end_dim, Dimname out_dim); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor flatten(const Tensor & self, DimnameList dims, Dimname out_dim); #endif CAFFE2_API Tensor & fill_(Tensor & self, Scalar value); CAFFE2_API Tensor & fill_(Tensor & self, const Tensor & value); CAFFE2_API Tensor floor(const Tensor & self); CAFFE2_API Tensor & floor_(Tensor & self); CAFFE2_API Tensor & floor_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor frac(const Tensor & self); CAFFE2_API Tensor & _frac__cpu(Tensor & self); CAFFE2_API Tensor & _frac__cuda(Tensor & self); CAFFE2_API Tensor & _frac_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _frac_out_cuda(Tensor & out, const Tensor & self); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor full(IntArrayRef size, Scalar fill_value, c10::optional names, const TensorOptions & options={}); #endif CAFFE2_API Tensor full(IntArrayRef size, Scalar fill_value, const TensorOptions & options={}); CAFFE2_API Tensor & full_out(Tensor & out, IntArrayRef size, Scalar fill_value); CAFFE2_API Tensor full_like(const Tensor & self, Scalar fill_value); CAFFE2_API Tensor full_like(const Tensor & self, Scalar fill_value, const TensorOptions & options); CAFFE2_API Tensor from_file(std::string filename, c10::optional shared=c10::nullopt, c10::optional size=0, const TensorOptions & options={}); CAFFE2_API Tensor grid_sampler(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API Tensor grid_sampler_2d_cpu(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API Tensor grid_sampler_2d_cuda(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API std::tuple grid_sampler_2d_backward_cpu(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API std::tuple grid_sampler_2d_backward_cuda(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API Tensor grid_sampler_3d_cpu(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API Tensor grid_sampler_3d_cuda(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API std::tuple grid_sampler_3d_backward_cpu(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API std::tuple grid_sampler_3d_backward_cuda(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners); CAFFE2_API Tensor hann_window(int64_t window_length, const TensorOptions & options={}); CAFFE2_API Tensor hann_window(int64_t window_length, bool periodic, const TensorOptions & options={}); CAFFE2_API Tensor hamming_window(int64_t window_length, const TensorOptions & options={}); CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, const TensorOptions & options={}); CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, double alpha, const TensorOptions & options={}); CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, double alpha, double beta, const TensorOptions & options={}); CAFFE2_API Tensor hinge_embedding_loss(const Tensor & self, const Tensor & target, double margin=1.0, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor group_norm(const Tensor & input, int64_t num_groups, const Tensor & weight={}, const Tensor & bias={}, double eps=1e-05, bool cudnn_enabled=true); CAFFE2_API Tensor fft(const Tensor & self, int64_t signal_ndim, bool normalized=false); CAFFE2_API Tensor ifft(const Tensor & self, int64_t signal_ndim, bool normalized=false); CAFFE2_API Tensor rfft(const Tensor & self, int64_t signal_ndim, bool normalized=false, bool onesided=true); CAFFE2_API Tensor irfft(const Tensor & self, int64_t signal_ndim, bool normalized=false, bool onesided=true, IntArrayRef signal_sizes={}); CAFFE2_API Tensor _fft_mkl(const Tensor & self, int64_t signal_ndim, bool complex_input, bool complex_output, bool inverse, IntArrayRef checked_signal_sizes, bool normalized, bool onesided, IntArrayRef output_sizes); CAFFE2_API Tensor _fft_cufft(const Tensor & self, int64_t signal_ndim, bool complex_input, bool complex_output, bool inverse, IntArrayRef checked_signal_sizes, bool normalized, bool onesided, IntArrayRef output_sizes); CAFFE2_API int64_t _cufft_get_plan_cache_size(int64_t device_index); CAFFE2_API int64_t _cufft_get_plan_cache_max_size(int64_t device_index); CAFFE2_API void _cufft_set_plan_cache_max_size(int64_t device_index, int64_t max_size); CAFFE2_API void _cufft_clear_plan_cache(int64_t device_index); CAFFE2_API Tensor index(const Tensor & self, TensorList indices); CAFFE2_API Tensor & index_copy_(Tensor & self, int64_t dim, const Tensor & index, const Tensor & source); CAFFE2_API Tensor index_copy(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & source); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & index_copy_(Tensor & self, Dimname dim, const Tensor & index, const Tensor & source); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor index_copy(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & source); #endif CAFFE2_API Tensor & index_put_(Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false); CAFFE2_API Tensor index_put(const Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false); CAFFE2_API Tensor & _index_put_impl_(Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false, bool unsafe=false); CAFFE2_API Tensor instance_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool use_input_stats, double momentum, double eps, bool cudnn_enabled); CAFFE2_API Tensor inverse(const Tensor & self); CAFFE2_API Tensor & inverse_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor _inverse_helper_cpu(const Tensor & self); CAFFE2_API Tensor _inverse_helper_cuda(const Tensor & self); CAFFE2_API Tensor isclose(const Tensor & self, const Tensor & other, double rtol=1e-05, double atol=1e-08, bool equal_nan=false); CAFFE2_API Tensor isnan(const Tensor & self); CAFFE2_API bool is_distributed(const Tensor & self); CAFFE2_API bool is_floating_point(const Tensor & self); CAFFE2_API bool is_complex(const Tensor & self); CAFFE2_API bool is_nonzero(const Tensor & self); CAFFE2_API bool is_same_size(const Tensor & self, const Tensor & other); CAFFE2_API bool is_signed(const Tensor & self); CAFFE2_API Tensor kl_div(const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor kl_div_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor kl_div_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean); CAFFE2_API std::tuple kthvalue(const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false); CAFFE2_API std::tuple kthvalue_out_cpu(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false); CAFFE2_API std::tuple kthvalue_out_cuda(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple kthvalue(const Tensor & self, int64_t k, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple kthvalue_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, Dimname dim, bool keepdim=false); #endif CAFFE2_API Tensor layer_norm(const Tensor & input, IntArrayRef normalized_shape, const Tensor & weight={}, const Tensor & bias={}, double eps=1e-05, bool cudnn_enable=true); CAFFE2_API std::tuple layer_norm_cpu(const Tensor & input, const Tensor & weight, const Tensor & bias, int64_t M, int64_t N, double eps); CAFFE2_API std::tuple layer_norm_backward_cpu(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & rstd, const Tensor & weight, int64_t M, int64_t N, std::array output_mask); CAFFE2_API std::tuple layer_norm_double_backward_cpu(const Tensor & ggI, const Tensor & ggW, const Tensor & ggb, const Tensor & gO, const Tensor & input, const Tensor & mean, const Tensor & rstd, const Tensor & weight, int64_t M, int64_t N, std::array output_mask); CAFFE2_API Tensor linear(const Tensor & input, const Tensor & weight, const Tensor & bias={}); CAFFE2_API Tensor mkldnn_linear(const Tensor & input, const Tensor & weight, const Tensor & bias={}); CAFFE2_API Tensor fbgemm_linear_int8_weight_fp32_activation(const Tensor & input, const Tensor & weight, const Tensor & packed, const Tensor & col_offsets, Scalar weight_scale, Scalar weight_zero_point, const Tensor & bias); CAFFE2_API Tensor fbgemm_linear_int8_weight(const Tensor & input, const Tensor & weight, const Tensor & packed, const Tensor & col_offsets, Scalar weight_scale, Scalar weight_zero_point, const Tensor & bias); CAFFE2_API std::tuple fbgemm_linear_quantize_weight(const Tensor & input); CAFFE2_API Tensor fbgemm_pack_gemm_matrix_fp16(const Tensor & input); CAFFE2_API Tensor fbgemm_linear_fp16_weight_fp32_activation(const Tensor & input, const Tensor & packed_weight, const Tensor & bias); CAFFE2_API Tensor fbgemm_linear_fp16_weight(const Tensor & input, const Tensor & packed_weight, const Tensor & bias); CAFFE2_API Tensor fbgemm_pack_quantized_matrix(const Tensor & input); CAFFE2_API Tensor fbgemm_pack_quantized_matrix(const Tensor & input, int64_t K, int64_t N); CAFFE2_API Tensor linspace(Scalar start, Scalar end, int64_t steps=100, const TensorOptions & options={}); CAFFE2_API Tensor & linspace_cpu_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100); CAFFE2_API Tensor & linspace_cuda_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100); CAFFE2_API Tensor log(const Tensor & self); CAFFE2_API Tensor & log_(Tensor & self); CAFFE2_API Tensor & log_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor log10(const Tensor & self); CAFFE2_API Tensor & _log10__cpu(Tensor & self); CAFFE2_API Tensor & _log10__cuda(Tensor & self); CAFFE2_API Tensor & _log10_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _log10_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor log1p(const Tensor & self); CAFFE2_API Tensor & _log1p__cpu(Tensor & self); CAFFE2_API Tensor & _log1p__cuda(Tensor & self); CAFFE2_API Tensor & log1p_sparse_(Tensor & self); CAFFE2_API Tensor & _log1p_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _log1p_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor & log1p_out_sparse(Tensor & out, const Tensor & self); CAFFE2_API Tensor log2(const Tensor & self); CAFFE2_API Tensor & _log2__cpu(Tensor & self); CAFFE2_API Tensor & _log2__cuda(Tensor & self); CAFFE2_API Tensor & _log2_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _log2_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor logdet(const Tensor & self); CAFFE2_API Tensor logspace(Scalar start, Scalar end, int64_t steps=100, double base=10.0, const TensorOptions & options={}); CAFFE2_API Tensor & logspace_cpu_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100, double base=10.0); CAFFE2_API Tensor & logspace_cuda_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100, double base=10.0); CAFFE2_API Tensor log_softmax(const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor log_softmax(const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor log_softmax_cpu(const Tensor & self, int64_t dim, bool half_to_float); CAFFE2_API Tensor log_softmax_cuda(const Tensor & self, int64_t dim, bool half_to_float); CAFFE2_API Tensor log_softmax_backward_cpu(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self); CAFFE2_API Tensor log_softmax_backward_cuda(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self); CAFFE2_API Tensor logsumexp(const Tensor & self, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor & logsumexp_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor logsumexp(const Tensor & self, DimnameList dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & logsumexp_out(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false); #endif CAFFE2_API Tensor margin_ranking_loss(const Tensor & input1, const Tensor & input2, const Tensor & target, double margin=0.0, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor matmul(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & matmul_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor matrix_rank(const Tensor & self, double tol, bool symmetric=false); CAFFE2_API Tensor matrix_rank(const Tensor & self, bool symmetric=false); CAFFE2_API Tensor matrix_power(const Tensor & self, int64_t n); CAFFE2_API std::tuple max(const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API std::tuple max_out(Tensor & max, Tensor & max_values, const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API Tensor max_values(const Tensor & self, IntArrayRef dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple max(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple max_out(Tensor & max, Tensor & max_values, const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor max_values(const Tensor & self, DimnameList dim, bool keepdim=false); #endif CAFFE2_API std::tuple max_pool1d_with_indices(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor max_pool1d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor mkldnn_max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor quantized_max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor max_pool3d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor quantized_mean_cpu(const Tensor & self, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor quantized_mean_cpu(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor & mean_out_cpu_gpu(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor & quantized_mean_out_cpu(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & mean_out_cpu_gpu(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif CAFFE2_API std::tuple median(const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API std::tuple median_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple median(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple median_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool keepdim=false); #endif CAFFE2_API std::tuple min(const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API std::tuple min_out(Tensor & min, Tensor & min_indices, const Tensor & self, int64_t dim, bool keepdim=false); CAFFE2_API Tensor min_values(const Tensor & self, IntArrayRef dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple min(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple min_out(Tensor & min, Tensor & min_indices, const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor min_values(const Tensor & self, DimnameList dim, bool keepdim=false); #endif CAFFE2_API Tensor mkldnn_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups); CAFFE2_API Tensor mkldnn_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool bias_defined); CAFFE2_API std::tuple mkldnn_convolution_backward_weights(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool bias_defined); CAFFE2_API std::tuple mkldnn_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, std::array output_mask); CAFFE2_API std::tuple miopen_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double exponential_average_factor, double epsilon); CAFFE2_API std::tuple miopen_batch_norm_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var, double epsilon); CAFFE2_API Tensor miopen_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor miopen_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple miopen_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array output_mask); CAFFE2_API Tensor miopen_convolution_backward_bias(const Tensor & grad_output); CAFFE2_API Tensor miopen_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor miopen_convolution_transpose(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple miopen_convolution_transpose_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array output_mask); CAFFE2_API Tensor miopen_convolution_transpose_backward_input(const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor miopen_convolution_transpose_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor miopen_depthwise_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API Tensor miopen_depthwise_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple miopen_depthwise_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array output_mask); CAFFE2_API Tensor miopen_depthwise_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic); CAFFE2_API std::tuple miopen_rnn(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & hx, const Tensor & cx, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state); CAFFE2_API std::tuple> miopen_rnn_backward(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, const Tensor & output, const Tensor & grad_output, const Tensor & grad_hy, const Tensor & grad_cy, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state, const Tensor & reserve, std::array output_mask); CAFFE2_API Tensor _sparse_mm(const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor & _sparse_mm_out(Tensor & out, const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor _sparse_mm(const Tensor & sparse, const Tensor & dense); CAFFE2_API std::tuple mode(const Tensor & self, int64_t dim=-1, bool keepdim=false); CAFFE2_API std::tuple mode_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t dim=-1, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple mode(const Tensor & self, Dimname dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple mode_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool keepdim=false); #endif CAFFE2_API Tensor mul(const Tensor & self, const Tensor & other); CAFFE2_API Tensor mkldnn_mul(const Tensor & self, const Tensor & other); CAFFE2_API Tensor mul_sparse(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & mul_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & mkldnn_mul_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & mul_sparse_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & mul_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & mkldnn_mul_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & mul_out_sparse_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & mul_out_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor mul(const Tensor & self, Scalar other); CAFFE2_API Tensor & mul_(Tensor & self, Scalar other); CAFFE2_API Tensor mvlgamma(const Tensor & self, int64_t p); CAFFE2_API Tensor & mvlgamma_(Tensor & self, int64_t p); CAFFE2_API Tensor narrow_copy_dense(const Tensor & self, int64_t dim, int64_t start, int64_t length); CAFFE2_API Tensor narrow_copy_sparse(const Tensor & self, int64_t dim, int64_t start, int64_t length); CAFFE2_API Tensor narrow(const Tensor & self, int64_t dim, int64_t start, int64_t length); CAFFE2_API std::tuple batch_norm_cpu(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps); CAFFE2_API std::tuple batch_norm_cuda(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps); CAFFE2_API std::tuple mkldnn_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps); CAFFE2_API std::tuple batch_norm_stats_cuda(const Tensor & input, double eps); CAFFE2_API Tensor batch_norm_elemt_cuda(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & mean, const Tensor & invstd, double eps); CAFFE2_API std::tuple batch_norm_gather_stats_cuda(const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & running_mean, const Tensor & running_var, double momentum, double eps, int64_t count); CAFFE2_API std::tuple batch_norm_gather_stats_with_counts_cuda(const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & running_mean, const Tensor & running_var, double momentum, double eps, IntArrayRef counts); CAFFE2_API std::tuple batch_norm_backward_cpu(const Tensor & grad_out, const Tensor & input, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_invstd, bool train, double eps, std::array output_mask); CAFFE2_API std::tuple batch_norm_backward_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_invstd, bool train, double eps, std::array output_mask); CAFFE2_API std::tuple batch_norm_backward_reduce_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & weight, bool input_g, bool weight_g, bool bias_g); CAFFE2_API Tensor batch_norm_backward_elemt_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & weight, const Tensor & mean_dy, const Tensor & mean_dy_xmu); CAFFE2_API std::tuple batch_norm_update_stats_cpu(const Tensor & input, const Tensor & running_mean, const Tensor & running_var, double momentum); CAFFE2_API std::tuple batch_norm_update_stats_cuda(const Tensor & input, const Tensor & running_mean, const Tensor & running_var, double momentum); CAFFE2_API bool _nnpack_available(); CAFFE2_API Tensor _nnpack_spatial_convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef padding); CAFFE2_API std::tuple _nnpack_spatial_convolution_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, std::array output_mask); CAFFE2_API Tensor _nnpack_spatial_convolution_backward_input(const Tensor & input, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding); CAFFE2_API Tensor _nnpack_spatial_convolution_backward_weight(const Tensor & input, IntArrayRef weightsize, const Tensor & grad_output, IntArrayRef padding); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor ones(IntArrayRef size, c10::optional names, const TensorOptions & options={}); #endif CAFFE2_API Tensor ones(IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor & ones_out(Tensor & out, IntArrayRef size); CAFFE2_API Tensor ones_like(const Tensor & self); CAFFE2_API Tensor ones_like(const Tensor & self, const TensorOptions & options); CAFFE2_API Tensor pairwise_distance(const Tensor & x1, const Tensor & x2, double p=2, double eps=1e-06, bool keepdim=false); CAFFE2_API Tensor cdist(const Tensor & x1, const Tensor & x2, double p=2); CAFFE2_API Tensor _cdist_backward(const Tensor & grad, const Tensor & x1, const Tensor & x2, double p, const Tensor & cdist); CAFFE2_API Tensor pdist(const Tensor & self, double p=2); CAFFE2_API Tensor _pdist_forward(const Tensor & self, double p=2); CAFFE2_API Tensor _pdist_backward(const Tensor & grad, const Tensor & self, double p, const Tensor & pdist); CAFFE2_API Tensor cosine_similarity(const Tensor & x1, const Tensor & x2, int64_t dim=1, double eps=1e-08); CAFFE2_API Tensor permute(const Tensor & self, IntArrayRef dims); CAFFE2_API Tensor numpy_T(const Tensor & self); CAFFE2_API Tensor pixel_shuffle(const Tensor & self, int64_t upscale_factor); CAFFE2_API bool is_pinned(const Tensor & self); CAFFE2_API Tensor pin_memory(const Tensor & self); CAFFE2_API Tensor pinverse(const Tensor & self, double rcond=1e-15); CAFFE2_API Tensor poisson_nll_loss(const Tensor & input, const Tensor & target, bool log_input, bool full, double eps, int64_t reduction); CAFFE2_API Tensor scalar_tensor(Scalar s, const TensorOptions & options={}); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor rand(IntArrayRef size, c10::optional names, const TensorOptions & options={}); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor rand(IntArrayRef size, Generator * generator, c10::optional names, const TensorOptions & options={}); #endif CAFFE2_API Tensor rand(IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor rand(IntArrayRef size, Generator * generator, const TensorOptions & options={}); CAFFE2_API Tensor & rand_out(Tensor & out, IntArrayRef size); CAFFE2_API Tensor & rand_out(Tensor & out, IntArrayRef size, Generator * generator); CAFFE2_API Tensor rand_like(const Tensor & self); CAFFE2_API Tensor rand_like(const Tensor & self, const TensorOptions & options); CAFFE2_API Tensor randint(int64_t high, IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor randint(int64_t high, IntArrayRef size, Generator * generator, const TensorOptions & options={}); CAFFE2_API Tensor randint(int64_t low, int64_t high, IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor randint(int64_t low, int64_t high, IntArrayRef size, Generator * generator, const TensorOptions & options={}); CAFFE2_API Tensor & randint_out(Tensor & out, int64_t high, IntArrayRef size); CAFFE2_API Tensor & randint_out(Tensor & out, int64_t high, IntArrayRef size, Generator * generator); CAFFE2_API Tensor & randint_out(Tensor & out, int64_t low, int64_t high, IntArrayRef size); CAFFE2_API Tensor & randint_out(Tensor & out, int64_t low, int64_t high, IntArrayRef size, Generator * generator); CAFFE2_API Tensor randint_like(const Tensor & self, int64_t high); CAFFE2_API Tensor randint_like(const Tensor & self, int64_t low, int64_t high); CAFFE2_API Tensor randint_like(const Tensor & self, int64_t high, const TensorOptions & options); CAFFE2_API Tensor randint_like(const Tensor & self, int64_t low, int64_t high, const TensorOptions & options); CAFFE2_API Tensor randn(IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor randn(IntArrayRef size, Generator * generator, const TensorOptions & options={}); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor randn(IntArrayRef size, c10::optional names, const TensorOptions & options={}); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor randn(IntArrayRef size, Generator * generator, c10::optional names, const TensorOptions & options={}); #endif CAFFE2_API Tensor & randn_out(Tensor & out, IntArrayRef size); CAFFE2_API Tensor & randn_out(Tensor & out, IntArrayRef size, Generator * generator); CAFFE2_API Tensor randn_like(const Tensor & self); CAFFE2_API Tensor randn_like(const Tensor & self, const TensorOptions & options); CAFFE2_API Tensor randperm(int64_t n, const TensorOptions & options={}); CAFFE2_API Tensor randperm(int64_t n, Generator * generator, const TensorOptions & options={}); CAFFE2_API Tensor & randperm_out(Tensor & out, int64_t n); CAFFE2_API Tensor & randperm_out_cpu(Tensor & out, int64_t n, Generator * generator); CAFFE2_API Tensor & randperm_out_cuda(Tensor & out, int64_t n, Generator * generator); CAFFE2_API Tensor range(Scalar start, Scalar end, Scalar step=1, const TensorOptions & options={}); CAFFE2_API Tensor range(Scalar start, Scalar end, const TensorOptions & options={}); CAFFE2_API Tensor & range_cpu_out(Tensor & out, Scalar start, Scalar end, Scalar step=1); CAFFE2_API Tensor & range_cuda_out(Tensor & out, Scalar start, Scalar end, Scalar step=1); CAFFE2_API Tensor reciprocal(const Tensor & self); CAFFE2_API Tensor & _reciprocal__cpu(Tensor & self); CAFFE2_API Tensor & _reciprocal__cuda(Tensor & self); CAFFE2_API Tensor & _reciprocal_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _reciprocal_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor neg(const Tensor & self); CAFFE2_API Tensor & neg_(Tensor & self); CAFFE2_API Tensor & neg_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor repeat(const Tensor & self, IntArrayRef repeats); CAFFE2_API Tensor repeat_interleave_cpu(const Tensor & repeats); CAFFE2_API Tensor repeat_interleave_cuda(const Tensor & repeats); CAFFE2_API Tensor repeat_interleave(const Tensor & self, const Tensor & repeats, c10::optional dim=c10::nullopt); CAFFE2_API Tensor repeat_interleave(const Tensor & self, int64_t repeats, c10::optional dim=c10::nullopt); CAFFE2_API Tensor reshape(const Tensor & self, IntArrayRef shape); CAFFE2_API Tensor mkldnn_reshape(const Tensor & self, IntArrayRef shape); CAFFE2_API Tensor reshape_as(const Tensor & self, const Tensor & other); CAFFE2_API Tensor round(const Tensor & self); CAFFE2_API Tensor & round_(Tensor & self); CAFFE2_API Tensor & round_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor rrelu(const Tensor & self, Scalar lower=0.125, Scalar upper=0.333333333333, bool training=false, Generator * generator=nullptr); CAFFE2_API Tensor & rrelu_(Tensor & self, Scalar lower=0.125, Scalar upper=0.333333333333, bool training=false, Generator * generator=nullptr); CAFFE2_API Tensor relu(const Tensor & self); CAFFE2_API Tensor mkldnn_relu(const Tensor & self); CAFFE2_API Tensor quantized_relu(const Tensor & self); CAFFE2_API Tensor & relu_(Tensor & self); CAFFE2_API Tensor & mkldnn_relu_(Tensor & self); CAFFE2_API Tensor & quantized_relu_(Tensor & self); CAFFE2_API Tensor prelu_cpu(const Tensor & self, const Tensor & weight); CAFFE2_API Tensor prelu_cuda(const Tensor & self, const Tensor & weight); CAFFE2_API std::tuple prelu_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight); CAFFE2_API std::tuple prelu_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight); CAFFE2_API Tensor gelu_cpu(const Tensor & self); CAFFE2_API Tensor gelu_cuda(const Tensor & self); CAFFE2_API Tensor gelu_backward_cpu(const Tensor & grad, const Tensor & self); CAFFE2_API Tensor gelu_backward_cuda(const Tensor & grad, const Tensor & self); CAFFE2_API Tensor hardshrink_cpu(const Tensor & self, Scalar lambd=0.5); CAFFE2_API Tensor hardshrink_cuda(const Tensor & self, Scalar lambd=0.5); CAFFE2_API Tensor hardshrink_backward_cpu(const Tensor & grad_out, const Tensor & self, Scalar lambd); CAFFE2_API Tensor hardshrink_backward_cuda(const Tensor & grad_out, const Tensor & self, Scalar lambd); CAFFE2_API Tensor rsqrt(const Tensor & self); CAFFE2_API Tensor & rsqrt_(Tensor & self); CAFFE2_API Tensor & rsqrt_out(Tensor & out, const Tensor & self); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor select(const Tensor & self, Dimname dim, int64_t index); #endif CAFFE2_API Tensor select(const Tensor & self, int64_t dim, int64_t index); CAFFE2_API Tensor selu(const Tensor & self); CAFFE2_API Tensor & selu_(Tensor & self); CAFFE2_API Tensor celu(const Tensor & self, Scalar alpha=1.0); CAFFE2_API Tensor & celu_(Tensor & self, Scalar alpha=1.0); CAFFE2_API Tensor sigmoid(const Tensor & self); CAFFE2_API Tensor mkldnn_sigmoid(const Tensor & self); CAFFE2_API Tensor & _sigmoid__cpu(Tensor & self); CAFFE2_API Tensor & _sigmoid__cuda(Tensor & self); CAFFE2_API Tensor & mkldnn_sigmoid_(Tensor & self); CAFFE2_API Tensor & _sigmoid_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _sigmoid_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor sin(const Tensor & self); CAFFE2_API Tensor & _sin__cpu(Tensor & self); CAFFE2_API Tensor & _sin__cuda(Tensor & self); CAFFE2_API Tensor & _sin_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _sin_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor sinh(const Tensor & self); CAFFE2_API Tensor & _sinh__cpu(Tensor & self); CAFFE2_API Tensor & _sinh__cuda(Tensor & self); CAFFE2_API Tensor & _sinh_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _sinh_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor detach(const Tensor & self); CAFFE2_API Tensor & detach_(Tensor & self); CAFFE2_API int64_t size(const Tensor & self, int64_t dim); #ifdef BUILD_NAMEDTENSOR CAFFE2_API int64_t size(const Tensor & self, Dimname dim); #endif CAFFE2_API Tensor slice(const Tensor & self, int64_t dim=0, int64_t start=0, int64_t end=9223372036854775807, int64_t step=1); CAFFE2_API std::tuple slogdet(const Tensor & self); CAFFE2_API Tensor smm(const Tensor & self, const Tensor & mat2); CAFFE2_API Tensor softmax(const Tensor & self, int64_t dim, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor softmax(const Tensor & self, Dimname dim, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor softmax_cpu(const Tensor & self, int64_t dim, bool half_to_float); CAFFE2_API Tensor softmax_cuda(const Tensor & self, int64_t dim, bool half_to_float); CAFFE2_API Tensor mkldnn_softmax(const Tensor & self, int64_t dim, bool half_to_float); CAFFE2_API Tensor softmax_backward_cpu(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self); CAFFE2_API Tensor softmax_backward_cuda(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self); CAFFE2_API std::vector split(const Tensor & self, int64_t split_size, int64_t dim=0); CAFFE2_API std::vector split_with_sizes(const Tensor & self, IntArrayRef split_sizes, int64_t dim=0); CAFFE2_API Tensor squeeze(const Tensor & self); CAFFE2_API Tensor squeeze(const Tensor & self, int64_t dim); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor squeeze(const Tensor & self, Dimname dim); #endif CAFFE2_API Tensor & squeeze_(Tensor & self); CAFFE2_API Tensor & squeeze_(Tensor & self, int64_t dim); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & squeeze_(Tensor & self, Dimname dim); #endif CAFFE2_API Tensor sspaddmm(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & _sspaddmm_out_only_sparse(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & _sspaddmm_out_only_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & _sspaddmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & _sspaddmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor stack(TensorList tensors, int64_t dim=0); CAFFE2_API Tensor & stack_out(Tensor & out, TensorList tensors, int64_t dim=0); CAFFE2_API Tensor stft(const Tensor & self, int64_t n_fft, c10::optional hop_length=c10::nullopt, c10::optional win_length=c10::nullopt, const Tensor & window={}, bool normalized=false, bool onesided=true); CAFFE2_API int64_t stride(const Tensor & self, int64_t dim); #ifdef BUILD_NAMEDTENSOR CAFFE2_API int64_t stride(const Tensor & self, Dimname dim); #endif CAFFE2_API Tensor sum(const Tensor & self, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor sum(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor sum(const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor & sum_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & sum_out(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor sum_to_size(const Tensor & self, IntArrayRef size); CAFFE2_API Tensor sqrt(const Tensor & self); CAFFE2_API Tensor & _sqrt__cpu(Tensor & self); CAFFE2_API Tensor & _sqrt__cuda(Tensor & self); CAFFE2_API Tensor & _sqrt_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _sqrt_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor std(const Tensor & self, bool unbiased=true); CAFFE2_API Tensor std(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); CAFFE2_API std::tuple std_mean(const Tensor & self, bool unbiased=true); CAFFE2_API std::tuple std_mean(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple std_mean(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif CAFFE2_API Tensor & std_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor std(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & std_out(Tensor & out, const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif CAFFE2_API Tensor prod(const Tensor & self, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor prod(const Tensor & self, int64_t dim, bool keepdim=false, c10::optional dtype=c10::nullopt); CAFFE2_API Tensor & prod_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor prod(const Tensor & self, Dimname dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & prod_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false, c10::optional dtype=c10::nullopt); #endif CAFFE2_API Tensor t(const Tensor & self); CAFFE2_API Tensor & t_(Tensor & self); CAFFE2_API Tensor tan(const Tensor & self); CAFFE2_API Tensor & _tan__cpu(Tensor & self); CAFFE2_API Tensor & _tan__cuda(Tensor & self); CAFFE2_API Tensor & _tan_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _tan_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor tanh(const Tensor & self); CAFFE2_API Tensor & _tanh__cpu(Tensor & self); CAFFE2_API Tensor & _tanh__cuda(Tensor & self); CAFFE2_API Tensor & _tanh_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _tanh_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor tensordot(const Tensor & self, const Tensor & other, IntArrayRef dims_self, IntArrayRef dims_other); CAFFE2_API Tensor threshold(const Tensor & self, Scalar threshold, Scalar value); CAFFE2_API Tensor & threshold_(Tensor & self, Scalar threshold, Scalar value); CAFFE2_API Tensor & threshold_out(Tensor & out, const Tensor & self, Scalar threshold, Scalar value); CAFFE2_API Tensor threshold_backward(const Tensor & grad_output, const Tensor & self, Scalar threshold); CAFFE2_API Tensor transpose(const Tensor & self, int64_t dim0, int64_t dim1); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor transpose(const Tensor & self, Dimname dim0, Dimname dim1); #endif CAFFE2_API Tensor mkldnn_transpose(const Tensor & self, int64_t dim0, int64_t dim1); CAFFE2_API Tensor & transpose_(Tensor & self, int64_t dim0, int64_t dim1); CAFFE2_API Tensor & mkldnn_transpose_(Tensor & self, int64_t dim0, int64_t dim1); CAFFE2_API Tensor one_hot(const Tensor & self, int64_t num_classes=-1); CAFFE2_API Tensor flip_cpu(const Tensor & self, IntArrayRef dims); CAFFE2_API Tensor flip_cuda(const Tensor & self, IntArrayRef dims); CAFFE2_API Tensor roll_cpu(const Tensor & self, IntArrayRef shifts, IntArrayRef dims={}); CAFFE2_API Tensor roll_cuda(const Tensor & self, IntArrayRef shifts, IntArrayRef dims={}); CAFFE2_API Tensor rot90(const Tensor & self, int64_t k=1, IntArrayRef dims={0,1}); CAFFE2_API Tensor trapz(const Tensor & y, const Tensor & x, int64_t dim=-1); CAFFE2_API Tensor trapz(const Tensor & y, double dx=1, int64_t dim=-1); CAFFE2_API Tensor _trilinear(const Tensor & i1, const Tensor & i2, const Tensor & i3, IntArrayRef expand1, IntArrayRef expand2, IntArrayRef expand3, IntArrayRef sumdim, int64_t unroll_dim=1); CAFFE2_API Tensor triplet_margin_loss(const Tensor & anchor, const Tensor & positive, const Tensor & negative, double margin=1.0, double p=2, double eps=1e-06, bool swap=false, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor trunc(const Tensor & self); CAFFE2_API Tensor & trunc_(Tensor & self); CAFFE2_API Tensor & trunc_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor type_as(const Tensor & self, const Tensor & other); CAFFE2_API bool _has_compatible_shallow_copy_type(const Tensor & self, const Tensor & from); CAFFE2_API std::tuple _unique_cpu(const Tensor & self, bool sorted=true, bool return_inverse=false); CAFFE2_API std::tuple _unique_cuda(const Tensor & self, bool sorted=true, bool return_inverse=false); CAFFE2_API std::tuple unique_dim_cpu(const Tensor & self, int64_t dim, bool sorted=true, bool return_inverse=false, bool return_counts=false); CAFFE2_API std::tuple unique_dim_cuda(const Tensor & self, int64_t dim, bool sorted=true, bool return_inverse=false, bool return_counts=false); CAFFE2_API std::tuple unique_consecutive_cpu(const Tensor & self, bool return_inverse=false, bool return_counts=false, c10::optional dim=c10::nullopt); CAFFE2_API std::tuple unique_consecutive_cuda(const Tensor & self, bool return_inverse=false, bool return_counts=false, c10::optional dim=c10::nullopt); CAFFE2_API std::tuple unique_dim_consecutive_cpu(const Tensor & self, int64_t dim, bool return_inverse=false, bool return_counts=false); CAFFE2_API std::tuple unique_dim_consecutive_cuda(const Tensor & self, int64_t dim, bool return_inverse=false, bool return_counts=false); CAFFE2_API std::tuple _unique2_cpu(const Tensor & self, bool sorted=true, bool return_inverse=false, bool return_counts=false); CAFFE2_API std::tuple _unique2_cuda(const Tensor & self, bool sorted=true, bool return_inverse=false, bool return_counts=false); CAFFE2_API Tensor _unsafe_view(const Tensor & self, IntArrayRef size); CAFFE2_API Tensor unsqueeze(const Tensor & self, int64_t dim); CAFFE2_API Tensor & unsqueeze_(Tensor & self, int64_t dim); CAFFE2_API Tensor var(const Tensor & self, bool unbiased=true); CAFFE2_API Tensor var(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); CAFFE2_API Tensor & var_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor var(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & var_out(Tensor & out, const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif CAFFE2_API std::tuple var_mean(const Tensor & self, bool unbiased=true); CAFFE2_API std::tuple var_mean(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple var_mean(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false); #endif CAFFE2_API Tensor view_as(const Tensor & self, const Tensor & other); CAFFE2_API Tensor where(const Tensor & condition, const Tensor & self, const Tensor & other); CAFFE2_API std::vector where(const Tensor & condition); CAFFE2_API Tensor _s_where_cpu(const Tensor & condition, const Tensor & self, const Tensor & other); CAFFE2_API Tensor _s_where_cuda(const Tensor & condition, const Tensor & self, const Tensor & other); CAFFE2_API Tensor norm_except_dim(const Tensor & v, int64_t pow=2, int64_t dim=0); CAFFE2_API Tensor _weight_norm(const Tensor & v, const Tensor & g, int64_t dim=0); CAFFE2_API std::tuple weight_norm_cuda(const Tensor & v, const Tensor & g, int64_t dim=0); CAFFE2_API std::tuple weight_norm_cuda_backward(const Tensor & grad_w, const Tensor & saved_v, const Tensor & saved_g, const Tensor & saved_norms, int64_t dim); CAFFE2_API std::tuple _weight_norm_differentiable_backward(const Tensor & grad_w, const Tensor & saved_v, const Tensor & saved_g, const Tensor & saved_norms, int64_t dim); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor zeros(IntArrayRef size, c10::optional names, const TensorOptions & options={}); #endif CAFFE2_API Tensor zeros(IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor & zeros_out(Tensor & out, IntArrayRef size); CAFFE2_API Tensor zeros_like(const Tensor & self); CAFFE2_API Tensor zeros_like(const Tensor & self, const TensorOptions & options); CAFFE2_API Tensor _standard_gamma_grad_cpu(const Tensor & self, const Tensor & output); CAFFE2_API Tensor _standard_gamma_grad_cuda(const Tensor & self, const Tensor & output); CAFFE2_API Tensor _s_gamma_cpu(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor _s_gamma_cuda(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor _dirichlet_grad_cpu(const Tensor & x, const Tensor & alpha, const Tensor & total); CAFFE2_API Tensor _dirichlet_grad_cuda(const Tensor & x, const Tensor & alpha, const Tensor & total); CAFFE2_API Tensor _s_dirichlet_cpu(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor _s_dirichlet_cuda(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor _s_poisson_cpu(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor _s_poisson_cuda(const Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor norm_sparse(const Tensor & self, Scalar p=2); CAFFE2_API Tensor _sparse_sum(const Tensor & self); CAFFE2_API Tensor _sparse_sum(const Tensor & self, ScalarType dtype); CAFFE2_API Tensor _sparse_sum(const Tensor & self, IntArrayRef dim); CAFFE2_API Tensor _sparse_sum(const Tensor & self, IntArrayRef dim, ScalarType dtype); CAFFE2_API Tensor _sparse_sum_backward_cpu(const Tensor & grad, const Tensor & self, IntArrayRef dim); CAFFE2_API Tensor _sparse_sum_backward_cuda(const Tensor & grad, const Tensor & self, IntArrayRef dim); CAFFE2_API Tensor norm(const Tensor & self, c10::optional p, ScalarType dtype); CAFFE2_API Tensor norm(const Tensor & self, Scalar p=2); CAFFE2_API Tensor norm(const Tensor & self, c10::optional p, IntArrayRef dim, bool keepdim, ScalarType dtype); CAFFE2_API Tensor norm(const Tensor & self, c10::optional p, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional p, IntArrayRef dim, bool keepdim, ScalarType dtype); CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional p, IntArrayRef dim, bool keepdim=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor norm(const Tensor & self, c10::optional p, DimnameList dim, bool keepdim, ScalarType dtype); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor norm(const Tensor & self, c10::optional p, DimnameList dim, bool keepdim=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional p, DimnameList dim, bool keepdim, ScalarType dtype); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional p, DimnameList dim, bool keepdim=false); #endif CAFFE2_API Tensor frobenius_norm(const Tensor & self); CAFFE2_API Tensor frobenius_norm(const Tensor & self, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor & frobenius_norm_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor nuclear_norm(const Tensor & self, bool keepdim=false); CAFFE2_API Tensor & nuclear_norm_out(Tensor & out, const Tensor & self, bool keepdim=false); CAFFE2_API Tensor nuclear_norm(const Tensor & self, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor & nuclear_norm_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false); CAFFE2_API Tensor clone(const Tensor & self); CAFFE2_API Tensor mkldnn_clone(const Tensor & self); CAFFE2_API Tensor quantized_clone(const Tensor & self); CAFFE2_API Tensor clone_sparse(const Tensor & self); CAFFE2_API Tensor & resize_as_(Tensor & self, const Tensor & the_template); CAFFE2_API Tensor & pow_out(Tensor & out, const Tensor & self, Scalar exponent); CAFFE2_API Tensor & pow_out_sparse_scalar(Tensor & out, const Tensor & self, Scalar exponent); CAFFE2_API Tensor pow(const Tensor & self, Scalar exponent); CAFFE2_API Tensor pow_sparse_scalar(const Tensor & self, Scalar exponent); CAFFE2_API Tensor & mkldnn_zero_(Tensor & self); CAFFE2_API Tensor & zero_sparse_(Tensor & self); CAFFE2_API Tensor & sub_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & sub_out_sparse(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor sub(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor sub_sparse(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & sub_(Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor & sub_sparse_(Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor sub(const Tensor & self, Scalar other, Scalar alpha=1); CAFFE2_API Tensor & sub_(Tensor & self, Scalar other, Scalar alpha=1); CAFFE2_API Tensor rsub(const Tensor & self, const Tensor & other, Scalar alpha=1); CAFFE2_API Tensor rsub(const Tensor & self, Scalar other, Scalar alpha=1); CAFFE2_API Tensor _sparse_addmm(const Tensor & self, const Tensor & sparse, const Tensor & dense, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & addmm_out_sparse_dense_cpu(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & addmm_out_sparse_dense_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor addmm_sparse_dense_cpu(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor addmm_sparse_dense_cuda(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & s_addmm_sparse_dense_cpu_(Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor & s_addmm_sparse_dense_cuda_(Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1); CAFFE2_API Tensor sparse_coo_tensor(IntArrayRef size, const TensorOptions & options); CAFFE2_API Tensor sparse_coo_tensor(const Tensor & indices, const Tensor & values, const TensorOptions & options={}); CAFFE2_API Tensor sparse_coo_tensor(const Tensor & indices, const Tensor & values, IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor _sparse_coo_tensor_unsafe(const Tensor & indices, const Tensor & values, IntArrayRef size, const TensorOptions & options={}); CAFFE2_API Tensor new_with_dims_sparse(int64_t sparse_dim, int64_t dense_dim, IntArrayRef size, const TensorOptions & options); CAFFE2_API Tensor new_with_dims_and_tensor_sparse(int64_t sparse_dim, int64_t dense_dim, IntArrayRef size, const Tensor & indices, const Tensor & values, const TensorOptions & options); CAFFE2_API Tensor & sparse_resize_(Tensor & self, IntArrayRef size, int64_t sparse_dim, int64_t dense_dim); CAFFE2_API Tensor & sparse_resize_and_clear_(Tensor & self, IntArrayRef size, int64_t sparse_dim, int64_t dense_dim); CAFFE2_API Tensor sparse_mask_cpu(const Tensor & self, const Tensor & mask); CAFFE2_API Tensor sparse_mask_cuda(const Tensor & self, const Tensor & mask); CAFFE2_API Tensor mkldnn_to_dense(const Tensor & self); CAFFE2_API Tensor sparse_to_dense(const Tensor & self); CAFFE2_API Tensor to_dense_backward(const Tensor & grad, const Tensor & input); CAFFE2_API int64_t sparse_dim_sparse(const Tensor & self); CAFFE2_API int64_t sparse_dim_sparse(const Tensor & self); CAFFE2_API int64_t dense_dim_sparse(const Tensor & self); CAFFE2_API int64_t dense_dim_sparse(const Tensor & self); CAFFE2_API int64_t _nnz_sparse(const Tensor & self); CAFFE2_API Tensor coalesce_sparse_cpu(const Tensor & self); CAFFE2_API Tensor coalesce_sparse_cuda(const Tensor & self); CAFFE2_API bool is_coalesced_sparse(const Tensor & self); CAFFE2_API Tensor _indices_sparse(const Tensor & self); CAFFE2_API Tensor _values_sparse(const Tensor & self); CAFFE2_API Tensor & _coalesced_sparse_(Tensor & self, bool coalesced); CAFFE2_API Tensor indices_sparse(const Tensor & self); CAFFE2_API Tensor values_sparse(const Tensor & self); CAFFE2_API Tensor & hspmm_out_sparse_cpu(Tensor & out, const Tensor & mat1, const Tensor & mat2); CAFFE2_API Tensor & hspmm_out_sparse_cuda(Tensor & out, const Tensor & mat1, const Tensor & mat2); CAFFE2_API Tensor hspmm_sparse_cpu(const Tensor & mat1, const Tensor & mat2); CAFFE2_API Tensor hspmm_sparse_cuda(const Tensor & mat1, const Tensor & mat2); CAFFE2_API Tensor & copy_sparse_(Tensor & self, const Tensor & src, bool non_blocking=false); CAFFE2_API int64_t numel(const Tensor & self); CAFFE2_API std::vector unbind(const Tensor & self, int64_t dim=0); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::vector unbind(const Tensor & self, Dimname dim); #endif CAFFE2_API Tensor dense_to_sparse(const Tensor & self, int64_t sparse_dim); CAFFE2_API Tensor dense_to_sparse(const Tensor & self); CAFFE2_API Tensor dense_to_mkldnn(const Tensor & self); CAFFE2_API Tensor mkldnn_reorder_conv2d_weight(const Tensor & self, IntArrayRef padding=0, IntArrayRef stride=1, IntArrayRef dilation=1, int64_t groups=1); CAFFE2_API Tensor to_mkldnn_backward(const Tensor & grad, const Tensor & input); CAFFE2_API Tensor quantize_per_tensor_cpu(const Tensor & self, double scale, int64_t zero_point, ScalarType dtype); CAFFE2_API Tensor quantize_per_channel_cpu(const Tensor & self, const Tensor & scales, const Tensor & zero_points, int64_t axis, ScalarType dtype); CAFFE2_API Tensor dequantize_quant(const Tensor & self); CAFFE2_API double q_scale_quant(const Tensor & self); CAFFE2_API int64_t q_zero_point_quant(const Tensor & self); CAFFE2_API Tensor q_per_channel_scales_quant(const Tensor & self); CAFFE2_API Tensor q_per_channel_zero_points_quant(const Tensor & self); CAFFE2_API int64_t q_per_channel_axis_quant(const Tensor & self); CAFFE2_API Tensor int_repr_quant(const Tensor & self); CAFFE2_API Tensor make_per_tensor_quantized_tensor_cpu(const Tensor & self, double scale, int64_t zero_point); CAFFE2_API Tensor make_per_channel_quantized_tensor_cpu(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis); CAFFE2_API QScheme qscheme_quant(const Tensor & self); CAFFE2_API Tensor fake_quantize_per_tensor_affine_cpu(const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_tensor_affine_cuda(const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_tensor_affine_backward_cpu(const Tensor & grad, const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_tensor_affine_backward_cuda(const Tensor & grad, const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_channel_affine_cpu(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_channel_affine_cuda(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_channel_affine_backward_cpu(const Tensor & grad, const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor fake_quantize_per_channel_affine_backward_cuda(const Tensor & grad, const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max); CAFFE2_API Tensor to(const Tensor & self, const TensorOptions & options, bool non_blocking=false, bool copy=false); CAFFE2_API Tensor to(const Tensor & self, Device device, ScalarType dtype, bool non_blocking=false, bool copy=false); CAFFE2_API Tensor to(const Tensor & self, ScalarType dtype, bool non_blocking=false, bool copy=false); CAFFE2_API Tensor to(const Tensor & self, const Tensor & other, bool non_blocking=false, bool copy=false); CAFFE2_API std::vector meshgrid(TensorList tensors); CAFFE2_API Tensor cartesian_prod(TensorList tensors); CAFFE2_API Tensor combinations(const Tensor & self, int64_t r=2, bool with_replacement=false); CAFFE2_API Scalar item(const Tensor & self); CAFFE2_API ScalarType result_type(const Tensor & tensor, const Tensor & other); CAFFE2_API ScalarType result_type(const Tensor & tensor, Scalar other); CAFFE2_API ScalarType result_type(Scalar scalar, const Tensor & tensor); CAFFE2_API ScalarType result_type(Scalar scalar1, Scalar scalar2); CAFFE2_API bool can_cast(ScalarType from, ScalarType to); CAFFE2_API ScalarType promote_types(ScalarType type1, ScalarType type2); CAFFE2_API Scalar _local_scalar_dense_cpu(const Tensor & self); CAFFE2_API Scalar _local_scalar_dense_cuda(const Tensor & self); CAFFE2_API std::tuple _thnn_fused_lstm_cell_cuda(const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & cx, const Tensor & input_bias={}, const Tensor & hidden_bias={}); CAFFE2_API std::tuple _thnn_fused_lstm_cell_backward_cuda(const Tensor & grad_hy, const Tensor & grad_cy, const Tensor & cx, const Tensor & cy, const Tensor & workspace, bool has_bias); CAFFE2_API std::tuple _thnn_differentiable_lstm_cell_backward(const Tensor & grad_hy, const Tensor & grad_cy, const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & input_bias, const Tensor & hidden_bias, const Tensor & cx, const Tensor & cy); CAFFE2_API std::tuple _thnn_fused_gru_cell_cuda(const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & hx, const Tensor & input_bias={}, const Tensor & hidden_bias={}); CAFFE2_API std::tuple _thnn_fused_gru_cell_backward_cuda(const Tensor & grad_hy, const Tensor & workspace, bool has_bias); CAFFE2_API std::tuple _thnn_differentiable_gru_cell_backward(const Tensor & grad_hy, const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & hx, const Tensor & input_bias, const Tensor & hidden_bias); CAFFE2_API std::tuple lstm(const Tensor & input, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first); CAFFE2_API std::tuple lstm(const Tensor & data, const Tensor & batch_sizes, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional); CAFFE2_API std::tuple gru(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first); CAFFE2_API std::tuple gru(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional); CAFFE2_API std::tuple rnn_tanh(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first); CAFFE2_API std::tuple rnn_tanh(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional); CAFFE2_API std::tuple rnn_relu(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first); CAFFE2_API std::tuple rnn_relu(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional); CAFFE2_API std::tuple lstm_cell(const Tensor & input, TensorList hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={}); CAFFE2_API Tensor gru_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={}); CAFFE2_API Tensor rnn_tanh_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={}); CAFFE2_API Tensor rnn_relu_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={}); CAFFE2_API std::tuple quantized_lstm(const Tensor & input, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first, c10::optional dtype=c10::nullopt, bool use_dynamic=false); CAFFE2_API std::tuple quantized_gru(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first); CAFFE2_API std::tuple quantized_gru(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional); CAFFE2_API std::tuple quantized_lstm_cell(const Tensor & input, TensorList hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh); CAFFE2_API Tensor quantized_gru_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh); CAFFE2_API Tensor quantized_rnn_relu_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh); CAFFE2_API Tensor quantized_rnn_tanh_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh); CAFFE2_API std::tuple _pack_padded_sequence(const Tensor & input, const Tensor & lengths, bool batch_first); CAFFE2_API Tensor _pack_padded_sequence_backward(const Tensor & grad, IntArrayRef input_size, const Tensor & batch_sizes, bool batch_first); CAFFE2_API std::tuple _pad_packed_sequence(const Tensor & data, const Tensor & batch_sizes, bool batch_first, Scalar padding_value, int64_t total_length); CAFFE2_API Tensor & set_storage(Tensor & self, Storage source, int64_t storage_offset, IntArrayRef size, IntArrayRef stride={}); CAFFE2_API Tensor & set_quantizer_(Tensor & self, ConstQuantizerPtr quantizer); CAFFE2_API Tensor & masked_fill__cpu(Tensor & self, const Tensor & mask, Scalar value); CAFFE2_API Tensor & masked_fill__cuda(Tensor & self, const Tensor & mask, Scalar value); CAFFE2_API Tensor masked_fill(const Tensor & self, const Tensor & mask, Scalar value); CAFFE2_API Tensor & masked_fill__cpu(Tensor & self, const Tensor & mask, const Tensor & value); CAFFE2_API Tensor & masked_fill__cuda(Tensor & self, const Tensor & mask, const Tensor & value); CAFFE2_API Tensor masked_fill(const Tensor & self, const Tensor & mask, const Tensor & value); CAFFE2_API Tensor & masked_scatter__cpu(Tensor & self, const Tensor & mask, const Tensor & source); CAFFE2_API Tensor & masked_scatter__cuda(Tensor & self, const Tensor & mask, const Tensor & source); CAFFE2_API Tensor masked_scatter(const Tensor & self, const Tensor & mask, const Tensor & source); CAFFE2_API Tensor view(const Tensor & self, IntArrayRef size); CAFFE2_API Tensor mkldnn_view(const Tensor & self, IntArrayRef size); CAFFE2_API Tensor index_add(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & source); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor index_add(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & source); #endif CAFFE2_API Tensor index_fill(const Tensor & self, int64_t dim, const Tensor & index, Scalar value); CAFFE2_API Tensor index_fill(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & value); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & index_fill_(Tensor & self, Dimname dim, const Tensor & index, Scalar value); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & index_fill_(Tensor & self, Dimname dim, const Tensor & index, const Tensor & value); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor index_fill(const Tensor & self, Dimname dim, const Tensor & index, Scalar value); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor index_fill(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & value); #endif CAFFE2_API Tensor scatter(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & src); CAFFE2_API Tensor scatter(const Tensor & self, int64_t dim, const Tensor & index, Scalar value); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor scatter(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & src); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor scatter(const Tensor & self, Dimname dim, const Tensor & index, Scalar value); #endif CAFFE2_API Tensor scatter_add(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & src); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor scatter_add(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & src); #endif CAFFE2_API Tensor & lt_(Tensor & self, Scalar other); CAFFE2_API Tensor & lt_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & gt_(Tensor & self, Scalar other); CAFFE2_API Tensor & gt_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & le_(Tensor & self, Scalar other); CAFFE2_API Tensor & le_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & ge_(Tensor & self, Scalar other); CAFFE2_API Tensor & ge_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & eq_(Tensor & self, Scalar other); CAFFE2_API Tensor & eq_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & ne_(Tensor & self, Scalar other); CAFFE2_API Tensor & ne_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & _lgamma__cpu(Tensor & self); CAFFE2_API Tensor & _lgamma__cuda(Tensor & self); CAFFE2_API Tensor & atan2_(Tensor & self, const Tensor & other); CAFFE2_API Tensor & tril_cpu_(Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & tril_cuda_(Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & triu_cpu_(Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & triu_cuda_(Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & digamma_(Tensor & self); CAFFE2_API Tensor & polygamma_(Tensor & self, int64_t n); CAFFE2_API Tensor & pow_(Tensor & self, Scalar exponent); CAFFE2_API Tensor & pow_(Tensor & self, const Tensor & exponent); CAFFE2_API Tensor & lerp_cpu_scalar_(Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor & lerp_cuda_scalar_(Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor & lerp_cpu_tensor_(Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor & lerp_cuda_tensor_(Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor & addcdiv_(Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API Tensor & clamped_random_cuda_(Tensor & self, int64_t from, int64_t to, Generator * generator=nullptr); CAFFE2_API Tensor & capped_random_cuda_(Tensor & self, int64_t to, Generator * generator=nullptr); CAFFE2_API Tensor & random_cuda_(Tensor & self, Generator * generator=nullptr); CAFFE2_API Tensor & uniform_cuda_(Tensor & self, double from=0, double to=1, Generator * generator=nullptr); CAFFE2_API Tensor & normal_cuda_(Tensor & self, double mean=0, double std=1, Generator * generator=nullptr); CAFFE2_API Tensor & cauchy_cuda_(Tensor & self, double median=0, double sigma=1, Generator * generator=nullptr); CAFFE2_API Tensor & log_normal_cuda_(Tensor & self, double mean=1, double std=2, Generator * generator=nullptr); CAFFE2_API Tensor & exponential_cuda_(Tensor & self, double lambd=1, Generator * generator=nullptr); CAFFE2_API Tensor & geometric_cuda_(Tensor & self, double p, Generator * generator=nullptr); CAFFE2_API Tensor & cross_out(Tensor & out, const Tensor & self, const Tensor & other, c10::optional dim=c10::nullopt); CAFFE2_API Tensor cross(const Tensor & self, const Tensor & other, c10::optional dim=c10::nullopt); CAFFE2_API Tensor & triu_cpu_out(Tensor & out, const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & triu_cuda_out(Tensor & out, const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor triu(const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & tril_cpu_out(Tensor & out, const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor & tril_cuda_out(Tensor & out, const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor tril(const Tensor & self, int64_t diagonal=0); CAFFE2_API Tensor tril_indices_cpu(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong); CAFFE2_API Tensor tril_indices_cuda(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong); CAFFE2_API Tensor triu_indices_cpu(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong); CAFFE2_API Tensor triu_indices_cuda(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong); CAFFE2_API Tensor & ne_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & ne_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor ne(const Tensor & self, Scalar other); CAFFE2_API Tensor ne_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & ne_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & ne_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor ne(const Tensor & self, const Tensor & other); CAFFE2_API Tensor ne_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & eq_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & eq_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor eq(const Tensor & self, Scalar other); CAFFE2_API Tensor eq_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & eq_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & eq_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor eq(const Tensor & self, const Tensor & other); CAFFE2_API Tensor eq_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & ge_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & ge_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor ge(const Tensor & self, Scalar other); CAFFE2_API Tensor ge_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & ge_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & ge_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor ge(const Tensor & self, const Tensor & other); CAFFE2_API Tensor ge_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & le_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & le_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor le(const Tensor & self, Scalar other); CAFFE2_API Tensor le_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & le_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & le_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor le(const Tensor & self, const Tensor & other); CAFFE2_API Tensor le_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & gt_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & gt_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor gt(const Tensor & self, Scalar other); CAFFE2_API Tensor gt_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & gt_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & gt_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor gt(const Tensor & self, const Tensor & other); CAFFE2_API Tensor gt_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & lt_out(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor & lt_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other); CAFFE2_API Tensor lt(const Tensor & self, Scalar other); CAFFE2_API Tensor lt_quantized_cpu(const Tensor & self, Scalar other); CAFFE2_API Tensor & lt_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor & lt_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor lt(const Tensor & self, const Tensor & other); CAFFE2_API Tensor lt_quantized_cpu(const Tensor & self, const Tensor & other); CAFFE2_API Tensor index_select_sparse(const Tensor & self, int64_t dim, const Tensor & index); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & index_select_out(Tensor & out, const Tensor & self, Dimname dim, const Tensor & index); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor index_select(const Tensor & self, Dimname dim, const Tensor & index); #endif CAFFE2_API Tensor & masked_select_out_cpu(Tensor & out, const Tensor & self, const Tensor & mask); CAFFE2_API Tensor & masked_select_out_cuda(Tensor & out, const Tensor & self, const Tensor & mask); CAFFE2_API Tensor masked_select_cpu(const Tensor & self, const Tensor & mask); CAFFE2_API Tensor masked_select_cuda(const Tensor & self, const Tensor & mask); CAFFE2_API std::vector nonzero_numpy(const Tensor & self); CAFFE2_API Tensor & gather_out_cpu(Tensor & out, const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false); CAFFE2_API Tensor & gather_out_cuda(Tensor & out, const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false); CAFFE2_API Tensor gather_cpu(const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false); CAFFE2_API Tensor gather_cuda(const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor & gather_out(Tensor & out, const Tensor & self, Dimname dim, const Tensor & index, bool sparse_grad=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor gather(const Tensor & self, Dimname dim, const Tensor & index, bool sparse_grad=false); #endif CAFFE2_API Tensor _gather_sparse_backward(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & grad); CAFFE2_API Tensor & addcmul_out(Tensor & out, const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API Tensor addcmul(const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API Tensor & addcmul_(Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API Tensor & addcdiv_out(Tensor & out, const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API Tensor addcdiv(const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1); CAFFE2_API std::tuple triangular_solve_out(Tensor & X, Tensor & M, const Tensor & self, const Tensor & A, bool upper=true, bool transpose=false, bool unitriangular=false); CAFFE2_API std::tuple triangular_solve(const Tensor & self, const Tensor & A, bool upper=true, bool transpose=false, bool unitriangular=false); CAFFE2_API std::tuple _triangular_solve_helper_cpu(const Tensor & self, const Tensor & A, bool upper, bool transpose, bool unitriangular); CAFFE2_API std::tuple _triangular_solve_helper_cuda(const Tensor & self, const Tensor & A, bool upper, bool transpose, bool unitriangular); CAFFE2_API std::tuple symeig_out(Tensor & e, Tensor & V, const Tensor & self, bool eigenvectors=false, bool upper=true); CAFFE2_API std::tuple symeig(const Tensor & self, bool eigenvectors=false, bool upper=true); CAFFE2_API std::tuple _symeig_helper_cpu(const Tensor & self, bool eigenvectors, bool upper); CAFFE2_API std::tuple _symeig_helper_cuda(const Tensor & self, bool eigenvectors, bool upper); CAFFE2_API std::tuple svd_out(Tensor & U, Tensor & S, Tensor & V, const Tensor & self, bool some=true, bool compute_uv=true); CAFFE2_API std::tuple svd(const Tensor & self, bool some=true, bool compute_uv=true); CAFFE2_API std::tuple _svd_helper_cpu(const Tensor & self, bool some, bool compute_uv); CAFFE2_API std::tuple _svd_helper_cuda(const Tensor & self, bool some, bool compute_uv); CAFFE2_API Tensor & cholesky_out(Tensor & out, const Tensor & self, bool upper=false); CAFFE2_API Tensor cholesky(const Tensor & self, bool upper=false); CAFFE2_API Tensor _cholesky_helper_cpu(const Tensor & self, bool upper); CAFFE2_API Tensor _cholesky_helper_cuda(const Tensor & self, bool upper); CAFFE2_API Tensor & cholesky_solve_out(Tensor & out, const Tensor & self, const Tensor & input2, bool upper=false); CAFFE2_API Tensor cholesky_solve(const Tensor & self, const Tensor & input2, bool upper=false); CAFFE2_API Tensor _cholesky_solve_helper_cpu(const Tensor & self, const Tensor & A, bool upper); CAFFE2_API Tensor _cholesky_solve_helper_cuda(const Tensor & self, const Tensor & A, bool upper); CAFFE2_API std::tuple solve(const Tensor & self, const Tensor & A); CAFFE2_API std::tuple solve_out(Tensor & solution, Tensor & lu, const Tensor & self, const Tensor & A); CAFFE2_API std::tuple _solve_helper_cpu(const Tensor & self, const Tensor & A); CAFFE2_API std::tuple _solve_helper_cuda(const Tensor & self, const Tensor & A); CAFFE2_API std::tuple qr_out(Tensor & Q, Tensor & R, const Tensor & self, bool some=true); CAFFE2_API std::tuple qr(const Tensor & self, bool some=true); CAFFE2_API std::tuple _qr_helper_cpu(const Tensor & self, bool some); CAFFE2_API std::tuple _qr_helper_cuda(const Tensor & self, bool some); CAFFE2_API std::tuple _lu_with_info_cpu(const Tensor & self, bool pivot=true, bool check_errors=true); CAFFE2_API std::tuple _lu_with_info_cuda(const Tensor & self, bool pivot=true, bool check_errors=true); CAFFE2_API Tensor & lu_solve_out(Tensor & out, const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots); CAFFE2_API Tensor lu_solve(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots); CAFFE2_API Tensor _lu_solve_helper_cpu(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots); CAFFE2_API Tensor _lu_solve_helper_cuda(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots); CAFFE2_API Tensor & multinomial_out(Tensor & out, const Tensor & self, int64_t num_samples, bool replacement=false, Generator * generator=nullptr); CAFFE2_API Tensor multinomial(const Tensor & self, int64_t num_samples, bool replacement=false, Generator * generator=nullptr); CAFFE2_API Tensor & _lgamma_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _lgamma_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor lgamma(const Tensor & self); CAFFE2_API Tensor & digamma_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor digamma(const Tensor & self); CAFFE2_API Tensor & polygamma_out(Tensor & out, int64_t n, const Tensor & self); CAFFE2_API Tensor polygamma(int64_t n, const Tensor & self); CAFFE2_API Tensor erfinv(const Tensor & self); CAFFE2_API Tensor & _erfinv__cpu(Tensor & self); CAFFE2_API Tensor & _erfinv__cuda(Tensor & self); CAFFE2_API Tensor & _erfinv_out_cpu(Tensor & out, const Tensor & self); CAFFE2_API Tensor & _erfinv_out_cuda(Tensor & out, const Tensor & self); CAFFE2_API Tensor sign(const Tensor & self); CAFFE2_API Tensor & sign_(Tensor & self); CAFFE2_API Tensor & sign_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor & atan2_out(Tensor & out, const Tensor & self, const Tensor & other); CAFFE2_API Tensor atan2(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & lerp_cpu_scalar_out(Tensor & out, const Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor & lerp_cuda_scalar_out(Tensor & out, const Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor & lerp_cpu_tensor_out(Tensor & out, const Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor & lerp_cuda_tensor_out(Tensor & out, const Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor lerp_cpu_scalar(const Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor lerp_cuda_scalar(const Tensor & self, const Tensor & end, Scalar weight); CAFFE2_API Tensor lerp_cpu_tensor(const Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor lerp_cuda_tensor(const Tensor & self, const Tensor & end, const Tensor & weight); CAFFE2_API Tensor & _histc_out_cuda(Tensor & out, const Tensor & self, int64_t bins=100, Scalar min=0, Scalar max=0); CAFFE2_API Tensor _histc_cuda(const Tensor & self, int64_t bins=100, Scalar min=0, Scalar max=0); CAFFE2_API Tensor min_quant(const Tensor & self); CAFFE2_API Tensor max_quant(const Tensor & self); CAFFE2_API Tensor median_cpu(const Tensor & self); CAFFE2_API Tensor median_cuda(const Tensor & self); CAFFE2_API std::tuple sort_quant(const Tensor & self, int64_t dim=-1, bool descending=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple sort_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool descending=false); #endif #ifdef BUILD_NAMEDTENSOR CAFFE2_API std::tuple sort(const Tensor & self, Dimname dim, bool descending=false); #endif CAFFE2_API Tensor argsort(const Tensor & self, int64_t dim=-1, bool descending=false); #ifdef BUILD_NAMEDTENSOR CAFFE2_API Tensor argsort(const Tensor & self, Dimname dim, bool descending=false); #endif CAFFE2_API std::tuple topk_out_cpu(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true); CAFFE2_API std::tuple topk(const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true); CAFFE2_API std::tuple quantized_topk_cpu(const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true); CAFFE2_API Tensor all(const Tensor & self); CAFFE2_API Tensor any(const Tensor & self); CAFFE2_API bool quantized_equal(const Tensor & self, const Tensor & other); CAFFE2_API Tensor & pow_out(Tensor & out, const Tensor & self, const Tensor & exponent); CAFFE2_API Tensor pow(const Tensor & self, const Tensor & exponent); CAFFE2_API Tensor & pow_out(Tensor & out, Scalar self, const Tensor & exponent); CAFFE2_API Tensor pow(Scalar self, const Tensor & exponent); CAFFE2_API Tensor & normal_out_cuda(Tensor & out, const Tensor & mean, double std=1, Generator * generator=nullptr); CAFFE2_API Tensor normal_cuda(const Tensor & mean, double std=1, Generator * generator=nullptr); CAFFE2_API Tensor & normal_out_cuda(Tensor & out, double mean, const Tensor & std, Generator * generator=nullptr); CAFFE2_API Tensor normal_cuda(double mean, const Tensor & std, Generator * generator=nullptr); CAFFE2_API Tensor & normal_out_cuda(Tensor & out, const Tensor & mean, const Tensor & std, Generator * generator=nullptr); CAFFE2_API Tensor normal_cuda(const Tensor & mean, const Tensor & std, Generator * generator=nullptr); CAFFE2_API Tensor normal(double mean, double std, IntArrayRef size, Generator * generator=nullptr, const TensorOptions & options={}); CAFFE2_API Tensor & normal_out(Tensor & out, double mean, double std, IntArrayRef size, Generator * generator=nullptr); CAFFE2_API Tensor alias(const Tensor & self); CAFFE2_API Tensor & multilabel_margin_loss_out(Tensor & out, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor multilabel_margin_loss(const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean); CAFFE2_API Tensor & nll_loss_out(Tensor & out, const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100); CAFFE2_API Tensor nll_loss(const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100); CAFFE2_API Tensor & nll_loss2d_out(Tensor & out, const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100); CAFFE2_API Tensor nll_loss2d(const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100); CAFFE2_API Tensor & log_sigmoid_out(Tensor & out, const Tensor & self); CAFFE2_API Tensor log_sigmoid(const Tensor & self); CAFFE2_API Tensor & adaptive_avg_pool2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & adaptive_avg_pool2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & mkldnn_adaptive_avg_pool2d_out(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor mkldnn_adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool2d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool2d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor quantized_adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self); CAFFE2_API Tensor adaptive_avg_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self); CAFFE2_API Tensor & adaptive_avg_pool3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & adaptive_avg_pool3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool3d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor adaptive_avg_pool3d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & adaptive_avg_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self); CAFFE2_API Tensor & adaptive_avg_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self); CAFFE2_API Tensor adaptive_avg_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self); CAFFE2_API Tensor adaptive_avg_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self); CAFFE2_API std::tuple adaptive_max_pool2d_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool2d_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool2d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool2d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & adaptive_max_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor & adaptive_max_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor adaptive_max_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor adaptive_max_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API std::tuple adaptive_max_pool3d_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool3d_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool3d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API std::tuple adaptive_max_pool3d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & adaptive_max_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor & adaptive_max_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor adaptive_max_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor adaptive_max_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices); CAFFE2_API Tensor & avg_pool2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor & avg_pool2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor & mkldnn_avg_pool2d_out(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor avg_pool2d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor avg_pool2d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor mkldnn_avg_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor quantized_avg_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor & avg_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor & avg_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor avg_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor avg_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor & avg_pool3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor & avg_pool3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor avg_pool3d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor avg_pool3d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional divisor_override=c10::nullopt); CAFFE2_API Tensor & avg_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor & avg_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor avg_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API Tensor avg_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional divisor_override); CAFFE2_API std::tuple fractional_max_pool2d_out_cpu(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool2d_out_cuda(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool2d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool2d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API Tensor & fractional_max_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor & fractional_max_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor fractional_max_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor fractional_max_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API std::tuple fractional_max_pool3d_out_cpu(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool3d_out_cuda(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool3d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API std::tuple fractional_max_pool3d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples); CAFFE2_API Tensor & fractional_max_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor & fractional_max_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor fractional_max_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API Tensor fractional_max_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices); CAFFE2_API std::tuple max_pool2d_with_indices_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool2d_with_indices_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool2d_with_indices_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool2d_with_indices_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor & max_pool2d_with_indices_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor & max_pool2d_with_indices_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor max_pool2d_with_indices_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor max_pool2d_with_indices_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API std::tuple max_pool3d_with_indices_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool3d_with_indices_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool3d_with_indices_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API std::tuple max_pool3d_with_indices_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false); CAFFE2_API Tensor & max_pool3d_with_indices_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor & max_pool3d_with_indices_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor max_pool3d_with_indices_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor max_pool3d_with_indices_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices); CAFFE2_API Tensor & max_unpooling2d_forward_out_cpu(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor & max_unpooling2d_forward_out_cuda(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor max_unpooling2d_forward_cpu(const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor max_unpooling2d_forward_cuda(const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor & max_unpooling2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor & max_unpooling2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor max_unpooling2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor max_unpooling2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size); CAFFE2_API Tensor & max_unpooling3d_forward_out_cpu(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor & max_unpooling3d_forward_out_cuda(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor max_unpooling3d_forward_cpu(const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor max_unpooling3d_forward_cuda(const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor & max_unpooling3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor & max_unpooling3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor max_unpooling3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor max_unpooling3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad1d_cpu(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad1d_cuda(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad1d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad1d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad2d_cpu(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad2d_cuda(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & reflection_pad2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor reflection_pad2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad1d_cpu(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad1d_cuda(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad1d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad1d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad2d_cpu(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad2d_cuda(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad3d_cpu(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad3d_cuda(const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & replication_pad3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor replication_pad3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding); CAFFE2_API Tensor & upsample_linear1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_linear1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_linear1d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_linear1d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_linear1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_linear1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_linear1d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_linear1d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_bilinear2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_bilinear2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_bilinear2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_bilinear2d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor quantized_upsample_bilinear2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_bilinear2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_bilinear2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_bilinear2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_bilinear2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_bicubic2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_bicubic2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_bicubic2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_bicubic2d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_bicubic2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_bicubic2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_bicubic2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_bicubic2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_trilinear3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_trilinear3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_trilinear3d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor upsample_trilinear3d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners); CAFFE2_API Tensor & upsample_trilinear3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_trilinear3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_trilinear3d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor upsample_trilinear3d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners); CAFFE2_API Tensor & upsample_nearest1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest1d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest1d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & upsample_nearest1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest1d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest1d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & upsample_nearest2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest2d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest2d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor quantized_upsample_nearest2d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & upsample_nearest2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & upsample_nearest3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest3d_cpu(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor upsample_nearest3d_cuda(const Tensor & self, IntArrayRef output_size); CAFFE2_API Tensor & upsample_nearest3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & upsample_nearest3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest3d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor upsample_nearest3d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size); CAFFE2_API Tensor & slow_conv_transpose2d_out_cpu(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor & slow_conv_transpose2d_out_cuda(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_transpose2d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_transpose2d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API std::tuple slow_conv_transpose2d_backward_out_cpu(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones); CAFFE2_API std::tuple slow_conv_transpose2d_backward_out_cuda(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones); CAFFE2_API std::tuple slow_conv_transpose2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones, std::array output_mask); CAFFE2_API std::tuple slow_conv_transpose2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones, std::array output_mask); CAFFE2_API Tensor & slow_conv_transpose3d_out_cpu(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor & slow_conv_transpose3d_out_cuda(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_transpose3d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_transpose3d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1); CAFFE2_API std::tuple slow_conv_transpose3d_backward_out_cpu(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input); CAFFE2_API std::tuple slow_conv_transpose3d_backward_out_cuda(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input); CAFFE2_API std::tuple slow_conv_transpose3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input, std::array output_mask); CAFFE2_API std::tuple slow_conv_transpose3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input, std::array output_mask); CAFFE2_API Tensor & thnn_conv2d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0); CAFFE2_API Tensor thnn_conv2d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0); CAFFE2_API Tensor & thnn_conv_depthwise2d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor thnn_conv_depthwise2d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor & thnn_conv3d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0); CAFFE2_API Tensor thnn_conv3d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0); CAFFE2_API Tensor slow_conv_dilated2d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_dilated2d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API std::tuple slow_conv_dilated2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array output_mask); CAFFE2_API std::tuple slow_conv_dilated2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array output_mask); CAFFE2_API Tensor slow_conv_dilated3d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API Tensor slow_conv_dilated3d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1); CAFFE2_API std::tuple slow_conv_dilated3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array output_mask); CAFFE2_API std::tuple slow_conv_dilated3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array output_mask); CAFFE2_API Tensor & col2im_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & col2im_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor col2im_cpu(const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor col2im_cuda(const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & col2im_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & col2im_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor col2im_backward_cpu(const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor col2im_backward_cuda(const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & im2col_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & im2col_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor im2col_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor im2col_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & im2col_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor & im2col_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor im2col_backward_cpu(const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); CAFFE2_API Tensor im2col_backward_cuda(const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride); } // namespace native } // namespace at