Home / Class/ multi_margin_inner_sum_cpu Class — pytorch Architecture

multi_margin_inner_sum_cpu Class — pytorch Architecture

Architecture documentation for the multi_margin_inner_sum_cpu class in LossMultiMargin.cpp from the pytorch codebase.

Entity Profile

Source Code

aten/src/ATen/native/LossMultiMargin.cpp lines 21–48

template <typename scalar_t>
inline scalar_t multi_margin_inner_sum_cpu(
    const scalar_t* input_data,
    const scalar_t* weight_data,
    const int p,
    const scalar_t margin,
    const int64_t dim,
    const int64_t target_idx) {
  const scalar_t input_target = input_data[target_idx];
  scalar_t sum = 0;
  for (const auto d : c10::irange(dim)) {
    if (d == target_idx) {
      continue;
    }

    const scalar_t z = margin - input_target + input_data[d];
    if (z > 0) {
      scalar_t h = (p == 1) ? z : z * z;
      if (weight_data != nullptr) {
        h *= weight_data[target_idx];
      }
      sum += h;
    }
  }

  sum /= dim;
  return sum;
}

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free