m_ParserFunctions[tflite::BuiltinOperator_DEQUANTIZE] = &TfLiteParser::ParseDequantize;
m_ParserFunctions[tflite::BuiltinOperator_EXP] = &TfLiteParser::ParseExp;
m_ParserFunctions[tflite::BuiltinOperator_FULLY_CONNECTED] = &TfLiteParser::ParseFullyConnected;
+ m_ParserFunctions[tflite::BuiltinOperator_HARD_SWISH] = &TfLiteParser::ParseHardSwish;
m_ParserFunctions[tflite::BuiltinOperator_LEAKY_RELU] = &TfLiteParser::ParseLeakyRelu;
m_ParserFunctions[tflite::BuiltinOperator_LOGISTIC] = &TfLiteParser::ParseLogistic;
m_ParserFunctions[tflite::BuiltinOperator_L2_NORMALIZATION] = &TfLiteParser::ParseL2Normalization;
void TfLiteParser::ParseLeakyRelu(size_t subgraphIndex, size_t operatorIndex)
{
- ParseActivation(subgraphIndex,operatorIndex, ActivationFunction::LeakyReLu);
+ ParseActivation(subgraphIndex, operatorIndex, ActivationFunction::LeakyReLu);
}
void TfLiteParser::ParseLogistic(size_t subgraphIndex, size_t operatorIndex)
ParseActivation(subgraphIndex,operatorIndex,ActivationFunction::TanH);
}
+void TfLiteParser::ParseHardSwish(size_t subgraphIndex, size_t operatorIndex)
+{
+ ParseActivation(subgraphIndex, operatorIndex, ActivationFunction::HardSwish);
+}
void TfLiteParser::ParseActivation(size_t subgraphIndex, size_t operatorIndex, ActivationFunction activationType)
{
activationDesc.m_A = options->alpha;
break;
}
+ case ActivationFunction::HardSwish:
+ layerName += str(boost::format("HARDSWISH:%1%:%2%") % subgraphIndex % operatorIndex);
+ break;
default:
{
throw ParseException(
void ParseDetectionPostProcess(size_t subgraphIndex, size_t operatorIndex);
void ParseExp(size_t subgraphIndex, size_t operatorIndex);
void ParseFullyConnected(size_t subgraphIndex, size_t operatorIndex);
+ void ParseHardSwish(size_t subgraphIndex, size_t operatorIndex);
void ParseLeakyRelu(size_t subgraphIndex, size_t operatorIndex);
void ParseLogistic(size_t subgraphIndex, size_t operatorIndex);
void ParseL2Normalization(size_t subgraphIndex, size_t operatorIndex);
{ -0.1f, -0.2f, -0.3f, -0.4f, 0.1f, 0.2f, 0.3f },
{ -0.09966799f, -0.19737528f, -0.29131261f, -0.379949f, 0.09966799f, 0.19737528f, 0.29131261f });
}
+
+struct HardSwishFixture : ActivationFixture
+{
+ HardSwishFixture() : ActivationFixture("HARD_SWISH", "FLOAT32") {}
+};
+
+BOOST_FIXTURE_TEST_CASE(ParseHardSwish, HardSwishFixture)
+{
+ RunTest<2, armnn::DataType::Float32>(0,
+ { -4.0f, -3.0f, -2.9f, 1.2f, 2.2f, 3.0f, 4.0f },
+ { -0.0f, -0.0f, -0.04833334f, 0.84f, 1.90666667f, 3.0f, 4.0f });
+}
BOOST_AUTO_TEST_SUITE_END()