From 59df451c3b80645987fcd2b92b8478021541599a Mon Sep 17 00:00:00 2001 From: Nathan Luehr Date: Wed, 11 Sep 2019 19:24:32 -0500 Subject: [PATCH] Move AutoMixedPrecision ahead of GenericLayoutOptimizer The layout optimizer sets the data layout based on the dtype of the op. The mixed precision optimizer needs to proceed the layout optizer because it will change dtypes from float32 to float16. --- tensorflow/core/grappler/optimizers/meta_optimizer.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tensorflow/core/grappler/optimizers/meta_optimizer.cc b/tensorflow/core/grappler/optimizers/meta_optimizer.cc index a56b08d2e20..e5d94f2dc87 100644 --- a/tensorflow/core/grappler/optimizers/meta_optimizer.cc +++ b/tensorflow/core/grappler/optimizers/meta_optimizer.cc @@ -191,6 +191,10 @@ Status MetaOptimizer::InitializeOptimizers( if (cfg_.shape_optimization() != RewriterConfig::OFF) { optimizers->push_back(MakeUnique()); } + if (AutoMixedPrecisionEnabled(cfg_.auto_mixed_precision())) { + optimizers->push_back( + MakeUnique(cfg_.auto_mixed_precision())); + } if (cfg_.layout_optimizer() != RewriterConfig::OFF) { optimizers->push_back(MakeUnique()); } @@ -212,10 +216,6 @@ Status MetaOptimizer::InitializeOptimizers( optimizers->push_back( MakeUnique(cfg_.dependency_optimization())); } - if (AutoMixedPrecisionEnabled(cfg_.auto_mixed_precision())) { - optimizers->push_back( - MakeUnique(cfg_.auto_mixed_precision())); - } if (cfg_.memory_optimization() != RewriterConfig::NO_MEM_OPT) { if (cfg_.memory_optimizer_target_node_name_scope().empty()) { optimizers->push_back(