| 620 | } |
| 621 | |
| 622 | Status SavedModelOptimizer::RunODLGraphPass() { |
| 623 | // Generate ids for every feature |
| 624 | Status s = GenerateIdsForFeatures(); |
| 625 | if (!s.ok()) return s; |
| 626 | |
| 627 | // Add node for feed version |
| 628 | s = AddVersionNode(); |
| 629 | |
| 630 | // Add a placeholder for storage pointer |
| 631 | s = AddStoragePlaceholderNode(); |
| 632 | if (!s.ok()) return s; |
| 633 | |
| 634 | s = AddIncrCkptFlag(); |
| 635 | if (!s.ok()) return s; |
| 636 | |
| 637 | // Add KvInit Op |
| 638 | s = AddVariableInitSubGraph(); |
| 639 | if (!s.ok()) return s; |
| 640 | |
| 641 | // Create dense and sparse restore ops |
| 642 | s = CreateDenseAndSparseRestoreOp(); |
| 643 | if (!s.ok()) return s; |
| 644 | |
| 645 | s = FreezeSignatureDef(); |
| 646 | if (!s.ok()) return s; |
| 647 | |
| 648 | // For example: |
| 649 | // convert KvResourceGather to KvLookup |
| 650 | // convert KvResourceImportV2 to KvImport |
| 651 | s = ConvertKVOps(); |
| 652 | if (!s.ok()) return s; |
| 653 | |
| 654 | s = RewriteDefaultValueOp(); |
| 655 | if (!s.ok()) return s; |
| 656 | |
| 657 | // replace the graph def in saved_model_bundle |
| 658 | graph_.ToGraphDef(meta_graph_def_->mutable_graph_def()); |
| 659 | |
| 660 | // Add other passes here |
| 661 | return Status::OK(); |
| 662 | } |
| 663 | |
| 664 | namespace { |
| 665 |
nothing calls this directly
no test coverage detected