长度设置器¶
- class torchdata.datapipes.iter.LengthSetter(source_datapipe: IterDataPipe[T_co], length: int)¶
设置 DataPipe 的长度属性,该属性由
__len__
返回(函数名:set_length
)。这可以在 DataPipe 之后使用,这些 DataPipe 的最终长度事先无法得知(例如,filter
)。如果您确定地知道最终长度,则可以手动设置它,然后 DataLoader 或其他 DataPipe 可以使用它。注意
此 DataPipe 与
Header
不同,因为这不会限制从 DataPipe 中可以产生的元素数量;这严格用于设置属性,以便稍后可以使用它。- 参数::
source_datapipe – DataPipe
length – 将设置为长度的整数值
示例
>>> from torchdata.datapipes.iter import IterableWrapper >>> dp = IterableWrapper(range(10)).filter(lambda x: x < 5).set_length(3) >>> list(dp) # Notice that the number of elements yielded is unchanged [0, 1, 2, 3, 4] >>> len(dp) 3 >>> header_dp = IterableWrapper(range(10)).filter(lambda x: x < 5).header(3) >>> list(header_dp) # Use `.header()` if you want to limit the number of elements yielded [0, 1, 2] >>> len(header_dp) 3