optimize_dl_model_for_inferenceT_optimize_dl_model_for_inferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceoptimize_dl_model_for_inference (Operator)

Name

optimize_dl_model_for_inferenceT_optimize_dl_model_for_inferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceoptimize_dl_model_for_inference — Optimiere ein Modell für die Inferenz auf einer Einheit über die AI2-Schnittstelle.

Signatur

optimize_dl_model_for_inference( : : DLModelHandle, DLDeviceHandle, Precision, DLSamples, GenParam : DLModelHandleConverted, ConversionReport)

Herror T_optimize_dl_model_for_inference(const Htuple DLModelHandle, const Htuple DLDeviceHandle, const Htuple Precision, const Htuple DLSamples, const Htuple GenParam, Htuple* DLModelHandleConverted, Htuple* ConversionReport)

void OptimizeDlModelForInference(const HTuple& DLModelHandle, const HTuple& DLDeviceHandle, const HTuple& Precision, const HTuple& DLSamples, const HTuple& GenParam, HTuple* DLModelHandleConverted, HTuple* ConversionReport)

HDlModel HDlModel::OptimizeDlModelForInference(const HDlDeviceArray& DLDeviceHandle, const HString& Precision, const HDictArray& DLSamples, const HDict& GenParam, HDict* ConversionReport) const

HDlModel HDlModel::OptimizeDlModelForInference(const HDlDevice& DLDeviceHandle, const HString& Precision, const HDictArray& DLSamples, const HDict& GenParam, HDict* ConversionReport) const

HDlModel HDlModel::OptimizeDlModelForInference(const HDlDevice& DLDeviceHandle, const char* Precision, const HDictArray& DLSamples, const HDict& GenParam, HDict* ConversionReport) const

HDlModel HDlModel::OptimizeDlModelForInference(const HDlDevice& DLDeviceHandle, const wchar_t* Precision, const HDictArray& DLSamples, const HDict& GenParam, HDict* ConversionReport) const   (Nur Windows)

static void HOperatorSet.OptimizeDlModelForInference(HTuple DLModelHandle, HTuple DLDeviceHandle, HTuple precision, HTuple DLSamples, HTuple genParam, out HTuple DLModelHandleConverted, out HTuple conversionReport)

HDlModel HDlModel.OptimizeDlModelForInference(HDlDevice[] DLDeviceHandle, string precision, HDict[] DLSamples, HDict genParam, out HDict conversionReport)

HDlModel HDlModel.OptimizeDlModelForInference(HDlDevice DLDeviceHandle, string precision, HDict[] DLSamples, HDict genParam, out HDict conversionReport)

def optimize_dl_model_for_inference(dlmodel_handle: HHandle, dldevice_handle: MaybeSequence[HHandle], precision: str, dlsamples: Sequence[HHandle], gen_param: HHandle) -> Tuple[HHandle, HHandle]

Beschreibung

Der Operator optimize_dl_model_for_inferenceoptimize_dl_model_for_inferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceoptimize_dl_model_for_inference optimiert das Eingabe-Modell DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle für die Inferenz auf der Einheit DLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandledldevice_handle und gibt das optimierte Modell in DLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConverteddlmodel_handle_converted zurück. Dieser Operator hat zwei unterschiedliche Funktionalitäten: Das Casten der Modell-Präzision in PrecisionPrecisionPrecisionPrecisionprecisionprecision und Kalibrieren des Modells basierend auf den gegebenen DLSamplesDLSamplesDLSamplesDLSamplesDLSamplesdlsamples. Zusätzlich kann in beiden Fällen die Modellarchitektur für das DLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandledldevice_handle optimiert werden.

Der Parameter DLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandledldevice_handle gibt die Deep-Learning-Einheit an, für welche das Modell optimiert wird. Ob die Einheit die Optimierung unterstützt, kann über get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param mit 'conversion_supported'"conversion_supported""conversion_supported""conversion_supported""conversion_supported""conversion_supported" ermittelt werden. Nach einer erfolgreichen Ausführung von optimize_dl_model_for_inferenceoptimize_dl_model_for_inferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceoptimize_dl_model_for_inference wird für das Ausgabe-Modell DLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConverteddlmodel_handle_converted der Parameter 'precision_is_converted'"precision_is_converted""precision_is_converted""precision_is_converted""precision_is_converted""precision_is_converted" auf 'true'"true""true""true""true""true" gesetzt. Zusätzlich wird die Deep-Learning-Einheit automatisch für das Modell gesetzt, falls sie die angefragte Genauigkeit PrecisionPrecisionPrecisionPrecisionprecisionprecision unterstützt. Welche Genauigkeiten die Einheit unterstützt, kann über get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param mit 'precisions'"precisions""precisions""precisions""precisions""precisions" ermittelt werden.

