query_available_dl_devicesT_query_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices (Operator)

Name

query_available_dl_devicesT_query_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices — Erzeugen einer Liste von Hardware-Einheiten für Deep Learning-basierte Anwendungen

Signatur

query_available_dl_devices( : : GenParamName, GenParamValue : DLDeviceHandles)

Herror T_query_available_dl_devices(const Htuple GenParamName, const Htuple GenParamValue, Htuple* DLDeviceHandles)

void QueryAvailableDlDevices(const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DLDeviceHandles)

static HDlDeviceArray HDlDevice::QueryAvailableDlDevices(const HTuple& GenParamName, const HTuple& GenParamValue)

void HDlDevice::QueryAvailableDlDevices(const HString& GenParamName, const HString& GenParamValue)

void HDlDevice::QueryAvailableDlDevices(const char* GenParamName, const char* GenParamValue)

void HDlDevice::QueryAvailableDlDevices(const wchar_t* GenParamName, const wchar_t* GenParamValue)   (Nur Windows)

static void HOperatorSet.QueryAvailableDlDevices(HTuple genParamName, HTuple genParamValue, out HTuple DLDeviceHandles)

static HDlDevice[] HDlDevice.QueryAvailableDlDevices(HTuple genParamName, HTuple genParamValue)

void HDlDevice.QueryAvailableDlDevices(string genParamName, string genParamValue)

def query_available_dl_devices(gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> Sequence[HHandle]

def query_available_dl_devices_s(gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[int, float, str]]) -> HHandle

Beschreibung

query_available_dl_devicesquery_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices gibt eine Liste von Handles zurück. Jedes Handle entspricht einer Hardware-Einheit (im Folgenden Einheit genannt), welche für das Trainieren oder Inferieren von Deep Learning-Modellen zur Verfügung stehen.

Eine Einheit für Deep Learning ist entweder standardmäßig von HALCON oder über eine AI²-Schnittstelle unterstützt.

Die Einheiten, die standardmäßig von HALCON unterstützt werden, entsprechen jenen die mit set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param über 'runtime'"runtime""runtime""runtime""runtime""runtime" = 'cpu'"cpu""cpu""cpu""cpu""cpu" oder 'runtime'"runtime""runtime""runtime""runtime""runtime" = 'gpu'"gpu""gpu""gpu""gpu""gpu" für ein Deep Learning-Modell gesetzt werden können. Für diese Einheiten wird eine HALCON interne Implementierung für die Inferenz oder das Training des Modells ausgeführt. Siehe Deep Learning für mehr Details.

Einheiten, die über die AI²-Schnittstelle unterstützt werden, können ebenfalls über set_dl_model_paramset_dl_model_paramSetDlModelParamSetDlModelParamSetDlModelParamset_dl_model_param gesetzt werden. Die Inferenz des Deep Learning Modells wird in diesem Fall jedoch nicht durch HALCON, sondern auf der Einheit selbst.

query_available_dl_devicesquery_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices gibt für jede Einheit, die von HALCON für Deep Learning-Anwendungen unterstützt wird, ein Handle zurück. Also sowohl für jene Einheiten auf denen HALCON läuft als auch für mögliche Inference Engines.

Mit GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name kann nach Einheiten gefiltert werden. Zum Filtern können alle Werte GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name, die von get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param zur Verfügung gestellt werden und nicht ein Handle für GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value zurückgeben, verwendet werden. Eine Liste von unterstützten Werten ist in der Operatorreferenz von get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param zu finden. Zusätzlich sind noch folgende Werte für GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name unterstützt:

'runtime'"runtime""runtime""runtime""runtime""runtime":

Die Einheiten, die von HALCON für diesen Einheiten-Typ unterstützt werden.

Mögliche Werte (standardmäßig): 'cpu'"cpu""cpu""cpu""cpu""cpu", 'gpu'"gpu""gpu""gpu""gpu""gpu".

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name kann mehrere gleichnamige Einträge enthalten. In diesem Fall werden die entsprechenden Werte bei der Filterung mit einem logischen 'oder' verbunden. Beispiele wie der Filter verwendet werden kann sind im Beispielcode zu finden.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Name des generischen Parameters.

Defaultwert: []

Werteliste: 'ai_accelerator_interface'"ai_accelerator_interface""ai_accelerator_interface""ai_accelerator_interface""ai_accelerator_interface""ai_accelerator_interface", 'calibration_precisions'"calibration_precisions""calibration_precisions""calibration_precisions""calibration_precisions""calibration_precisions", 'cast_precisions'"cast_precisions""cast_precisions""cast_precisions""cast_precisions""cast_precisions", 'conversion_supported'"conversion_supported""conversion_supported""conversion_supported""conversion_supported""conversion_supported", 'id'"id""id""id""id""id", 'inference_only'"inference_only""inference_only""inference_only""inference_only""inference_only", 'name'"name""name""name""name""name", 'optimize_for_inference_params'"optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params""optimize_for_inference_params", 'precisions'"precisions""precisions""precisions""precisions""precisions", 'runtime'"runtime""runtime""runtime""runtime""runtime", 'settable_device_params'"settable_device_params""settable_device_params""settable_device_params""settable_device_params""settable_device_params", 'type'"type""type""type""type""type"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[int, float, str]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Wert des generischen Parameters.

Defaultwert: []

Wertevorschläge:

DLDeviceHandlesDLDeviceHandlesDLDeviceHandlesDLDeviceHandlesDLDeviceHandlesdldevice_handles (output_control)  dl_device(-array) HDlDevice, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Liste von DLDevice Handles

Beispiel (HDevelop)

* Query all deep-learning-capable hardware devices
query_available_dl_devices ([], [], DLDeviceHandles)

* Query all GPUs with ID 0 or 2
query_available_dl_devices (['type', 'id', 'id'], ['gpu', 0, 2],\
                            DLDeviceHandles)

* Query the unique GPU with ID 1 supported by HALCON
query_available_dl_devices (['runtime', 'id'], ['gpu', 1], DLDeviceHandles)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert query_available_dl_devicesquery_available_dl_devicesQueryAvailableDlDevicesQueryAvailableDlDevicesQueryAvailableDlDevicesquery_available_dl_devices den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

get_dl_device_paramget_dl_device_paramGetDlDeviceParamGetDlDeviceParamGetDlDeviceParamget_dl_device_param

Modul

Foundation