Как не смешивать данные CSV в образце, используя tf.data.experimental.CsvDataset ⇐ Python
Как не смешивать данные CSV в образце, используя tf.data.experimental.CsvDataset
У меня возникли проблемы с управлением скольжением окон и tf.data.experimental.CsvDataset, чтобы получить идеальный набор данных LSTM.
Моя цель — создать набор данных временных рядов для базы LSTM на основе множества файлов csv.
Каждый CSV-файл = данные одного конкретного сайта. По этой причине мне необходимо убедиться, что данные с нескольких сайтов (CSV) не смешиваются по выборке.
Мой код работает от начала до конца, за исключением смешивания данных внутри образца:
def load_my_csv(путь): вернуть tf.data.experimental.CsvDataset( путь, Record_defaults=[tf.int32]*6, заголовок = Истина, field_delim=',', select_cols=[1,2,3,4,5,6] ) # перечислим все файлы csv и загрузим их list_csv=tf.data.Dataset.list_files(test_samples + '*.csv',shuffle=False) набор данных = list_csv.interleave (load_my_csv, Cycle_length = 1) # превращаем мои данные в данные последовательности таймсерий ds = ds.map(лямбда *items: tf.stack(items)) ds = ds.window(длина_входной_последовательности + длина_выходной_последовательности, сдвиг=1, drop_remainder=True) ds = ds.flat_map(лямбда x: x).batch(input_sequence_length + output_sequence_length) print_dataset (дс) на основе этих фиктивных данных
x1,x2,x3,x4,y,yy,yyy 1,11,111,11111,-1,-11,-111 2,22,222,2222,-2,-22,-222 3,33,333,3333,-3,-33,-333 4,44,444,4444,-4,-44,-444 5,55,555,5555,-5,-55,-555 6,66,666,6666,-6,-66,-666 7,77,777,7777,-7,-77,-777 8,88,888,8888,-8,-88,-888 9,99,999,9999,-9,-99,-999 мой код правильно обрабатывает данные, как в этом примере:
array([[[ 22., 222., 2222.], [ 33., 333., 3333.], [ 44., 444., 4444.], [ 55., 555., 5555.], [ 66., 666., 6666.]]] но в некоторых примерах я получаю смесь CSV (конец одного и начало следующего, вот так:
array([[[ 88., 888., 8888.], [99., 999., 9999.], [ 11., 111., 1111.], [ 22., 222., 2222.], [ 33., 333., 3333.]]] Насколько я понимаю, набор данных непрерывно отображает все мои файлы .csv и создает в нем окна, не зная, где начинается и заканчивается CSV.
Как предотвратить смешивание двух CSV-файлов в одной выборке? Я новичок в data.dataset и трачу много времени на создание этого рабочего кода, но я действительно застрял в этом вопросе.
У меня возникли проблемы с управлением скольжением окон и tf.data.experimental.CsvDataset, чтобы получить идеальный набор данных LSTM.
Моя цель — создать набор данных временных рядов для базы LSTM на основе множества файлов csv.
Каждый CSV-файл = данные одного конкретного сайта. По этой причине мне необходимо убедиться, что данные с нескольких сайтов (CSV) не смешиваются по выборке.
Мой код работает от начала до конца, за исключением смешивания данных внутри образца:
def load_my_csv(путь): вернуть tf.data.experimental.CsvDataset( путь, Record_defaults=[tf.int32]*6, заголовок = Истина, field_delim=',', select_cols=[1,2,3,4,5,6] ) # перечислим все файлы csv и загрузим их list_csv=tf.data.Dataset.list_files(test_samples + '*.csv',shuffle=False) набор данных = list_csv.interleave (load_my_csv, Cycle_length = 1) # превращаем мои данные в данные последовательности таймсерий ds = ds.map(лямбда *items: tf.stack(items)) ds = ds.window(длина_входной_последовательности + длина_выходной_последовательности, сдвиг=1, drop_remainder=True) ds = ds.flat_map(лямбда x: x).batch(input_sequence_length + output_sequence_length) print_dataset (дс) на основе этих фиктивных данных
x1,x2,x3,x4,y,yy,yyy 1,11,111,11111,-1,-11,-111 2,22,222,2222,-2,-22,-222 3,33,333,3333,-3,-33,-333 4,44,444,4444,-4,-44,-444 5,55,555,5555,-5,-55,-555 6,66,666,6666,-6,-66,-666 7,77,777,7777,-7,-77,-777 8,88,888,8888,-8,-88,-888 9,99,999,9999,-9,-99,-999 мой код правильно обрабатывает данные, как в этом примере:
array([[[ 22., 222., 2222.], [ 33., 333., 3333.], [ 44., 444., 4444.], [ 55., 555., 5555.], [ 66., 666., 6666.]]] но в некоторых примерах я получаю смесь CSV (конец одного и начало следующего, вот так:
array([[[ 88., 888., 8888.], [99., 999., 9999.], [ 11., 111., 1111.], [ 22., 222., 2222.], [ 33., 333., 3333.]]] Насколько я понимаю, набор данных непрерывно отображает все мои файлы .csv и создает в нем окна, не зная, где начинается и заканчивается CSV.
Как предотвратить смешивание двух CSV-файлов в одной выборке? Я новичок в data.dataset и трачу много времени на создание этого рабочего кода, но я действительно застрял в этом вопросе.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Неожиданное обнаружение входного значения для дат в образце календаря Зодиака
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-