0

I wanna execute my graph model but I am having difficulty. The code is:

epoch_x, epoch_y = features, labels
sess.run(optimizer, feed_dict = {"x:0": epoch_x, "y:0": epoch_y})

and the error is:

--------------------------------------------------------------------------- KeyError Traceback (most recent call last) D:\AnacondaIDE\lib\site-packages\tensorflow\python\client\session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1067 subfeed_t = self.graph.as_graph_element(subfeed, allow_tensor=True, -> 1068 allow_operation=False) 1069 except Exception as e:

D:\AnacondaIDE\lib\site-packages\tensorflow\python\framework\ops.py in as_graph_element(self, obj, allow_tensor, allow_operation) 2707
with self._lock: -> 2708 return self._as_graph_element_locked(obj, allow_tensor, allow_operation) 2709

D:\AnacondaIDE\lib\site-packages\tensorflow\python\framework\ops.py in _as_graph_element_locked(self, obj, allow_tensor, allow_operation) 2749 "exist. The operation, %s, does not exist in the " -> 2750 "graph." % (repr(name), repr(op_name))) 2751 try:

KeyError: "The name 'x:0' refers to a Tensor which does not exist. The operation, 'x', does not exist in the graph."

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last) in () 22 # feed_dict = {x: epoch_x, y: epoch_y} 23 ---> 24 sess.run(optimizer, feed_dict = {"x:0": epoch_x, "y:0": epoch_y}) 25 train_loss.append(sess.run(cost, feed_dict = {x: epoch_x, y: epoch_y})) 26 train_accuracy.append(sess.run(accr, feed_dict = {x: epoch_x, y: epoch_y}))

D:\AnacondaIDE\lib\site-packages\tensorflow\python\client\session.py in run(self, fetches, feed_dict, options, run_metadata) 893 try: 894 result = self._run(None, fetches, feed_dict, options_ptr, --> 895 run_metadata_ptr) 896 if run_metadata: 897 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)

D:\AnacondaIDE\lib\site-packages\tensorflow\python\client\session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1069 except Exception as e: 1070 raise TypeError('Cannot interpret feed_dict key as Tensor: ' -> 1071 + e.args[0]) 1072 1073 if isinstance(subfeed_val, ops.Tensor):

TypeError: Cannot interpret feed_dict key as Tensor: The name 'x:0' refers to a Tensor which does not exist. The operation, 'x', does not exist in the graph.

I have also tried the following statement:

sess.run(optimizer, feed_dict = {"x": epoch_x, "y": epoch_y})

Then the error is:

--------------------------------------------------------------------------- NameError Traceback (most recent call last) in () 22 # feed_dict = {x: epoch_x, y: epoch_y} 23 ---> 24 sess.run(optimizer, feed_dict = {x: epoch_x, y: epoch_y}) 25 train_loss.append(sess.run(cost, feed_dict = {x: epoch_x, y: epoch_y})) 26 train_accuracy.append(sess.run(accr, feed_dict = {x: epoch_x, y: epoch_y}))

NameError: name 'x' is not defined

Note that print(features.shape) yields:

(4000, 6000, 3)

I am using Tensorflow-gpu (1.3.0).

Fawad Khalil
  • 357
  • 3
  • 20
  • 2
    Have you tried removing the quotes, i.e. : `sess.run(optimizer, feed_dict = {x: epoch_x, y: epoch_y})` as per [the tensorflow docs](https://www.tensorflow.org/versions/r0.12/api_docs/python/io_ops/placeholders) ? – Val Berthe Nov 30 '17 at 02:08
  • 2
    post the code where you define placeholders – asakryukin Nov 30 '17 at 03:11
  • @Ksyqo qoutes were a problem and Pietro's answer also helped as I hadn't declared placeholder before. – Fawad Khalil Nov 30 '17 at 17:07

1 Answers1

3

In the feed dict there should be no quotes, but the keys should be the python variables pointing to the placeholders you want to feed.

For instance, if when declaring your placeholder you have something like

pl_ = tf.placeholder(...., name='placeholder_1')

then you should RUN THIS

sess.run(...., feed_dict={pl_: value})

and NOT THIS

sess.run(..., feed_dict={'placeholder_1': value})
Pietro Tortella
  • 1,084
  • 1
  • 6
  • 13