// // CPUThreshold.cpp // MNN // // Created by MNN on 2019/12/06. // Copyright © 2018, Alibaba Group Holding Limited // #include "backend/cpu/CPUThreshold.hpp" #include "backend/cpu/CPUBackend.hpp" namespace MNN { ErrorCode CPUThreshold::onExecute(const std::vector& inputs, const std::vector& outputs) { auto input = inputs[0]; auto output = outputs[0]; const float* srcData = input->host(); float* dstData = output->host(); const int size = input->elementSize(); for (int i = 0; i < size; ++i) { if (srcData[i] > mThreshold) { dstData[i] = 1.0f; } else { dstData[i] = 0.0f; } } return NO_ERROR; } class CPUThresholdCreator : public CPUBackend::Creator { public: virtual Execution* onCreate(const std::vector& inputs, const std::vector& outputs, const MNN::Op* op, Backend* backend) const { return new CPUThreshold(backend, op->main_as_ELU()->alpha()); } }; REGISTER_CPU_OP_CREATOR(CPUThresholdCreator, OpType_Threshold); } // namespace MNN