问题
while i was using function as_numpy_iterator()
got error
--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) in () ----> 1 image = get_image_data(image_paths)
1 frames /tensorflow-2.1.0/python3.6/tensorflow_core/python/data/ops/dataset_ops.py in as_numpy_iterator(self) 488 """ 489 if not context.executing_eagerly(): --> 490 raise RuntimeError("as_numpy_iterator() is not supported while tracing " 491 "functions") 492 for component_spec in nest.flatten(self.element_spec):
RuntimeError: as_numpy_iterator() is not supported while tracing functions
my code is
# creating a function called get_dataset, which creates a dataset of image data from file paths.
def get_dataset(image_paths):
filename_tensor = tf.constant(image_paths)
dataset = tf.data.Dataset.from_tensor_slices(filename_tensor)
def _map_fn(filename):
return decode_image(filename=filename)
return dataset.map(_map_fn)
#
def get_image_data(image_paths):
dataset = get_dataset(image_paths)
return list(dataset.as_numpy_iterator())
image = get_image_data(image_paths)
it throws error in using dataset.as_numpy_iterator()
. I had used image paths of two array of filename
回答1:
The error message here is a bit confusing, since it talks about tracing functions, but I ran into this and realized it's a Dataset feature that's only supported when eager execution is enabled. It's enabled by default in TensorFlow 2.x, but but you can also manually enable it in later 1.x versions. If you enable it, this error message should disappear.
来源:https://stackoverflow.com/questions/60045971/runtimeerror-as-numpy-iterator-is-not-supported-while-tracing-functions