deeplearning4j/deeplearning4j

View on GitHub

Showing 13,975 of 13,975 total issues

Similar blocks of code found in 2 locations. Consider refactoring.
Open

/*
 *  ******************************************************************************
 *  *
 *  *
 *  * This program and the accompanying materials are made available under the
contrib/blas-lapack-generator/src/main/java/org/deeplearning4j/OpenblasBlasLapackGenerator.java on lines 1..268

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 1339.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Method getOverviewDataForSession has a Cognitive Complexity of 130 (exceeds 5 allowed). Consider refactoring.
Open

    private synchronized void getOverviewDataForSession(String sessionId, RoutingContext rc) {
        Long lastUpdateTime = getLastUpdateTime(sessionId);
        I18N i18N = getI18N(sessionId);

        //First pass (optimize later): query all data...

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

Method importGraph has 527 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    /**
     * Import a Graph based on a {@link IRGraph} model from a GraphDef, with optional import overrides
     *
     * @param irGraph       IRGraph reflecting the needed model import
     * @param importOverride Optional import override for specific ops, keyed by op name

    CudaDataBufferFactory has 133 methods (exceeds 20 allowed). Consider refactoring.
    Open

    @Slf4j
    public class CudaDataBufferFactory implements DataBufferFactory {
        protected DataBuffer.AllocationMode allocationMode;
    
        @Override

      DefaultDataBufferFactory has 131 methods (exceeds 20 allowed). Consider refactoring.
      Open

      public class DefaultDataBufferFactory implements DataBufferFactory {
          protected DataBuffer.AllocationMode allocationMode;
      
      
          @Override

        DataBufferFactory has 131 methods (exceeds 20 allowed). Consider refactoring.
        Open

        public interface DataBufferFactory {
        
            /**
             * Setter for the allocation mode
             * @param allocationMode

          Method fillNDArray has a Cognitive Complexity of 126 (exceeds 5 allowed). Consider refactoring.
          Open

              protected void fillNDArray(Mat image, INDArray ret) {
                  long rows = image.rows();
                  long cols = image.cols();
                  long channels = image.channels();
          
          

          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

          File JCublasNDArrayFactory.java has 1012 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          /*
           *  ******************************************************************************
           *  *
           *  *
           *  * This program and the accompanying materials are made available under the

            BaseDataBuffer has 129 methods (exceeds 20 allowed). Consider refactoring.
            Open

            @Slf4j
            public abstract class BaseDataBuffer implements DataBuffer {
            
                /**
                 * @deprecated Use {@link ND4JSystemProperties#DATABUFFER_TO_STRING_MAX_ELEMENTS}

              Method calcBackpropGradients has a Cognitive Complexity of 122 (exceeds 5 allowed). Consider refactoring.
              Open

                  protected void calcBackpropGradients(boolean clearLayers, boolean truncatedBPTT, INDArray... externalEpsilons) {
                      if (flattenedGradients == null) {
                          initGradientsView();
                      }
              
              

              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

              Transforms has 126 methods (exceeds 20 allowed). Consider refactoring.
              Open

              public class Transforms {
              
              
                  private Transforms() {
                  }

                Similar blocks of code found in 2 locations. Consider refactoring.
                Open

                    override fun serialize(): MapperNamespace.MappingRule {
                        val builder = MapperNamespace.MappingRule.newBuilder()
                        builder.ruleName = name()
                        builder.functionName = name()
                        builder.ruleType = "tensor"
                nd4j/samediff-import/samediff-import-api/src/main/kotlin/org/nd4j/samediff/frameworkimport/rule/tensor/PassThroughMultiTensorMapping.kt on lines 113..161

                Duplicated Code

                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                Tuning

                This issue has a mass of 1202.

                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                Refactorings

                Further Reading

                Similar blocks of code found in 2 locations. Consider refactoring.
                Open

                    override fun serialize(): MapperNamespace.MappingRule {
                        val builder = MapperNamespace.MappingRule.newBuilder()
                        builder.ruleName = name()
                        builder.functionName = name()
                        builder.ruleType = "tensor"
                nd4j/samediff-import/samediff-import-api/src/main/kotlin/org/nd4j/samediff/frameworkimport/rule/tensor/BaseNDArrayMappingRule.kt on lines 132..178

                Duplicated Code

                Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                Tuning

                This issue has a mass of 1202.

                We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                Refactorings

                Further Reading

                File SbeStatsReport.java has 972 lines of code (exceeds 250 allowed). Consider refactoring.
                Open

                /*
                 *  ******************************************************************************
                 *  *
                 *  *
                 *  * This program and the accompanying materials are made available under the

                  Method checkGradients has a Cognitive Complexity of 119 (exceeds 5 allowed). Consider refactoring.
                  Open

                      public static boolean checkGradients(SameDiff sd, Map<String,INDArray> placeholderValues, double eps, double maxRelError, double minAbsError, boolean print,
                                                           boolean exitOnFirstFailure, boolean skipValidation, boolean debugMode, Set<String> skipVariables, Map<String,INDArray> gradCheckMask,
                                                           int maxPerParam, Subset subset) {
                  
                          boolean debugBefore = sd.isDebugMode();

                  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

                  File OpValidation.java has 962 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  /*
                   *  ******************************************************************************
                   *  *
                   *  *
                   *  * This program and the accompanying materials are made available under the

                    Method checkAllModelsForImport has a Cognitive Complexity of 117 (exceeds 5 allowed). Consider refactoring.
                    Open

                        public static TFImportStatus checkAllModelsForImport(File directory, String[] fileExtensions) throws IOException {
                            Preconditions.checkState(directory.isDirectory(), "Specified directory %s is not actually a directory", directory);
                    
                    
                            Collection<File> files = FileUtils.listFiles(directory, fileExtensions, true);

                    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

                    File ParagraphVectors.java has 947 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    /*
                     *  ******************************************************************************
                     *  *
                     *  *
                     *  * This program and the accompanying materials are made available under the

                      Method initFunctionFromProperties has a Cognitive Complexity of 115 (exceeds 5 allowed). Consider refactoring.
                      Open

                          @Deprecated
                          public static void initFunctionFromProperties(String mappedTfName, DifferentialFunction on, Map<String, AttrValue> attributesForNode, NodeDef node, GraphDef graph) {
                              val properties = on.mappingsForFunction();
                              val tfProperties = properties.get(mappedTfName);
                              val fields = DifferentialFunctionClassHolder.getInstance().getFieldsForFunction(on);

                      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

                      File DataSet.java has 938 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      /*
                       *  ******************************************************************************
                       *  *
                       *  *
                       *  * This program and the accompanying materials are made available under the
                        Severity
                        Category
                        Status
                        Source
                        Language