tensor_pow_tensor Class — pytorch Architecture
Architecture documentation for the tensor_pow_tensor class in pow_test.cpp from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/test/pow_test.cpp lines 193–236
template<typename Vals, typename Pows>
void tensor_pow_tensor(const Vals vals, c10::ScalarType vals_dtype, Pows pows, c10::ScalarType pows_dtype) {
using T = typename Vals::value_type;
typedef std::numeric_limits< double > dbl;
std::cout.precision(dbl::max_digits10);
const auto vals_tensor = torch::tensor(vals, vals_dtype);
for ([[maybe_unused]] const auto shirt : c10::irange(pows.size())) {
const auto pows_tensor = torch::tensor(pows, pows_dtype);
const auto actual_pow = vals_tensor.pow(pows_tensor);
auto actual_pow_ = vals_tensor.clone();
actual_pow_.pow_(pows_tensor);
auto actual_pow_out = torch::empty_like(vals_tensor);
torch::pow_out(actual_pow_out, vals_tensor, pows_tensor);
auto actual_torch_pow = torch::pow(vals_tensor, pows_tensor);
int i = 0;
for (const auto val : vals) {
const auto pow = pows[i];
const auto exp = typed_pow(T(val), T(pow));
const auto act_pow = actual_pow[i].template item<T>();
assert_eq(val, act_pow, exp);
const auto act_pow_ = actual_pow_[i].template item<T>();
assert_eq(val, act_pow_, exp);
const auto act_pow_out = actual_pow_out[i].template item<T>();
assert_eq(val, act_pow_out, exp);
const auto act_torch_pow = actual_torch_pow[i].template item<T>();
assert_eq(val, act_torch_pow, exp);
i++;
}
std::rotate(pows.begin(), pows.begin() + 1, pows.end());
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free