#tensorflow #tensorflow2.0
#тензорный поток #тензорный поток 2,0 #tensorflow #tensorflow2.0
Вопрос:
Вы можете проверить следующий код,
import tensorflow as tf
data = tf.data.Dataset.range(10)
tf.print(data)
На выходе получается
<RangeDataset shapes: (), types: tf.int64>
Форма пуста.
Ответ №1:
Как и в python range
, Dataset.range
также не возвращает фактические значения. Вместо этого он возвращает вызываемый объект, подобный генератору RangeDataset
. Чтобы получить итератор numpy, который вам нужен RangeDataset.as_numpy_iterator
. Затем вы можете преобразовать его в список, как и с помощью list(range(5))
:
>>> tf.data.Dataset.range(5)
<RangeDataset shapes: (), types: tf.int64>
>>> list(tf.data.Dataset.range(5).as_numpy_iterator())
[0, 1, 2, 3, 4]
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
Дополнительные примеры его использования можно найти в документации