docs: protected static <T extends IEvaluation> T attempFromLegacyFromJson(String json, IllegalArgumentException originalException) {
          if (json.contains("org.deeplearning4j.eval.Evaluation")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.Evaluation", "org.nd4j.evaluation.classification.Evaluation");
              return (T) fromJson(newJson, Evaluation.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.EvaluationBinary")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.EvaluationBinary", "org.nd4j.evaluation.classification.EvaluationBinary")
                      .replaceAll("org.deeplearning4j.eval.ROC", "org.nd4j.evaluation.classification.ROC")
                      .replaceAll("org.deeplearning4j.eval.curves.", "org.nd4j.evaluation.curves.");
              return (T) fromJson(newJson, EvaluationBinary.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.EvaluationCalibration")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.EvaluationCalibration", "org.nd4j.evaluation.classification.EvaluationCalibration")
                      .replaceAll("org.deeplearning4j.eval.curves.", "org.nd4j.evaluation.curves.");
              return (T) fromJson(newJson, EvaluationCalibration.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.ROCBinary")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.ROCBinary", "org.nd4j.evaluation.classification.ROCBinary")
                      .replaceAll("org.deeplearning4j.eval.ROC", "org.nd4j.evaluation.classification.ROC")   //Nested ROC instances internally
                      .replaceAll("org.deeplearning4j.eval.curves.", "org.nd4j.evaluation.curves.");
  
              return (T) fromJson(newJson, ROCBinary.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.ROCMultiClass")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.ROCMultiClass", "org.nd4j.evaluation.classification.ROCMultiClass")
                      .replaceAll("org.deeplearning4j.eval.ROC", "org.nd4j.evaluation.classification.ROC")   //Nested ROC instances internally
                      .replaceAll("org.deeplearning4j.eval.curves.", "org.nd4j.evaluation.curves.");
              return (T) fromJson(newJson, ROCMultiClass.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.ROC")) {       //Has to be checked after ROCBinary/ROCMultiClass due to it being a prefix
              String newJson = json.replaceAll("org.deeplearning4j.eval.ROC", "org.nd4j.evaluation.classification.ROC")
                      .replaceAll("org.deeplearning4j.eval.curves.", "org.nd4j.evaluation.curves.");
              return (T) fromJson(newJson, ROC.class);
          }
  
          if (json.contains("org.deeplearning4j.eval.RegressionEvaluation")) {
              String newJson = json.replaceAll("org.deeplearning4j.eval.RegressionEvaluation", "org.nd4j.evaluation.regression.RegressionEvaluation");
              return (T) fromJson(newJson, RegressionEvaluation.class);
          }
  
          throw originalException;
      }