diff --git a/onnxruntime/core/providers/webnn/builders/helper.h b/onnxruntime/core/providers/webnn/builders/helper.h index 93d36e7761..f5bb86787d 100644 --- a/onnxruntime/core/providers/webnn/builders/helper.h +++ b/onnxruntime/core/providers/webnn/builders/helper.h @@ -153,6 +153,7 @@ static const InlinedHashMap op_map = { {"Gemm", "gemm"}, {"GlobalAveragePool", "averagePool2d"}, {"GlobalMaxPool", "maxPool2d"}, + {"Greater", "greater"}, {"GroupNormalization", "meanVarianceNormalization"}, {"HardSigmoid", "hardSigmoid"}, {"HardSwish", "hardSwish"}, @@ -160,6 +161,7 @@ static const InlinedHashMap op_map = { {"InstanceNormalization", "meanVarianceNormalization"}, {"LayerNormalization", "meanVarianceNormalization"}, {"LeakyRelu", "leakyRelu"}, + {"Less", "lesser"}, {"MatMul", "matmul"}, {"MaxPool", "maxPool2d"}, {"Mul", "mul"}, diff --git a/onnxruntime/core/providers/webnn/builders/impl/logical_op_builder.cc b/onnxruntime/core/providers/webnn/builders/impl/logical_op_builder.cc index ef3b7a60d1..7cc513db14 100644 --- a/onnxruntime/core/providers/webnn/builders/impl/logical_op_builder.cc +++ b/onnxruntime/core/providers/webnn/builders/impl/logical_op_builder.cc @@ -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("equal", input0, input1); + } else if (op_type == "Greater") { + output = model_builder.GetBuilder().call("greater", input0, input1); + } else if (op_type == "Less") { + output = model_builder.GetBuilder().call("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 op_types = { "Equal", + "Greater", + "Less", }; op_registrations.builders.push_back(std::make_unique()); diff --git a/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc b/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc index 2536ae0ae4..4ff87ade85 100644 --- a/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc +++ b/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc @@ -97,6 +97,8 @@ static OpBuilderRegistrations CreateOpBuilderRegistrations() { { // Logical CreateLogicalOpBuilder("Equal", op_registrations); + CreateLogicalOpBuilder("Greater", op_registrations); + CreateLogicalOpBuilder("Less", op_registrations); } { // Normalization