{"record":{"id":"5411ad26054a5e9d","repo":"stanfordnlp/CoreNLP","slug":"initial-weights-are-invalid","errorCode":null,"errorMessage":"Initial weights are invalid!","messagePattern":"Initial weights are invalid!","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"src/edu/stanford/nlp/classify/LinearClassifierFactory.java","lineNumber":924,"sourceCode":"    LinearClassifier<L, F> classifier = new LinearClassifier<>(objective.to2D(weights), dataset.featureIndex(), dataset.labelIndex());\n    return classifier;\n  }\n\n\n  @Override\n  public LinearClassifier<L, F> trainClassifier(GeneralDataset<L, F> dataset) {\n    return trainClassifier(dataset, null);\n  }\n\n  public LinearClassifier<L, F> trainClassifier(GeneralDataset<L, F> dataset, double[] initial) {\n    // Sanity check\n    if (dataset instanceof RVFDataset) {\n      ((RVFDataset<L, F>) dataset).ensureRealValues();\n    }\n    if (initial != null) {\n      for (double weight : initial) {\n        if (Double.isNaN(weight) || Double.isInfinite(weight)) {\n          throw new IllegalArgumentException(\"Initial weights are invalid!\");\n        }\n      }\n    }\n    // Train classifier\n    double[][] weights =  trainWeights(dataset, initial, false);\n    LinearClassifier<L, F> classifier = new LinearClassifier<>(weights, dataset.featureIndex(), dataset.labelIndex());\n    return classifier;\n  }\n\n  public LinearClassifier<L, F> trainClassifierWithInitialWeights(GeneralDataset<L, F> dataset, double[][] initialWeights2D) {\n    double[] initialWeights = (initialWeights2D != null)? ArrayUtils.flatten(initialWeights2D):null;\n    return trainClassifier(dataset, initialWeights);\n  }\n\n  public LinearClassifier<L, F> trainClassifierWithInitialWeights(GeneralDataset<L, F> dataset, LinearClassifier<L,F> initialClassifier) {\n    double[][] initialWeights2D = (initialClassifier != null)? initialClassifier.weights():null;\n    return trainClassifierWithInitialWeights(dataset, initialWeights2D);\n  }","sourceCodeStart":906,"sourceCodeEnd":942,"githubUrl":"https://github.com/stanfordnlp/CoreNLP/blob/1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a/src/edu/stanford/nlp/classify/LinearClassifierFactory.java#L906-L942","documentation":"A sanity-check failure in LinearClassifierFactory: the user-supplied initial weight vector does not match the dimensions of the training dataset's feature/label index (e.g. wrong length or NaN entries), so optimization cannot start from it.","triggerScenarios":"Thrown at src/edu/stanford/nlp/classify/LinearClassifierFactory.java:924 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass an initial weights array of finite doubles with the correct dimension","Initialize weights to zeros if unsure","Validate upstream computations that produced the initial weights"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1b7edd19c4d0d7b1f13a2591425b9b60a0b1af7a","analyzedAt":"2026-09-10T02:24:07.274Z","contentChangedAt":"2026-09-10T02:24:07.274Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}