apply_dl_classifierT_apply_dl_classifierApplyDlClassifierApplyDlClassifierapply_dl_classifier应用深度学习分类器(算子)
名称
apply_dl_classifierT_apply_dl_classifierApplyDlClassifierApplyDlClassifierapply_dl_classifier — 使用基于深度学习的分类器推理一组图像的类关系。
警告
apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 已过时,仅出于向后兼容性考虑而保留。新应用程序应改用基于 CNN 的算子 apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model。
签名
描述
apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 将由 DLClassifierHandleDLClassifierHandleDLClassifierHandleDLClassifierHandleDLClassifierHandledlclassifier_handle 提供的基于深度学习的分类器应用于存储在输入对象元组 ImagesImagesImagesImagesimagesimages 的输入图像集。它将结果返回至结果句柄 DLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandledlclassifier_result_handle。有关如何从 DLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandledlclassifier_result_handle 中检索对应结果的信息,请参阅算子 get_dl_classifier_resultget_dl_classifier_resultGetDlClassifierResultGetDlClassifierResultGetDlClassifierResultget_dl_classifier_result 的文档。
元组 ImagesImagesImagesImagesimagesimages 可包含任意数量待处理的图像,这些图像可在单次算子调用中处理,且通常与分类器参数 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 无关。请注意,此情况仅适用于 apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier,而不适用于 train_dl_classifier_batchtrain_dl_classifier_batchTrainDlClassifierBatchTrainDlClassifierBatchTrainDlClassifierBatchtrain_dl_classifier_batch。这是因为 apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 始终同时对最多包含 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 张图像的批次进行分类,无论该批次是否已填满。因此,当集合 ImagesImagesImagesImagesimagesimages 中的图像数量超过 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 时,apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 会在内部迭代处理所需数量的批次。对于包含少于 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 张图像的 ImagesImagesImagesImagesimagesimages 元组,系统会将其填充至完整批次。这意味着处理特定批次所需的运行时间与该批次是否填满或仅包含单张图像无关。此外,若单次调用算子时分类的图像少于 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size",网络仍需消耗与完整批次相同的内存。因此,为提升效率,建议根据单次调用中处理的图像数量调整 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 。当前 'batch_size'"batch_size""batch_size""batch_size""batch_size""batch_size" 值可通过 get_dl_classifier_paramget_dl_classifier_paramGetDlClassifierParamGetDlClassifierParamGetDlClassifierParamget_dl_classifier_param 获取。
请注意,在将图像输入 apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 算子之前必须进行预处理,以确保其尺寸、灰度值范围、通道数及类型正确。特别强调图像类型:图像必须为 'real' 类型。若需进行转换,可使用 convert_image_typeconvert_image_typeConvertImageTypeConvertImageTypeConvertImageTypeconvert_image_type 算子。函数 preprocess_dl_classifier_images 提供了关于如何实现此预处理阶段的详细指导。
有关基于深度学习的分类概念的说明,请参阅 深度学习 / 分类 一章的引言。涉及此遗留算子的工作流在
遗留 / 深度学习分类 一章中有详细说明。
注意
要运行此算子,当 'runtime'"runtime""runtime""runtime""runtime""runtime" 设置为 'gpu'"gpu""gpu""gpu""gpu""gpu" 时需要 cuDNN 和 cuBLAS,详见 set_dl_classifier_paramset_dl_classifier_paramSetDlClassifierParamSetDlClassifierParamSetDlClassifierParamset_dl_classifier_param。更多详细信息,请参阅 “安装指南” 中的“深度学习及基于深度学习方法的要求”一章。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
ImagesImagesImagesImagesimagesimages (输入对象) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (real)
输入图像的元组。
DLClassifierHandleDLClassifierHandleDLClassifierHandleDLClassifierHandleDLClassifierHandledlclassifier_handle (输入控制) dl_classifier → HDlClassifier, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
基于深度学习分类器的句柄。
DLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandleDLClassifierResultHandledlclassifier_result_handle (输出控制) dl_classifier_result → HDlClassifierResult, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
深度学习分类结果的句柄。
结果
如果参数有效,算子
apply_dl_classifierapply_dl_classifierApplyDlClassifierApplyDlClassifierApplyDlClassifierapply_dl_classifier 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
可能的前趋
read_dl_classifierread_dl_classifierReadDlClassifierReadDlClassifierReadDlClassifierread_dl_classifier,
train_dl_classifier_batchtrain_dl_classifier_batchTrainDlClassifierBatchTrainDlClassifierBatchTrainDlClassifierBatchtrain_dl_classifier_batch,
set_dl_classifier_paramset_dl_classifier_paramSetDlClassifierParamSetDlClassifierParamSetDlClassifierParamset_dl_classifier_param
可能的后继
get_dl_classifier_resultget_dl_classifier_resultGetDlClassifierResultGetDlClassifierResultGetDlClassifierResultget_dl_classifier_result,
clear_dl_classifierclear_dl_classifierClearDlClassifierClearDlClassifierClearDlClassifierclear_dl_classifier
替代
apply_dl_modelapply_dl_modelApplyDlModelApplyDlModelApplyDlModelapply_dl_model,
classify_class_mlpclassify_class_mlpClassifyClassMlpClassifyClassMlpClassifyClassMlpclassify_class_mlp,
classify_class_svmclassify_class_svmClassifyClassSvmClassifyClassSvmClassifyClassSvmclassify_class_svm
模块
深度学习推理