// // ReLUTest.cpp // MNNTests // // Created by MNN on 2019/01/15. // Copyright © 2018, Alibaba Group Holding Limited // #include #include #include "MNNTestSuite.h" #include "TestUtils.h" using namespace MNN::Express; class ReluTest : public MNNTestCase { public: virtual ~ReluTest() = default; virtual bool run(int precision) { auto input = _Input( { 4, }, NCHW); input->setName("input_tensor"); // set input data const float inpudata[] = {-1.0, -2.0, 3.0, 4.0}; auto inputPtr = input->writeMap(); memcpy(inputPtr, inpudata, 4 * sizeof(float)); input->unMap(); auto output = _Relu(input, 0.5); const std::vector expectedOutput = {-0.5, -1, 3.0, 4.0}; auto gotOutput = output->readMap(); for (int i = 0; i < 4; ++i) { auto diff = ::fabsf(gotOutput[i] - expectedOutput[i]); if (diff > 0.01) { MNN_ERROR("ReluTest test failed: %f - %f!\n", expectedOutput[i], gotOutput[i]); return false; } } return true; } }; MNNTestSuiteRegister(ReluTest, "op/relu");