Mapper¶
- class torchdata.datapipes.iter.Mapper(datapipe: IterDataPipe, fn: Callable, input_col=None, output_col=None)¶
对来自源 DataPipe 的每个项目应用一个函数(函数名称:
map
)。该函数可以是任何常规 Python 函数或部分对象。不建议使用 Lambda 函数,因为它不受 pickle 支持。
- 参数:
datapipe – 源可迭代 DataPipe
fn – 应用于每个项目的函数
input_col –
应用
fn
的数据的索引或索引,例如None
作为默认值,将fn
直接应用于数据。整数用于列表/元组。
键用于字典。
output_col –
放置
fn
结果的数据索引。仅当input_col
不为None
时才能指定output_col
None
作为默认值,替换input_col
指定的索引;对于具有多个索引的input_col
,使用最左边的索引,并将其他索引删除。整数用于列表/元组。
-1
表示将结果追加到末尾。键用于字典。新的键是可以接受的。
示例
>>> # xdoctest: +SKIP >>> from torchdata.datapipes.iter import IterableWrapper, Mapper >>> def add_one(x): ... return x + 1 >>> dp = IterableWrapper(range(10)) >>> map_dp_1 = dp.map(add_one) # Invocation via functional form is preferred >>> list(map_dp_1) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> # We discourage the usage of `lambda` functions as they are not serializable with `pickle` >>> # Use `functools.partial` or explicitly define the function instead >>> map_dp_2 = Mapper(dp, lambda x: x + 1) >>> list(map_dp_2) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]