Да, вы можете настроить это так, чтобы файл CSV должен был содержать только самую последнюю минуту данных в каждой строке.
Если ваш файл CSV содержит одну точку данных на строку, вы можете создать скользящее окноПакеты выполняются следующим образом:
В TF 1.12 и далее:
window_size = 180
dataset = tf.data.experimental.CsvDataset(filenames, defaults)
dataset = dataset.window(window_size=window_size, shift=1)
dataset = dataset.flat_map(lambda x: x.batch(window_size))
Например, если у вас был набор данных, содержащий элементы {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
# Contains {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
dataset = ...
dataset = dataset.window(window_size=3, shift=1)
dataset = dataset.flat_map(lambda x: x.batch(3))
it = dataset.make_one_shot_iterator()
nxt = it.get_next()
with tf.Session() as sess:
sess.run(nxt) # [1, 2, 3]
sess.run(nxt) # [2, 3, 4]
sess.run(nxt) # [3, 4, 5]
...etc...
В TF1.11 и ранее:
window_size = 180
dataset = tf.contrib.data.CsvDataset(filenames, defaults)
dataset = dataset.apply(tf.contrib.data.sliding_window_batch(window_size=window_size))