Compose¶
- class Compose(transforms=[], batch_compose=False, shuffle_indices=None, *, order=None)[源代码]¶
将几个转换组合在一起。
- 参数
transforms (
List
[VisionTransform
]) – 待组合的VisionTransform
列表。batch_compose (
bool
) – 批数据在洗牌时是否保持相同转换顺序。order – 与
VisionTransform
一致
参见
参考用于视觉转换api的
transform
模块。实际案例
>>> import megengine.data.transform as T >>> T.Compose([ ... T.RandomHorizontalFlip(), # 1st ... T.RandomVerticalFlip(), # 2nd ... T.CenterCrop(100), # 3rd ... T.ToMode("CHW"), # 4th ... ], ... shuffle_indices=[(1, 2, 3)] ... )
在本例中,提供了``shuffle_indices``,因此每个输入数据将被打乱顺序:
\[\begin{split}\begin{array}{cc} [{\color{red}1 \quad 2 \quad 3} \quad 4] & [{\color{red}1 \quad 3 \quad 2} \quad 4] \\ [{\color{red}2 \quad 1 \quad 3} \quad 4] & [{\color{red}2 \quad 3 \quad 1} \quad 4] \\ [{\color{red}3 \quad 1 \quad 2} \quad 4] & [{\color{red}3 \quad 2 \quad 1} \quad 4] \end{array}\end{split}\]在其他例子中,如果``[(1, 3), (2, 4)]`` 已经给出,则对第一次和第三次变换进行随机洗牌,对第二次和第四次变换也进行随机洗牌。
\[\begin{split}\begin{array}{cc} [{\color{red}1} \quad {\color{blue}2} \quad {\color{red}3} \quad {\color{blue}4}] & [{\color{red}1} \quad {\color{blue}4} \quad {\color{red}3} \quad {\color{blue}2}] \\ [{\color{red}3} \quad {\color{blue}2} \quad {\color{red}1} \quad {\color{blue}4}] & [{\color{red}3} \quad {\color{blue}4} \quad {\color{red}1} \quad {\color{blue}2}] \end{array}\end{split}\]不同的颜色代表需要内部洗牌的不同组。
警告
每个batch中的不同数据也将使用随机转换顺序,除非``batch_compose`` 被设置为``True``。