#python #tensorflow #deep-learning
#python #тензорный поток #глубокое обучение
Вопрос:
Я использовал image_dataset_from_directory () для создания данных моего поезда (529003 кадра), проверки (29388 кадров) и тестирования (28875 кадров):
train_dataset = image_dataset_from_directory(
directory=TRAIN_DIR,
labels="inferred",
label_mode="categorical",
class_names=["0", "10", "5"],
batch_size=32,
image_size=SIZE,
seed=SEED,
subset=None,
interpolation="bilinear",
follow_links=False,
)
#Shape of the data
(TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None),
TensorSpec(shape=(None, 3), dtype=tf.float32, name=None))
Модель, которую я использую, ожидает данные в виде 5D тензора (32,5,224,224,3)
Я использую transfer learning с MobileNet, а затем LSTM для классификации видео.
Я пытался использовать :
train_dataset = train_dataset.batch(5).batch(32)
Но набор данных становится 6D, а размерность меток также увеличивается
(TensorSpec(shape=(None, None, None, 224, 224, 3), dtype=tf.float32, name=None),
TensorSpec(shape=(None, None, None, 3), dtype=tf.float32, name=None))
Ответ №1:
Я нашел решение, которое мне нужно для создания пользовательского генератора, который генерирует 5D тензоры из видеовхода, который рассматривает длину последовательности как 5-й элемент 5D тензора. Тот, который я использую из Keras, image_dataset_from_directory(), создает 4D тензор.