--- myst: html_meta: description: Data transforms in PyTorch C++ — Stack, Normalize, Lambda, and Collate transforms for data pipelines. keywords: PyTorch, C++, transforms, Stack, Normalize, Lambda, Collate, data pipeline --- # Transforms Transforms apply preprocessing to data samples, such as normalization or augmentation. They can be chained using the `.map()` method on datasets. ## Transform (Base Class) The base class for all transforms. Subclass this to create custom transforms. ```{doxygenclass} torch::data::transforms::Transform :members: :undoc-members: ``` ## BatchTransform (Base Class) Base class for transforms that operate on entire batches. ```{doxygenclass} torch::data::transforms::BatchTransform :members: :undoc-members: ``` ## TensorTransform Base class for transforms that operate on tensors specifically. ```{doxygenclass} torch::data::transforms::TensorTransform :members: :undoc-members: ``` ## Normalize Normalizes tensors with a given mean and standard deviation. ```{doxygenstruct} torch::data::transforms::Normalize :members: :undoc-members: ``` ## Stack Stacks a batch of tensors into a single tensor. ```{doxygenstruct} torch::data::transforms::Stack :members: :undoc-members: ``` **Example:** ```cpp auto dataset = torch::data::datasets::MNIST("./data") .map(torch::data::transforms::Normalize<>(0.5, 0.5)) .map(torch::data::transforms::Stack<>()); ``` ## Lambda ```{doxygenclass} torch::data::transforms::Lambda :members: :undoc-members: ``` ## TensorLambda ```{doxygenclass} torch::data::transforms::TensorLambda :members: :undoc-members: ``` ## BatchLambda ```{doxygenclass} torch::data::transforms::BatchLambda :members: :undoc-members: ``` ## Chaining Transforms Transforms can be chained together using `.map()`: ```cpp auto dataset = torch::data::datasets::MNIST("./data") .map(torch::data::transforms::Normalize<>(0.1307, 0.3081)) .map(torch::data::transforms::Stack<>()); ```