54 {
55 std::unique_ptr<CTC> ctc(new CTC(labels, null_char, outputs));
56 if (!ctc->ComputeLabelLimits()) {
57 return false;
58 }
59
60
61 GENERIC_2D_ARRAY<float> simple_targets;
62 ctc->ComputeSimpleTargets(&simple_targets);
63
64 float bias_fraction = ctc->CalculateBiasFraction();
65 simple_targets *= bias_fraction;
66 ctc->outputs_ += simple_targets;
68
69
70 GENERIC_2D_ARRAY<double> log_alphas, log_betas;
71 ctc->Forward(&log_alphas);
72 ctc->Backward(&log_betas);
73
74 log_alphas += log_betas;
75 ctc->NormalizeSequence(&log_alphas);
76 ctc->LabelsToClasses(log_alphas, targets);
78 return true;
79}
static void NormalizeProbs(NetworkIO *probs)