official/projects/yolo/losses/yolo_loss.py
File yolo_loss.py
has 566 lines of code (exceeds 250 allowed). Consider refactoring. Open
Open
# Copyright 2024 The TensorFlow Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
Function __init__
has 17 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def __init__(self,
Function __init__
has 15 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def __init__(self,
Function _compute_loss
has 45 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
"""Per FPN path loss logic used for Yolov3, Yolov4, and Yolo-Tiny."""
if self._box_type == 'scaled':
# Darknet Model Propagates a sigmoid once in back prop so we replicate
# that behaviour
Function _compute_loss
has 39 lines of code (exceeds 25 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
"""Per FPN path loss logic for Yolov4-csp, Yolov4-Large, and Yolov5."""
# Generate shape constants.
shape = tf.shape(true_counts)
batch_size, width, height, num = shape[0], shape[1], shape[2], shape[3]
Function _tiled_global_box_search
has 7 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def _tiled_global_box_search(self,
Function __call__
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def __call__(self, true_counts, inds, y_true, boxes, classes, y_pred):
Function _compute_loss
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
Function _compute_loss
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
Function post_path_aggregation
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def post_path_aggregation(self, loss, box_loss, conf_loss, class_loss,
Function post_path_aggregation
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def post_path_aggregation(self, loss, box_loss, conf_loss, class_loss,
Function _compute_loss
has 6 arguments (exceeds 4 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
Function _compute_loss
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring. Open
Open
def _compute_loss(self, true_counts, inds, y_true, boxes, classes, y_pred):
"""Per FPN path loss logic used for Yolov3, Yolov4, and Yolo-Tiny."""
if self._box_type == 'scaled':
# Darknet Model Propagates a sigmoid once in back prop so we replicate
# that behaviour
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"