[WebNN EP] Support Greater and Less ops (#16782)

This commit is contained in:
Wanming Lin 2023-07-25 00:08:53 +08:00 committed by GitHub
parent 8ede2f139e
commit 5d17bcd776
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 0 deletions

View file

@ -153,6 +153,7 @@ static const InlinedHashMap<std::string, std::string> op_map = {
{"Gemm", "gemm"},
{"GlobalAveragePool", "averagePool2d"},
{"GlobalMaxPool", "maxPool2d"},
{"Greater", "greater"},
{"GroupNormalization", "meanVarianceNormalization"},
{"HardSigmoid", "hardSigmoid"},
{"HardSwish", "hardSwish"},
@ -160,6 +161,7 @@ static const InlinedHashMap<std::string, std::string> op_map = {
{"InstanceNormalization", "meanVarianceNormalization"},
{"LayerNormalization", "meanVarianceNormalization"},
{"LeakyRelu", "leakyRelu"},
{"Less", "lesser"},
{"MatMul", "matmul"},
{"MaxPool", "maxPool2d"},
{"Mul", "mul"},

View file

@ -33,6 +33,10 @@ Status LogicalOpBuilder::AddToModelBuilderImpl(ModelBuilder& model_builder, cons
emscripten::val output = emscripten::val::object();
if (op_type == "Equal") {
output = model_builder.GetBuilder().call<emscripten::val>("equal", input0, input1);
} else if (op_type == "Greater") {
output = model_builder.GetBuilder().call<emscripten::val>("greater", input0, input1);
} else if (op_type == "Less") {
output = model_builder.GetBuilder().call<emscripten::val>("lesser", input0, input1);
} else {
return ORT_MAKE_STATUS(ONNXRUNTIME, INVALID_ARGUMENT,
"LogicalOpBuilder::AddToModelBuilderImpl, unknown op: ", op_type);
@ -49,6 +53,8 @@ void CreateLogicalOpBuilder(const std::string& op_type, OpBuilderRegistrations&
static std::vector<std::string> op_types =
{
"Equal",
"Greater",
"Less",
};
op_registrations.builders.push_back(std::make_unique<LogicalOpBuilder>());

View file

@ -97,6 +97,8 @@ static OpBuilderRegistrations CreateOpBuilderRegistrations() {
{ // Logical
CreateLogicalOpBuilder("Equal", op_registrations);
CreateLogicalOpBuilder("Greater", op_registrations);
CreateLogicalOpBuilder("Less", op_registrations);
}
{ // Normalization