Der Parameter PrecisionPrecisionPrecisionPrecisionprecisionprecision gibt die Genauigkeit an, in die das Modell umgerechnet werden soll. Standardmäßig haben Modelle, die von HALCON geliefert werden die PrecisionPrecisionPrecisionPrecisionprecisionprecision 'float32'"float32""float32""float32""float32""float32". Die folgenden Werte werden für PrecisionPrecisionPrecisionPrecisionprecisionprecision unterstützt:

Der Parameter DLSamplesDLSamplesDLSamplesDLSamplesDLSamplesdlsamples gibt die Samples an, auf welchen die Kalibrierung durchgeführt wird. Folglich sollten sie repräsentativ sein. Es wird empfohlen, sie aus dem Trainingssplit bereitzustellen. Für die meisten Anwendungen reichen 10-20 Samples pro Klasse für gute Ergebnisse.

Beachten Sie, dass die Samples für einen reinen Cast-Prozess nicht benötigt werden. In diesem Fall kann für DLSamplesDLSamplesDLSamplesDLSamplesDLSamplesdlsamples ein leeres Tupel übergeben werden.

Der Parameter GenParamGenParamGenParamGenParamgenParamgen_param legt weitere, Einheitenspezifische Parameter und deren Werte fest. Welche Parameter für das gegebene DLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandledldevice_handle in GenParamGenParamGenParamGenParamgenParamgen_param zu setzen sind sowie deren Defaultwerte, kann über den Operator get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param mit dem Parameter 'optimize_for_inference_params'"optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params" abgefragt werden.

Beachte, gewisse Einheiten erwarten auch nur ein leeres Dictionary.

Der Parameter ConversionReportConversionReportConversionReportConversionReportconversionReportconversion_report gibt einen Report-Dictionary mit Informationen zur Konvertierung zurück.

Achtung

Dieser Operator kann nur über ein AI2-Interface verwendet werden. Außerdem können nach der Konvertierung keine Parameter mehr mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param für DLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConverteddlmodel_handle_converted gesetzt werden (außer 'runtime'"runtime""runtime""runtime""runtime""runtime" und 'device'"device""device""device""device""device"). Beim Setzen muss das 'device'"device""device""device""device""device" oder die 'runtime'"runtime""runtime""runtime""runtime""runtime" aber vom gleichen AI2-Interface sein, mit dem das Modell optimiert worden ist.

Ausführungsinformationen

Parameter

DLModelHandleDLModelHandleDLModelHandleDLModelHandleDLModelHandledlmodel_handle (input_control)  dl_model HDlModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Eingabe-Modell.

DLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandleDLDeviceHandledldevice_handle (input_control)  dl_device(-array) HDlDevice, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Einheit-Handle, das für die Optimierung verwendet wird.

PrecisionPrecisionPrecisionPrecisionprecisionprecision (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Präzision, in die das Modell konvertiert werden soll.

DLSamplesDLSamplesDLSamplesDLSamplesDLSamplesdlsamples (input_control)  dict-array HDict, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Samples, die für die Optimierung benötigt werden.

GenParamGenParamGenParamGenParamgenParamgen_param (input_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Parameter Dictionary für Optimierung.

DLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConvertedDLModelHandleConverteddlmodel_handle_converted (output_control)  dl_model HDlModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ausgabe-Modell mit neuer Präzision.

ConversionReportConversionReportConversionReportConversionReportconversionReportconversion_report (output_control)  dict HDict, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Ausgabe-Report der Optimierung.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert optimize_dl_model_for_inferenceoptimize_dl_model_for_inferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceOptimizeDlModelForInferenceoptimize_dl_model_for_inference den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

train_dl_model_batchtrain_dl_model_batchTrainDlModelBatchTrainDlModelBatchTrainDlModelBatchtrain_dl_model_batch, query_available_dl_devicesquery_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices

Nachfolger

set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param, apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model

Modul

Foundation. Dieser Operator verwendet dynamische Lizensierung (siehe ``Installation Guide''). Welches der folgenden Module benötigt wird hängt von der Anwendung des Operators ab:
3D Metrology, OCR/OCV, Deep Learning Inference