Home / Class/ multilabel_margin_loss_forward_inner_sum_cpu Class — pytorch Architecture

multilabel_margin_loss_forward_inner_sum_cpu Class — pytorch Architecture

Architecture documentation for the multilabel_margin_loss_forward_inner_sum_cpu class in LossMultiLabelMargin.cpp from the pytorch codebase.

Entity Profile

Source Code

aten/src/ATen/native/LossMultiLabelMargin.cpp lines 25–58

template <typename scalar_t>
inline scalar_t multilabel_margin_loss_forward_inner_sum_cpu(
    const scalar_t* input_data,
    const int64_t* target_data,
    scalar_t* is_target_data,
    int64_t dim) {
  using accscalar_t = at::acc_type<scalar_t, false>;
  accscalar_t sum = 0;
  for (const auto ddt : c10::irange(dim)) {
    int64_t target_idx = target_data[ddt];
    if (target_idx < 0) {
      break;
    }
    is_target_data[target_idx] = 1;
  }
  for (const auto dt : c10::irange(dim)) {
    int64_t target_idx = target_data[dt];
    if (target_idx < 0) {
      break;
    }

    scalar_t input_target = input_data[target_idx];
    for (const auto d : c10::irange(dim)) {
      if (!is_target_data[d]) {
        scalar_t z = 1 - input_target + input_data[d];
        if (z > 0) {
          sum += z;
        }
      }
    }
  }

  return sum;
}

Analyze Your Own Codebase

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

Try Supermodel Free