trainf_ocr_class_mlpT_trainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp (Operator)
Name
trainf_ocr_class_mlpT_trainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp — Trainieren eines OCR-Klassifikators.
Signatur
void TrainfOcrClassMlp(const HTuple& OCRHandle, const HTuple& TrainingFile, const HTuple& MaxIterations, const HTuple& WeightTolerance, const HTuple& ErrorTolerance, HTuple* Error, HTuple* ErrorLog)
double HOCRMlp::TrainfOcrClassMlp(const HTuple& TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const HString& TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const char* TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
double HOCRMlp::TrainfOcrClassMlp(const wchar_t* TrainingFile, Hlong MaxIterations, double WeightTolerance, double ErrorTolerance, HTuple* ErrorLog) const
(Nur Windows)
static void HOperatorSet.TrainfOcrClassMlp(HTuple OCRHandle, HTuple trainingFile, HTuple maxIterations, HTuple weightTolerance, HTuple errorTolerance, out HTuple error, out HTuple errorLog)
double HOCRMlp.TrainfOcrClassMlp(HTuple trainingFile, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog)
double HOCRMlp.TrainfOcrClassMlp(string trainingFile, int maxIterations, double weightTolerance, double errorTolerance, out HTuple errorLog)
Beschreibung
trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp trainiert den OCR-Klassifikator
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle mit den Trainingszeichen, die in den durch
TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_file angegebenen OCR-Trainingsdateien enthalten
sind. Die Trainingsdateien müssen zuvor, z.B. mit
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainfwrite_ocr_trainf, erzeugt worden sein.
Die restlichen Parameter haben dieselbe Bedeutung wie bei
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp und sind dort ausführlich beschrieben. Eine
Regularisierung des OCR-Klassifikators und eine automatische
Bestimmung der Regularisierungsparameter (siehe
set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpset_regularization_params_ocr_class_mlp) wird beim Training
berücksichtigt. Weiterhin werden vor dem eigentlichen Training die
Trainingsdaten für die Rückweisungsklasse erzeugt, falls eine
Rückweisungsklasse mittels
set_rejection_params_ocr_class_mlpset_rejection_params_ocr_class_mlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpSetRejectionParamsOcrClassMlpset_rejection_params_ocr_class_mlp spezifiziert wurde.
Es ist zu beachten, dass Trainingszeichen, die keine entsprechende
Klasse im Klassifikator OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle haben, verworfen werden.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Parameter
OCRHandleOCRHandleOCRHandleOCRHandleOCRHandleocrhandle (input_control, Zustand wird modifiziert) ocr_mlp → HOCRMlp, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle des OCR-Klassifikators.
TrainingFileTrainingFileTrainingFileTrainingFiletrainingFiletraining_file (input_control) filename.read(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Namen der Trainingsdateien.
Defaultwert:
'ocr.trf'
"ocr.trf"
"ocr.trf"
"ocr.trf"
"ocr.trf"
"ocr.trf"
Dateiendung: .trf, .otr
MaxIterationsMaxIterationsMaxIterationsMaxIterationsmaxIterationsmax_iterations (input_control) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Maximale Anzahl von Iterationen des
Optimierungsverfahrens.
Defaultwert: 200
Wertevorschläge: 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300
WeightToleranceWeightToleranceWeightToleranceWeightToleranceweightToleranceweight_tolerance (input_control) real → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Schwellenwert für den Unterschied der Gewichte
des MLP zwischen zwei Iterationen des
Optimierungsverfahrens.
Defaultwert: 1.0
Wertevorschläge: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriktion: WeightTolerance >= 1.0e-8
ErrorToleranceErrorToleranceErrorToleranceErrorToleranceerrorToleranceerror_tolerance (input_control) real → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Schwellenwert für den Unterschied des mittleren
Fehlers des MLP auf den Trainingsdaten zwischen
zwei Iterationen des Optimierungsverfahrens.
Defaultwert: 0.01
Wertevorschläge: 1.0, 0.1, 0.01, 0.001, 0.0001, 0.00001
Restriktion: ErrorTolerance >= 1.0e-8
ErrorErrorErrorErrorerrorerror (output_control) real → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Mittlerer Fehler des MLP auf den Trainingsdaten.
ErrorLogErrorLogErrorLogErrorLogerrorLogerror_log (output_control) real-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Mittlerer Fehler des MLP auf den Trainingsdaten
pro Iteration des Optimierungsverfahrens.
Beispiel (HDevelop)
* Train an OCR classifier
read_ocr_trainf_names ('ocr.trf', CharacterNames, CharacterCount)
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, 80, \
'none', 81, 42, OCRHandle)
trainf_ocr_class_mlp (OCRHandle, 'ocr.trf', 100, 1, 0.01, Error, ErrorLog)
write_ocr_class_mlp (OCRHandle, 'ocr.omc')
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp den Wert TRUE. Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
Falls trainf_ocr_class_mlptrainf_ocr_class_mlpTrainfOcrClassMlpTrainfOcrClassMlpTrainfOcrClassMlptrainf_ocr_class_mlp den Fehler 9211 (Matrix ist nicht
positiv definit) bei Preprocessing =
'canonical_variates'"canonical_variates""canonical_variates""canonical_variates""canonical_variates""canonical_variates" zurückliefert, bedeutet dies
typischerweise, dass für die verschiedenen Klassen zu wenige
Trainingsmuster gespeichert worden sind.
Für diesen Fall ist es sinnvoll, Preprocessing auf
'normalization'"normalization""normalization""normalization""normalization""normalization" zu setzen. Ansonsten ist es auch möglich,
mehr Trainingsmuster hinzuzufügen.
Vorgänger
create_ocr_class_mlpcreate_ocr_class_mlpCreateOcrClassMlpCreateOcrClassMlpCreateOcrClassMlpcreate_ocr_class_mlp,
write_ocr_trainfwrite_ocr_trainfWriteOcrTrainfWriteOcrTrainfWriteOcrTrainfwrite_ocr_trainf,
append_ocr_trainfappend_ocr_trainfAppendOcrTrainfAppendOcrTrainfAppendOcrTrainfappend_ocr_trainf,
write_ocr_trainf_imagewrite_ocr_trainf_imageWriteOcrTrainfImageWriteOcrTrainfImageWriteOcrTrainfImagewrite_ocr_trainf_image,
set_regularization_params_ocr_class_mlpset_regularization_params_ocr_class_mlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpSetRegularizationParamsOcrClassMlpset_regularization_params_ocr_class_mlp
Nachfolger
do_ocr_single_class_mlpdo_ocr_single_class_mlpDoOcrSingleClassMlpDoOcrSingleClassMlpDoOcrSingleClassMlpdo_ocr_single_class_mlp,
do_ocr_multi_class_mlpdo_ocr_multi_class_mlpDoOcrMultiClassMlpDoOcrMultiClassMlpDoOcrMultiClassMlpdo_ocr_multi_class_mlp,
write_ocr_class_mlpwrite_ocr_class_mlpWriteOcrClassMlpWriteOcrClassMlpWriteOcrClassMlpwrite_ocr_class_mlp
Alternativen
read_ocr_class_mlpread_ocr_class_mlpReadOcrClassMlpReadOcrClassMlpReadOcrClassMlpread_ocr_class_mlp
Siehe auch
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp
Modul
OCR/OCV