diff --git a/tensorflow/core/grappler/optimizers/meta_optimizer.cc b/tensorflow/core/grappler/optimizers/meta_optimizer.cc index 3da7a72e807..3992b45c645 100644 --- a/tensorflow/core/grappler/optimizers/meta_optimizer.cc +++ b/tensorflow/core/grappler/optimizers/meta_optimizer.cc @@ -220,6 +220,16 @@ Status MetaOptimizer::InitializeCustomGraphOptimizers( TF_RETURN_IF_ERROR(custom_optimizer->Init(&optimizer_config)); optimizers->push_back(std::move(custom_optimizer)); } else { + // If there are no custom optimizers with given name, try to initalize a + // default optimizer. This way, custom configurable optimizers can be + // mixed with default optimizers in any order. + auto optimizer = MakeNewOptimizer(optimizer_config.name()); + if (optimizer) { + VLOG(2) << "Registered default graph optimizer: " + << optimizer_config.name(); + optimizers->push_back(std::move(optimizer)); + continue; + } VLOG(2) << "Can't register an optimizer by name: " << optimizer_config.name(); }