diff --git a/onnxruntime/core/providers/webnn/builders/helper.h b/onnxruntime/core/providers/webnn/builders/helper.h index af4780323f..93d36e7761 100644 --- a/onnxruntime/core/providers/webnn/builders/helper.h +++ b/onnxruntime/core/providers/webnn/builders/helper.h @@ -167,6 +167,7 @@ static const InlinedHashMap op_map = { {"Not", "logicalNot"}, {"Pad", "pad"}, {"Pow", "pow"}, + {"PRelu", "prelu"}, {"Reciprocal", "reciprocal"}, {"ReduceMax", "reduceMax"}, {"ReduceMean", "reduceMean"}, diff --git a/onnxruntime/core/providers/webnn/builders/impl/binary_op_builder.cc b/onnxruntime/core/providers/webnn/builders/impl/binary_op_builder.cc index ac08f7a3f2..8ae9ad6b2f 100644 --- a/onnxruntime/core/providers/webnn/builders/impl/binary_op_builder.cc +++ b/onnxruntime/core/providers/webnn/builders/impl/binary_op_builder.cc @@ -39,6 +39,8 @@ Status BinaryOpBuilder::AddToModelBuilderImpl(ModelBuilder& model_builder, const output = model_builder.GetBuilder().call("div", input0, input1); } else if (op_type == "Pow") { output = model_builder.GetBuilder().call("pow", input0, input1); + } else if (op_type == "PRelu") { + output = model_builder.GetBuilder().call("prelu", input0, input1); } else { return ORT_MAKE_STATUS(ONNXRUNTIME, INVALID_ARGUMENT, "BinaryOpBuilder::AddToModelBuilderImpl, unknown op: ", op_type); @@ -59,6 +61,7 @@ void CreateBinaryOpBuilder(const std::string& op_type, OpBuilderRegistrations& o "Mul", "Div", "Pow", + "PRelu", }; 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 80f89d8f44..2536ae0ae4 100644 --- a/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc +++ b/onnxruntime/core/providers/webnn/builders/op_builder_factory.cc @@ -37,6 +37,7 @@ static OpBuilderRegistrations CreateOpBuilderRegistrations() { CreateBinaryOpBuilder("Mul", op_registrations); CreateBinaryOpBuilder("Div", op_registrations); CreateBinaryOpBuilder("Pow", op_registrations); + CreateBinaryOpBuilder("PRelu", op_registrations); } { // Ternary