-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeError: Tensor is unhashable. Instead, use tensor.ref() as the key. #6
Comments
Have the same issue too. TF 2.0.1 and Keras 2.3.1. Was able to get around it by adding .experimental_ref() to several tensors (e.g. if node_output.experimental_ref() in self._replace_tensors.keys():). However, I ultimately got stuck with other problems down the line |
versions I also had this error: I got around it by first disabling eager execution Then I ran into an error saying In my case this was fixed by editing surgeon.py |
Did you get it to work without problem with the "Add layer" as in #7 ? |
I'm having this issue as well and Update: I was able to solve it by adding |
' ' '
15
16
---> 17 model_new = surgeon.operate()
18 return model_new
/usr/local/lib/python3.6/dist-packages/tfkerassurgeon/surgeon.py in operate(self)
152 sub_output_nodes = utils.get_node_inbound_nodes(node)
153 outputs, output_masks = self._rebuild_graph(self.model.inputs,
--> 154 sub_output_nodes)
155
156 # Perform surgery at this node
/usr/local/lib/python3.6/dist-packages/tfkerassurgeon/surgeon.py in _rebuild_graph(self, graph_inputs, output_nodes, graph_input_masks)
264 # Call the recursive _rebuild_rec method to rebuild the submodel up to
265 # each output layer
--> 266 outputs, output_masks = zip(*[_rebuild_rec(n) for n in output_nodes])
267 return outputs, output_masks
268
/usr/local/lib/python3.6/dist-packages/tfkerassurgeon/surgeon.py in (.0)
264 # Call the recursive _rebuild_rec method to rebuild the submodel up to
265 # each output layer
--> 266 outputs, output_masks = zip(*[_rebuild_rec(n) for n in output_nodes])
267 return outputs, output_masks
268
/usr/local/lib/python3.6/dist-packages/tfkerassurgeon/surgeon.py in _rebuild_rec(node)
216 # Check for replaced tensors before any other checks:
217 # these are created by the surgery methods.
--> 218 if node_output in self._replace_tensors.keys():
219 logging.debug('bottomed out at replaced output: {0}'.format(
220 node_output))
/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/ops.py in hash(self)
724 if (Tensor._USE_EQUALITY and executing_eagerly_outside_functions() and
725 (g is None or g.building_function)):
--> 726 raise TypeError("Tensor is unhashable. "
727 "Instead, use tensor.ref() as the key.")
728 else:
TypeError: Tensor is unhashable. Instead, use tensor.ref() as the key.
' ' '
The text was updated successfully, but these errors were encountered: