Разница между пакетом tf.data.Dataset и картой и файлом tf.contrib.data.map_and_batch - PullRequest
0 голосов
/ 16 января 2019

Я создал набор данных tf.data.Dat и хочу обучить модель с использованием этого набора данных:

dataset = dataset.prefeth()
dataset = dataset.shuffle()
dataset = dataset.repeat()
dataset = dataset.map()
dataset = dataset.filter()
dataset = dataset.batch()

Я хочу знать, в чем отличие вышеуказанного набора данных от приведенного ниже:

dataset = dataset.prefeth()
dataset = dataset.shuffle()
dataset = dataset.repeat()
dataset = dataset.apply(tf.contrib.data.map_and_batch())

Я знаю, что они не должны отличаться, кроме как по производительности. Но я не знаю, должен ли я использовать метод .apply () или нет?

Верна ли первая реализация?

1 Ответ

0 голосов
/ 16 января 2019

Прежде всего, большинство функций tf.contrib.data устарели и перемещены в tf.data.experimental .Так что следите за этим.

Взгляните на руководство по производительности входного конвейера , чтобы получить хорошее представление о том, что может быть хорошим оптимальным упорядочением преобразований для вашего приложения.Что касается карты и пакета, то да, мы передаем результат карты и партии в функцию применения, и она указывается в описании возврата карта и партия для подтверждения ссылки.И мы хотим использовать карту и пакет из соображений эффективности, которые обычно зависят от ваших данных и от того, насколько дорогой является ваша функция карты.В руководстве по производительности есть некоторые рекомендации для одного и того же.

Что касается разницы между вашим первым и вторым блоками кода, между ними есть функция фильтра, поэтому оба блока могут не давать один и тот же результат в зависимости от того, кем вы являетесьфильтрация.

...