// // LambdaTransform.hpp // MNN // // Created by MNN on 2019/11/14. // Copyright © 2018, Alibaba Group Holding Limited // #ifndef LambdaTransform_hpp #define LambdaTransform_hpp #include #include "Example.hpp" #include "Transform.hpp" namespace MNN { namespace Train { class MNN_PUBLIC BatchLambdaTransform : public BatchTransform { public: explicit BatchLambdaTransform(std::function(std::vector)> f) { func_ = f; } std::vector transformBatch(std::vector batch) override { return func_(std::move(batch)); } private: std::function(std::vector)> func_; }; class MNN_PUBLIC LambdaTransform : public Transform { public: explicit LambdaTransform(std::function f) { mFunc = f; } Example transformExample(Example example) override { return mFunc(std::move(example)); } private: std::function mFunc; }; } // namespace Train } // namespace MNN #endif // LambdaTransform_hpp