tensorflow/models

View on GitHub
research/slim/deployment/model_deploy.py

Summary

Maintainability
D
2 days
Test Coverage

File model_deploy.py has 507 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# Copyright 2016 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
Severity: Major
Found in research/slim/deployment/model_deploy.py - About 1 day to fix

    Function deploy has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
    Open

    def deploy(config,
               model_fn,
               args=None,
               kwargs=None,
               optimizer=None,
    Severity: Minor
    Found in research/slim/deployment/model_deploy.py - About 2 hrs to fix

    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"

    Further reading

    Function _sum_clones_gradients has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

    def _sum_clones_gradients(clone_grads):
      """Calculate the sum gradient for each shared variable across all clones.
    
      This function assumes that the clone_grads has been scaled appropriately by
      1 / num_clones.
    Severity: Minor
    Found in research/slim/deployment/model_deploy.py - About 1 hr to fix

    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"

    Further reading

    Function __init__ has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
    Open

      def __init__(self,
                   num_clones=1,
                   clone_on_cpu=False,
                   replica_id=0,
                   num_replicas=1,
    Severity: Minor
    Found in research/slim/deployment/model_deploy.py - About 1 hr to fix

    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"

    Further reading

    Function variables_device has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
    Open

      def variables_device(self):
        """Returns the device to use for variables created inside the clone.
    
        Returns:
          A value suitable for `tf.device()`.
    Severity: Minor
    Found in research/slim/deployment/model_deploy.py - About 1 hr to fix

    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"

    Further reading

    Function __init__ has 7 arguments (exceeds 4 allowed). Consider refactoring.
    Open

      def __init__(self,
    Severity: Major
    Found in research/slim/deployment/model_deploy.py - About 50 mins to fix

      Function _add_gradients_summaries has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

      def _add_gradients_summaries(grads_and_vars):
        """Add histogram summaries to gradients.
      
        Note: The summaries are also added to the SUMMARIES collection.
      
      
      Severity: Minor
      Found in research/slim/deployment/model_deploy.py - About 45 mins to fix

      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"

      Further reading

      Avoid deeply nested control flow statements.
      Open

                if clone_loss is not None:
                  clones_losses.append(clone_loss)
                # Only use regularization_losses for the first clone
                regularization_losses = None
      Severity: Major
      Found in research/slim/deployment/model_deploy.py - About 45 mins to fix

        Function deploy has 6 arguments (exceeds 4 allowed). Consider refactoring.
        Open

        def deploy(config,
        Severity: Minor
        Found in research/slim/deployment/model_deploy.py - About 45 mins to fix

          Avoid deeply nested control flow statements.
          Open

                    with tf.variable_scope(tf.get_variable_scope(),
                                           reuse=True if i > 0 else None):
                      outputs = model_fn(*args, **kwargs)
                    clones.append(Clone(outputs, clone_scope, clone_device))
          Severity: Major
          Found in research/slim/deployment/model_deploy.py - About 45 mins to fix

            Function _optimize_clone has 5 arguments (exceeds 4 allowed). Consider refactoring.
            Open

            def _optimize_clone(optimizer, clone, num_clones, regularization_losses,
            Severity: Minor
            Found in research/slim/deployment/model_deploy.py - About 35 mins to fix

              Function _gather_clone_loss has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
              Open

              def _gather_clone_loss(clone, num_clones, regularization_losses):
                """Gather the loss for a single clone.
              
                Args:
                  clone: A Clone namedtuple.
              Severity: Minor
              Found in research/slim/deployment/model_deploy.py - About 35 mins to fix

              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"

              Further reading

              There are no issues that match your filters.

              Category
              Status