tf.contrib.timeseries.RandomWindowInputFn
Оборачивает TimeSeriesReader для создания случайных наборов окон.
tf.contrib.timeseries.RandomWindowInputFn(
time_series_reader, window_size, batch_size, queue_capacity_multiplier=1000,
shuffle_min_after_dequeue_multiplier=2, discard_out_of_order=True,
discard_consecutive_batches_limit=1000, jitter=True, num_threads=2,
shuffle_seed=None
)
Тензоры сначала собираются в последовательные окна (в очереди окон, созданной функцией tf.compat.v1.train.batch, на основе порядка, возвращаемого time_series_reader), затем эти окна случайным образом объединяются в наборы (в RandomShuffleQueue). Тензоры, возвращаемые create_batch, имеют формы, начинающиеся с [batch_size, window_size].
Эта функция TimeSeriesInputFn полезна как для обучения, так и для количественного оценивания (но не забудьте запустить несколько эпох для последовательных моделей, таких как StructuralEnsembleRegressor, чтобы полностью очистить устаревшие состояния, оставшиеся после обучения). Для качественного оценивания или при подготовке к прогнозированию используйте WholeDatasetInputFn.
| Аргументы | |
|---|---|
time_series_reader | Объект TimeSeriesReader. |
window_size | Количество примеров, которые нужно хранить последовательно. Это контролирует длину усеченного обратного распространения: меньшие значения означают меньший объём последовательных вычислений, что может привести к более быстрому обучению, но создаёт более грубое приближение градиента (который в идеале вычисляется с помощью прямого прохода по всей последовательности). |
batch_size | Количество окон, которые нужно объединить в пакет. Большие значения приведут к более стабильным градиентам во время обучения. |
queue_capacity_multiplier | Ёмкость очередей, используемых для создания пакетов, указанная как кратное batch_size (для RandomShuffleQueue) и batch_size * window_size (для FIFOQueue). Контролирует максимальное количество хранящихся окон. Должно быть больше, чем shuffle_min_after_dequeue_multiplier. |
shuffle_min_after_dequeue_multiplier | Минимальное количество окон в RandomShuffleQueue после декьюинга, которое контролирует количество энтропии, вводимой при пакетном формировании. Указано как кратное batch_size. |
discard_out_of_order | Если True, окна данных, у которых время уменьшается (более позднее время следует за более ранним), отбрасываются. Если False, окно и связанные с ним признаки вместо этого сортируются таким образом, чтобы время было не убывающим. Отбрасывание обычно быстрее, так как модели не нужно иметь дело с искусственными разрывами в данных. Однако отбрасывание создает смещение, при котором начальные и конечные части файлов недовыбираются. |
discard_consecutive_batches_limit | Вызывает OutOfRangeError, если более этого числа пакетов отбрасывается без единого неотброшенного окна (предотвращает бесконечные циклы, когда набор данных слишком мал). |
jitter | Если True, случайным образом отбрасывает примеры между некоторыми окнами, чтобы избежать детерминированных шаблонов формирования блоков. Это важно для моделей, таких как AR, которые в противном случае могут переобучиться к фиксированным шаблонам формирования блоков. |
num_threads | Используйте это количество потоков для очередей. Установка значения 1 удаляет один источник недетерминированности (и в сочетании со shuffle_seed должна обеспечивать детерминированное формирование окон). |
shuffle_seed | Семена для перемешивания окон. Значение по умолчанию None обеспечивает случайное поведение. С установленным shuffle_seed и num_threads=1 обеспечивает детерминированное поведение. |
Методы
create_batch
create_batch()
Создаёт очереди для формирования окон и пакетирования данных временных рядов.
| Возвращает | |
|---|---|
Словарь тензоров, соответствующих выводу self._reader (из аргумента конструктора time_series_reader), каждый с формами, начинающимися с [batch_size, window_size]. |
__call__
__call__()
Вызов self как функции.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/timeseries/RandomWindowInputFn