Модель keras обучается с использованием массивов Numpy в качестве входных данных, но не может добиться какого-либо прогресса при чтении данных из конвейера tf.data. В чем может быть потенциальная причина?
В частности, модель использует пакетные многомерные временные ряды (поэтому каждая точка представляет собой тензор N x M) и решает задачу классификации. Если данные готовятся заранее путем агрегирования временных рядов в большой массив Numpy, то модель успешно обучается, о чем свидетельствует значительное увеличение точности. Однако когда с помощью конвейера tf.data подготавливаются точно такие же входные данные, точность остается на базовом уровне.
Я сравнил два набора данных путем записи на диск. , и они идентичны. Также типы совпадают.
Попробовал отключить многопоточность (IIUC), установив
options.threading.private_threadpool_size = 1
и экспериментировал с набором опций options.experimental_optimization.
Может ли быть так, что данные считываются параллельно из набор данных tf.data, а не последовательное чтение из массива Numpy?
Для полноты, вот конвейер, где np_array содержит "raw" данные:
ds = tf.data.Dataset.from_tensor_slices(np_array.T)
y_ds = (
ds
.skip(T - 1)
.map(lambda s: s[-1] - 1)
.map(lambda y: to_categorical(y, 3))
)
X_ds = (
ds
.map(lambda s: s[:n_features])
.window(T, shift=1, drop_remainder=True)
.flat_map(lambda x: x.batch(T, drop_remainder=True))
.map(lambda x: tf.expand_dims(x, -1))
)
Xy_ds = (
tf.data.Dataset.zip(X_ds, y_ds)
.batch(size_batch)
.repeat(n_epochs * size_batch)
.prefetch(tf.data.AUTOTUNE)
)
и как вызывается fit() (значение Steps_per_epoch правильное)
model.fit(
Xy_train,
epochs=n_epochs,
steps_per_epoch=199,
verbose=2
)
Подробнее здесь: https://stackoverflow.com/questions/792 ... a-pipeline
Модель keras не обучается при использовании конвейера tf.data ⇐ Python
Программы на Python
-
Anonymous
1732620956
Anonymous
Модель keras обучается с использованием массивов Numpy в качестве входных данных, но не может добиться какого-либо прогресса при чтении данных из конвейера tf.data. В чем может быть потенциальная причина?
В частности, модель использует пакетные многомерные временные ряды (поэтому каждая точка представляет собой тензор N x M) и решает задачу классификации. Если данные готовятся заранее путем агрегирования временных рядов в большой массив Numpy, то модель успешно обучается, о чем свидетельствует значительное увеличение точности. Однако когда с помощью конвейера tf.data подготавливаются точно такие же входные данные, точность остается на базовом уровне.
Я сравнил два набора данных путем записи на диск. , и они идентичны. Также типы совпадают.
Попробовал отключить многопоточность (IIUC), установив
options.threading.private_threadpool_size = 1
и экспериментировал с набором опций options.experimental_optimization.
Может ли быть так, что данные считываются параллельно из набор данных tf.data, а не последовательное чтение из массива Numpy?
Для полноты, вот конвейер, где np_array содержит "raw" данные:
ds = tf.data.Dataset.from_tensor_slices(np_array.T)
y_ds = (
ds
.skip(T - 1)
.map(lambda s: s[-1] - 1)
.map(lambda y: to_categorical(y, 3))
)
X_ds = (
ds
.map(lambda s: s[:n_features])
.window(T, shift=1, drop_remainder=True)
.flat_map(lambda x: x.batch(T, drop_remainder=True))
.map(lambda x: tf.expand_dims(x, -1))
)
Xy_ds = (
tf.data.Dataset.zip(X_ds, y_ds)
.batch(size_batch)
.repeat(n_epochs * size_batch)
.prefetch(tf.data.AUTOTUNE)
)
и как вызывается fit() (значение Steps_per_epoch правильное)
model.fit(
Xy_train,
epochs=n_epochs,
steps_per_epoch=199,
verbose=2
)
Подробнее здесь: [url]https://stackoverflow.com/questions/79222345/keras-model-does-not-learn-if-using-tf-data-pipeline[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия