Dare I even ask? This is such a new technology at this point that I can't find a way to solve this seemingly simple error. The tutorial I'm going over can be found here- http://www.tensorflow.org/tutorials/mnist/pros/index.html#deep-mnist-for-experts
I literally copied and pasted all of the code into IPython Notebook and at the very last chunk of code I get an error.
# To train and evaluate it we will use code that is nearly identical to that for the simple one layer SoftMax network above. # The differences are that: we will replace the steepest gradient descent optimizer with the more sophisticated ADAM optimizer. cross_entropy = -tf.reduce_sum(y_*tf.log(y_conv)) train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) sess.run(tf.initialize_all_variables()) for i in range(20000): batch = mnist.train.next_batch(50) if i%100 == 0: train_accuracy = accuracy.eval(feed_dict={x:batch[0], y_: batch[1], keep_prob: 1.0}) print "step %d, training accuracy %g"%(i, train_accuracy) train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5}) print "test accuracy %g"%accuracy.eval(feed_dict={ x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0})
After running this code, I receive this error.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-46-a5d1ab5c0ca8> in <module>() 15 16 print "test accuracy %g"%accuracy.eval(feed_dict={ ---> 17 x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}) /root/anaconda/lib/python2.7/site-packages/tensorflow/python/framework/ops.pyc in eval(self, feed_dict, session) 403 404 """ --> 405 return _eval_using_default_session(self, feed_dict, self.graph, session) 406 407 /root/anaconda/lib/python2.7/site-packages/tensorflow/python/framework/ops.pyc in _eval_using_default_session(tensors, feed_dict, graph, session) 2712 session = get_default_session() 2713 if session is None: -> 2714 raise ValueError("Cannot evaluate tensor using eval(): No default " 2715 "session is registered. Use 'with " 2716 "DefaultSession(sess)' or pass an explicit session to " ValueError: Cannot evaluate tensor using eval(): No default session is registered. Use 'with DefaultSession(sess)' or pass an explicit session to eval(session=sess)
I thought that I may need to install or reinstall TensorFlow via conda install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl but conda doesn't even know how to install it.
Does anyone have any idea of how to work around this error?
The Python "ModuleNotFoundError: No module named 'tensorflow'" occurs when we forget to install the tensorflow module before importing it or install it in an incorrect environment. To solve the error, install the module by running the pip install tensorflow command.
I figured it out. As you see in the value error, it says No default session is registered. Use 'with DefaultSession(sess)' or pass an explicit session to eval(session=sess)
so the answer I came up with is to pass an explicit session to eval, just like it says. Here is where I made the changes.
if i%100 == 0: train_accuracy = accuracy.eval(session=sess, feed_dict={x:batch[0], y_: batch[1], keep_prob: 1.0})
And
train_step.run(session=sess, feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
Now the code is working fine.
I encountered a similar error when I tried a simple tensorflow example.
import tensorflow as tf v = tf.Variable(10, name="v") sess = tf.Session() sess.run(v.initializer) print(v.eval())
My solution is to use sess.as_default(). For example, I changed my code to the following and it worked:
import tensorflow as tf v = tf.Variable(10, name="v") with tf.Session().as_default() as sess: sess.run(v.initializer) print(v.eval())
Another solution can be use InteractiveSession. The difference between InteractiveSession and Session is that an InteractiveSession makes itself the default session so you can run() or eval() without explicitly call the session.
v = tf.Variable(10, name="v") sess = tf.InteractiveSession() sess.run(v.initializer) print(v.eval())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With