tensorflow for poets The name 'import/input' refers to an Operation not in the graph.
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
This TensorFlow error means your code is asking for an operation name that does not exist in the graph object you actually loaded. In older TensorFlow 1.x workflows such as "TensorFlow for Poets," this usually comes from assuming the imported graph has an operation named import/input when the real op name is different.
Why the Name Mismatch Happens
Graph import APIs can add prefixes, change scopes, or simply load a model whose tensor names are not what the example code expects. So the bug is usually not "TensorFlow lost the op." The bug is "the code is looking up the wrong op name in the current graph."
Typical reasons:
- the graph was imported with a different prefix
- the frozen graph came from another training pipeline
- the input node is named something other than
input - the code is mixing graphs or sessions
Inspect the Real Graph
The fastest way to fix this is to print the operation names that actually exist:
If import/input is missing, the model probably uses another name such as import/Placeholder, import/Mul, or a completely different scope.
Look Up Tensors by the Real Name
Once you know the actual name, fetch that tensor explicitly:
Notice that tensor lookup uses :0 at the end, because tensors are outputs of operations.
If you only know the operation name, you can fetch the operation first and inspect its outputs.
Another useful debugging pattern is to search by substring:
That often reveals the real placeholder name much faster than guessing from tutorial text. It is especially useful with retrained graphs whose exported node names differ from the original tutorial assets.
Prefixes Matter
The word import in import/input is often a prefix added by tf.import_graph_def(..., name="import"). If you import with a different name, all operation paths shift accordingly.
For example:
Now the lookup must use my_model/... instead of import/....
That is why copying tensor names from an old tutorial without inspecting the actual graph is brittle.
Modern TensorFlow Note
This issue comes mostly from TensorFlow 1.x graph-management workflows. In modern TensorFlow, SavedModel and Keras APIs are usually easier because they avoid manual string-based graph-node lookup in many common cases.
But if you are maintaining an older graph-based tutorial, inspecting the loaded graph is still the right debugging move.
Common Pitfalls
The biggest mistake is hardcoding node names from a tutorial and assuming every retrained graph preserves them.
Another mistake is confusing operation names with tensor names. graph.get_operation_by_name and graph.get_tensor_by_name are not interchangeable.
A third issue is loading the graph into one Graph object and then trying to look up nodes on another. In TensorFlow 1.x, graph context mistakes are common and produce exactly this kind of error.
Summary
- The error means the requested op name is not present in the currently loaded graph.
- Print real operation names before guessing tensor identifiers.
- Check graph import prefixes such as
importor custom names. - Use
:0when looking up tensors rather than operations. - Prefer modern SavedModel or Keras workflows when you are not required to manage raw graph names manually.

