#pragma once // @generated from tools/autograd/templates/VariableType.h #include #include #include #include #include // for size_t #include // for function #include // for unique_ptr #include #include namespace at { struct Quantizer; }; namespace torch { namespace autograd { struct Variable; using at::Context; using at::Device; #ifdef BUILD_NAMEDTENSOR using at::Dimname; using at::DimnameList; #endif using at::Generator; using at::IntArrayRef; using at::MemoryFormat; using at::QScheme; using at::Scalar; using at::ScalarType; using at::Storage; using at::Tensor; using at::TensorList; using at::TensorOptions; using at::Quantizer; // This is temporary typedef to enable Quantizer in aten native function API // we'll remove them when we are actually exposing Quantizer class // to frontend using ConstQuantizerPtr = const c10::intrusive_ptr&; using c10::optional; namespace VariableType { TORCH_API std::vector allCUDATypes(); TORCH_API std::vector allCPUTypes(); // checks that t is actually a Variable const Variable & checked_cast_variable(const Tensor & t, const char * name, int pos); Variable & checked_cast_variable(Tensor & t, const char * name, int pos); // TODO These are only needed in the header because they're defined in // VariableTypeManual.cpp but registered from one of the codegened // VariableType_X.cpp. Instead, we should register them from // VariableTypeManual.cpp and then we can remove these declarations // from the header. at::Tensor & unpack(Tensor & t, const char * name, int pos); const at::Tensor & unpack(const Tensor & t, const char * name, int pos); at::Tensor unpack_opt(const Tensor & t, const char * name, int pos); std::vector unpack(at::TensorList tl, const char *name, int pos); void backward(const Tensor& self, const Tensor& gradient, bool keep_graph, bool create_graph); void set_data(const Tensor & self, const Tensor & new_data); Tensor data(const Tensor & self); bool is_leaf(const Tensor & self); int64_t output_nr(const Tensor & self); int64_t _version(const Tensor & self); Tensor & copy_(Tensor & self, const Tensor & src, bool non_blocking); Tensor & resize_(Tensor & self, IntArrayRef size); Tensor & resize_as_(Tensor & self, const Tensor & the_template); Tensor detach(const Tensor & self); Tensor & detach_(Tensor & self); }; }} // namespace torch::autograd