Handle grappler failure in savedmodel importer properly

PiperOrigin-RevId: 351914138
Change-Id: I94db8b279385ea91483ef9f47bb43b7fe23180ed
This commit is contained in:
Kuangyuan Chen 2021-01-14 17:52:15 -08:00 committed by TensorFlower Gardener
parent 571c19440d
commit aebcab97df
2 changed files with 10 additions and 5 deletions

View File

@ -3368,7 +3368,7 @@ class SavedModelSignatureDefImporterLite {
const GraphDebugInfo& debug_info() const { return debug_info_; } const GraphDebugInfo& debug_info() const { return debug_info_; }
private: private:
const MetaGraphDef& meta_graph_def_; MetaGraphDef meta_graph_def_;
const GraphDebugInfo& debug_info_; const GraphDebugInfo& debug_info_;
std::unique_ptr<Graph> graph_; std::unique_ptr<Graph> graph_;
absl::Span<std::string> exported_names_; absl::Span<std::string> exported_names_;
@ -3379,10 +3379,11 @@ class SavedModelSignatureDefImporterLite {
Status SavedModelSignatureDefImporterLite::InitializeGraph( Status SavedModelSignatureDefImporterLite::InitializeGraph(
MLIRImportOptions import_options) { MLIRImportOptions import_options) {
// TODO(jpienaar): Remove need to const_cast. if (import_options.enable_grappler) {
if (import_options.enable_grappler) // Grappler is best-effort.
TF_RETURN_IF_ERROR( auto status = RunGrappler(&meta_graph_def_);
RunGrappler(const_cast<MetaGraphDef*>(&meta_graph_def_))); if (!status.ok()) LOG(WARNING) << status;
}
GraphDef graph_def = meta_graph_def_.graph_def(); GraphDef graph_def = meta_graph_def_.graph_def();
if (import_options.upgrade_legacy) { if (import_options.upgrade_legacy) {

View File

@ -130,6 +130,10 @@ Status RunGrappler(MetaGraphDef* meta_graph_def) {
std::unique_ptr<grappler::GrapplerItem> item = std::unique_ptr<grappler::GrapplerItem> item =
grappler::GrapplerItemFromMetaGraphDef("graph", *meta_graph_def, grappler::GrapplerItemFromMetaGraphDef("graph", *meta_graph_def,
grappler::ItemConfig()); grappler::ItemConfig());
if (!item) {
return tensorflow::errors::Internal(
"Failed to create grappler item from MetaGraphDef.");
}
grappler::VirtualCluster cluster(&dev_set); grappler::VirtualCluster cluster(&dev_set);
return grappler::RunMetaOptimizer(std::move(*item), config_proto, cpu_device, return grappler::RunMetaOptimizer(std::move(*item), config_proto, cpu_device,