Как читать из tf.data.Iterator как последовательно, так и случайным образом в тензорном потоке? - PullRequest
0 голосов
/ 24 апреля 2018

Я создал свою tfrecords базу данных в tenorflow.Теперь я хотел бы прочитать записи так, чтобы исходной точкой было какое-то случайное значение, скажем, между 10 и 2000, а затем последовательно прочитать несколько записей, скажем, между 100 и 200. Как это сделать, используя tf.data.iterator или любую альтернативу в tenorflow.

Любая помощь очень ценится !!

1 Ответ

0 голосов
/ 25 апреля 2018

Для этого вы можете использовать tf.data.Dataset.take и tf.data.Dataset.skip.

Например, сконструируйте ваш tf.data.Dataset объект следующим образом:

starting_point = tf.random_uniform(shape=[], dtype=tf.int64, minval=10, maxval=2000)
num_records = tf.random_uniform(shape=[], dtype=tf.int64, minval=100, maxval=200)

ds = tf.data.TFRecordDataset(...).skip(starting_point).take(num_records)

И тогда вы можете создать итератор и тензор «следующего значения», как любой набор данных. Например:

itr = ds.make_one_shot_iterator()
(x, y) = itr.get_next()

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...