/ / Tensorflow API zestawu danych przywraca Iterator po ukończeniu jednej epoki - tensorflow, tensorflow-datasets

Tensorflow API przywraca Iterator po ukończeniu jednej epoki - tensorflow, tensorflow-datasets

Mam 190 funkcji i etykiet, mój rozmiar partii to 20, ale po 9 iteracjach tf.reshape zwraca wyjątek Wejście do przekształcenia jest tensorem z 21 wartościami, ale żądany kształt ma 60 i wiem, że to jest spowodowane Iterator.get_next().Jak przywracam mój Iterator, aby ponownie zaczął on serwować partie od początku?

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli chcesz ponownie uruchomić tf.data.Iterator od początku jego Dataset, rozważ użycie opcji możliwe do zainicjowania iterator, który ma operację, którą można uruchomić, aby ponownie zainicjować iterator:

dataset = ...  # A `tf.data.Dataset` instance.
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()

train_op = ...  # Something that depends on `next_element`.

for _ in range(NUM_EPOCHS):
# Initialize the iterator at the beginning of `dataset`.
sess.run(iterator.initializer)

# Loop over the examples in `iterator`, running `train_op`.
try:
while True:
sess.run(train_op)

except tf.errors.OutOfRangeError:  # Thrown at the end of the epoch.
pass

# Perform any per-epoch computations here.

Aby uzyskać więcej informacji na temat różnych rodzajów Iterator, widzieć temu tf.data programista "s instrukcja obsługi..