函数简介
find_dl_samples
是一个用于检索满足特定条件的深度学习数据集样本索引的过程。让我们逐步详细解释它的输入参数和功能:
-
Samples
: 这是包含样本字典或样本字典元组的输入参数。这些样本是将要被搜索的对象。 -
KeyName
: 用于指定要查找的条目的键名。在样本字典中,每个样本都有一个或多个键,这些键对应于样本的不同特征或属性。KeyName
就是你希望根据哪个键来进行搜索匹配的名称。 -
KeyValue
: 这是在具有指定KeyName
条目的样本中要查找的值。可以是数字、字符串或混合元组值。搜索将基于此值进行匹配。 -
Mode
:Mode
参数定义了搜索的行为方式。它可以取三个值之一:
Mode
参数用于定义在搜索中的匹配行为。具体而言,它指定了如何对KeyName
条目下的样本值进行匹配。以下是Mode
参数的三种可能取值:-
'match'
: 在这个模式下,样本在KeyName
条目下的值必须与KeyValue
完全匹配。这表示只有当样本值与指定值一模一样时,才会被认为是匹配的。 -
'or'
: 在这个模式下,样本在KeyName
条目下的值必须是一个单一元素,并且该元素必须与KeyValue
中的任何元素之一匹配。这表示只要样本值的某个元素与KeyValue
中的任何元素匹配,就会被认为是匹配的。 -
'contain'
: 在这个模式下,样本在KeyName
条目下的值的任何元素都必须与KeyValue
中的任何元素之一匹配。这表示只有当样本值的所有元素都与KeyValue
中的某个元素匹配时,才会被认为是匹配的。
-
通过使用这些不同的匹配模式,你可以更精细地控制搜索行为,以满足你的特定需求。例如,如果你希望找到包含某个特定元素的样本,可以使用 'or'
模式。如果你希望找到所有元素都匹配的样本,可以使用 'contain'
模式。
SampleIndices
,它是一个包含索引的元组。这些索引表示满足指定条件的样本在 Samples
中的位置。如果没有匹配,或者 Samples
为空,将返回空元组 []
。
这个过程对于在深度学习任务中选择特定样本或过滤数据集非常有用,例如在训练模型之前对数据集进行预处理或分析。
代码上下文
preprocess_dl_dataset (DLDataset, DataDirectory, DLPreprocessParam, GenParam, DLDatasetFilename)
find_dl_samples (DLDataset.samples, 'split', 'train', 'match', SampleIndices)
tuple_shuffle (SampleIndices, ShuffledIndices)
read_dl_samples (DLDataset, ShuffledIndices[0:9], DLSampleBatchDisplay)
find_dl_samples (DLDataset.samples, ‘split’, ‘train’, ‘match’, SampleIndices)
表示,在样本里找到key为’split’,value 为 ‘train’ 的样本,并返回该样本的索引。