:github_url: https://github.com/pytorch/pytorch .. _program_listing_file_torch_csrc_api_include_torch_data_transforms_base.h: Program Listing for File base.h =============================== |exhale_lsh| :ref:`Return to documentation for file ` (``torch/csrc/api/include/torch/data/transforms/base.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include namespace torch::data::transforms { template class BatchTransform { public: using InputBatchType = InputBatch; using OutputBatchType = OutputBatch; virtual ~BatchTransform() = default; virtual OutputBatch apply_batch(InputBatch input_batch) = 0; }; template class Transform : public BatchTransform, std::vector> { public: using InputType = Input; using OutputType = Output; virtual OutputType apply(InputType input) = 0; std::vector apply_batch(std::vector input_batch) override { std::vector output_batch; output_batch.reserve(input_batch.size()); for (auto&& input : input_batch) { output_batch.push_back(apply(std::move(input))); } return output_batch; } }; } // namespace torch::data::transforms