With standard Tensorflow:
import tensorflow as tf  x = tf.convert_to_tensor([0,1,2,3,4], dtype=tf.int64) y = x + 10  sess = tf.InteractiveSession() sess.run([     tf.local_variables_initializer(),     tf.global_variables_initializer(), ]) coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord)  z = y.eval(feed_dict={x:[0,1,2,3,4]}) print(z) print(type(z))  coord.request_stop() coord.join(threads) sess.close()   Output:
[10 11 12 13 14] <class 'numpy.ndarray'>   With eager execution:
import tensorflow as tf  tf.enable_eager_execution() # requires r1.7  x = tf.convert_to_tensor([0,1,2,3,4], dtype=tf.int64) y = x + 10  print(y) print(type(y))   Output:
tf.Tensor([10 11 12 13 14], shape=(5,), dtype=int64) <class 'EagerTensor'>   If I try y.eval(), I get NotImplementedError: eval not supported for Eager Tensors. Is there no way to convert this? This makes Eager Tensorflow completely worthless.
Edit:
There's a function tf.make_ndarray that should convert a tensor to a numpy array but it causes AttributeError: 'EagerTensor' object has no attribute 'tensor_shape'.
There is a .numpy() function which you can use, alternatively you could also do numpy.array(y). For example:
import tensorflow as tf import numpy as np  tf.enable_eager_execution()  x = tf.constant([1., 2.]) print(type(x))            # <type 'EagerTensor'> print(type(x.numpy()))    # <type 'numpy.ndarray'> print(type(np.array(x)))  # <type 'numpy.ndarray'>   See the section in the eager execution guide.
Hope that helps.
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