aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <bsteiner@google.com>2017-07-28 10:09:17 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-07-28 10:13:45 -0700
commita553aff1319a68b1ee8e8084c3915ea1fde8b888 (patch)
tree2690465655d2398c80633dc54ba35d79e9bf5d89 /tensorflow
parent4f60ddb470905455e74d328a4efd2528675f8f53 (diff)
Minor improvements over cl/163390862: avoid storing unused data, and add a
little bit of documentation for future reference. PiperOrigin-RevId: 163483408
Diffstat (limited to 'tensorflow')
-rw-r--r--tensorflow/core/grappler/optimizers/graph_rewriter.cc5
-rw-r--r--tensorflow/core/grappler/optimizers/graph_rewriter.h1
-rw-r--r--tensorflow/core/grappler/optimizers/model_pruner.cc4
3 files changed, 5 insertions, 5 deletions
diff --git a/tensorflow/core/grappler/optimizers/graph_rewriter.cc b/tensorflow/core/grappler/optimizers/graph_rewriter.cc
index 9e4247fd1a..2d47ded156 100644
--- a/tensorflow/core/grappler/optimizers/graph_rewriter.cc
+++ b/tensorflow/core/grappler/optimizers/graph_rewriter.cc
@@ -37,10 +37,9 @@ GraphRewriter::GraphRewriter(const GrapplerItem& item) {
Status s = op_registry->LookUp(node.op(), &op_reg_data);
// TODO(bsteiner): make this not a best-effort lookup and evaluation?
if (s.ok()) {
- s = InOutTypesForNode(node, op_reg_data->op_def, &info->inputs,
- &info->outputs);
+ DataTypeVector inputs;
+ s = InOutTypesForNode(node, op_reg_data->op_def, &inputs, &info->outputs);
if (!s.ok()) {
- info->inputs.clear();
info->outputs.clear();
}
}
diff --git a/tensorflow/core/grappler/optimizers/graph_rewriter.h b/tensorflow/core/grappler/optimizers/graph_rewriter.h
index cdc246369f..4b9c9feef8 100644
--- a/tensorflow/core/grappler/optimizers/graph_rewriter.h
+++ b/tensorflow/core/grappler/optimizers/graph_rewriter.h
@@ -71,7 +71,6 @@ class GraphRewriter {
// These are filled in when the NodeInfo is built, but not that they
// may be empty - if the op could not be loaded from the registry.
- DataTypeVector inputs;
DataTypeVector outputs;
};
diff --git a/tensorflow/core/grappler/optimizers/model_pruner.cc b/tensorflow/core/grappler/optimizers/model_pruner.cc
index 4e6218c0fb..86dbc2e472 100644
--- a/tensorflow/core/grappler/optimizers/model_pruner.cc
+++ b/tensorflow/core/grappler/optimizers/model_pruner.cc
@@ -85,7 +85,9 @@ Status ModelPruner::Optimize(Cluster* cluster, const GrapplerItem& item,
// - Don't prune nodes that are driven by another device since these could
// be used to reduce cross device communication.
// - Don't remove nodes that receive reference values, as those can be
- // converting references to non-references.
+ // converting references to non-references. It is important to preserve
+ // these non-references since the partitioner will avoid sending
+ // non-references accross partitions more than once.
if (!rewriter.DrivesControlDependency(node) &&
!rewriter.IsDrivenByControlDependency(node) &&
!rewriter.IsConnectedToFunction(node) &&