diff --git a/paddle/fluid/ir_adaptor/translator/op_translator.cc b/paddle/fluid/ir_adaptor/translator/op_translator.cc index 8db987eb20fd7..d29781af492de 100644 --- a/paddle/fluid/ir_adaptor/translator/op_translator.cc +++ b/paddle/fluid/ir_adaptor/translator/op_translator.cc @@ -2684,6 +2684,16 @@ struct SliceOpTranscriber : public OpTranscriber { } }; +struct CEmbeddingOpTranscriber : public OpTranscriber { + void HandleNonexistentAttribute(pir::IrContext* ctx, + pir::AttributeMap* attribute_map, + const OpAttributeInfo& info) override { + if (info.name == "vocab_size") { + (*attribute_map)[info.name] = pir::Int64Attribute::get(ctx, -1); + } + } +}; + OpTranslator::OpTranslator() { pir::IrContext* ctx = pir::IrContext::Instance(); ctx->GetOrRegisterDialect(); @@ -2750,6 +2760,7 @@ OpTranslator::OpTranslator() { special_handlers["elementwise_min_grad"] = ElementwiseGradTranscriber(); special_handlers["elementwise_mod_grad"] = ElementwiseGradTranscriber(); special_handlers["elementwise_floordiv_grad"] = ElementwiseGradTranscriber(); + special_handlers["c_embedding"] = CEmbeddingOpTranscriber(); } } // namespace translator