WuWei1986 / dl4j-ocr-demo

DL4J基于CNN+RNN+CTC实现的不定长文本识别demo
5 stars 1 forks source link

java.lang.IllegalStateException #1

Open bewithme opened 3 years ago

bewithme commented 3 years ago

epoch:0 Exception in thread "main" [2020-12-25 07:37:10]Deeplearning4j UI server is auto-stopping after thread (name: main) died. java.lang.IllegalStateException: Sequence lengths do not match for RnnOutputLayer input and labels:Arrays should be rank 3 with shape [minibatch, size, sequenceLength] - mismatch on dimension 2 (sequence length) - input=[15, 256, 16] vs. label=[15, 19, 8] at org.nd4j.common.base.Preconditions.throwStateEx(Preconditions.java:641) at org.nd4j.common.base.Preconditions.checkState(Preconditions.java:340) at org.deeplearning4j.nn.layers.recurrent.RnnOutputLayer.backpropGradient(RnnOutputLayer.java:63) at org.deeplearning4j.nn.graph.vertex.impl.LayerVertex.doBackward(LayerVertex.java:149) at org.deeplearning4j.nn.graph.ComputationGraph.calcBackpropGradients(ComputationGraph.java:2713) at org.deeplearning4j.nn.graph.ComputationGraph.computeGradientAndScore(ComputationGraph.java:1382) at org.deeplearning4j.nn.graph.ComputationGraph.computeGradientAndScore(ComputationGraph.java:1342) at org.deeplearning4j.optimize.solvers.BaseOptimizer.gradientAndScore(BaseOptimizer.java:170) at org.deeplearning4j.optimize.solvers.StochasticGradientDescent.optimize(StochasticGradientDescent.java:63) at org.deeplearning4j.optimize.Solver.optimize(Solver.java:52) at org.deeplearning4j.nn.graph.ComputationGraph.fitHelper(ComputationGraph.java:1166) at org.deeplearning4j.nn.graph.ComputationGraph.fit(ComputationGraph.java:1116) at org.deeplearning4j.nn.graph.ComputationGraph.fit(ComputationGraph.java:1083)

bewithme commented 3 years ago

这个问题通过如下方式可以绕过

Ocr ocr = new Ocr.Builder() .setEpochs(100) .setBatchSize(15) .setDataSetType("train") .setTimeSeriesLength(16) //此行可以绕过报错 .setMaxLabelLength(16) .setTextChars("_234578acdefgmnpwxy") .setDirPath("dataset/captcha/") .setModelFileName("ocrModel.json") .toOcr();