Понимание формы ввода lstm в керах с различной последовательностью

Я очень новичок в keras, а также на python. У меня есть набор временных рядов с разной длиной последовательности (например, 1-я последовательность – 484000×128, вторая – 563110×128 и т. Д.) Я поместил последовательности в 3D-массив.

Мой вопрос заключается в том, как определить форму ввода, потому что я запутался. Я использовал DL4J, но концепция отличается от определения конфигурации сети.

Вот мой первый пробный код:

import numpy as np from keras.models import Sequential from keras.layers import Embedding,LSTM,Dense,Dropout ## Loading dummy data sequences = np.array([[[1,2,3],[1,2,3]], [[4,5,6],[4,5,6],[4,5,6]]]) y = np.array([[[0],[0]], [[1],[1],[1]]]) x_test=np.array([[2,3,2],[4,6,7],[1,2,1]]) y_test=np.array([0,1,1]) n_epochs=40 # model configration model = Sequential() model.add(LSTM(100, input_shape=(3,1), activation='tanh', recurrent_activation='hard_sigmoid')) # 100 num of LSTM units model.add(LSTM(100, activation='tanh', recurrent_activation='hard_sigmoid')) model.add(Dense(1, activation='softmax')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) print(model.summary()) ## training with batches of size 1 (each batch is a sequence) for epoch in range(n_epochs): for seq, label in zip(sequences, y): model.train(np.array([seq]), [label]) # train a batch at a time.. scores=model.evaluate(x_test, y_test) # evaluate batch at a time.. 

One Solution collect form web for “Понимание формы ввода lstm в керах с различной последовательностью”

Вот документы по входным формам для LSTM:

Формы ввода

3D-тензор с формой (batch_size, timesteps, input_dim), (необязательно) 2D-тензоры с формой (batch_size, output_dim).

Это означает, что вам понадобятся временные метки с постоянным размером для каждой партии.

Канонический способ сделать это – заполнить ваши последовательности, используя что-то вроде утилиты заполнения keras

то вы можете попробовать:

 # let say timestep you choose: is 700000 and dimension of the vectors are 128 timestep = 700000 dims = 128 model.add(LSTM(100, input_shape=(timestep, dim), activation='tanh', recurrent_activation='hard_sigmoid')) 

Я отредактировал ответ, чтобы удалить аргумент batch_size . При этой настройке размер партии не указан, вы можете установить это при установке модели (в model.fit() ).

  • Как использовать модели от keras.приложений для передачи обучения?
  • Ошибка при проверке цели: ожидается, что dense_20 будет иметь форму (None, 3), но получил массив с формой (1200, 1)
  • Как нормализация данных работает в керах во время предсказания?
  • Как закодировать последовательность для последовательности RNN в керасе?
  • Keras, Как получить выход каждого слоя?
  • визуализация сверточного слоя в модели keras
  • Как вернуть историю потери валидации в Keras
  • Преобразование последовательности в функционал в Keras
  • Keras + tensorflow дает ошибку "no attribute" control_flow_ops '"
  • Keras использует слишком много памяти GPU при вызове train_on_batch, fit и т. Д.
  • Почему отличаются показатели, рассчитанные model.evaluate () из отслеживаемых показателей во время обучения в Keras?
  •  
    Interesting Posts for Van-Lav

    Размещение данных в соответствующих именах полей в файле CSV Использование Python

    Почему я получаю сообщение об ошибке «соединение отказалось» в Python? (Розетки)

    Matplotlib – помечать каждый мусор

    Может ли Gnuplot принимать разные аргументы во время выполнения? возможно, с Python?

    Остановить выполнение команды в консоли PyDev

    Как проверить сеанс в ресурсе фляжки

    RethinkDB потерял данные после перезапуска сервера

    нежелательное преобразование типа в pandas.DataFrame.update

    lxml etree xmlparser удаляет ненужное пространство имен

    Как я могу перебирать записи в JSON?

    Добавить префикс «b» в переменную python?

    Проблема с присоединением списка нескольких строк к списку одной строки в Python

    Правильный способ определения значений переменных по умолчанию из шаблона jinja?

    cursor.fetchone () возвращает None, но строка в базе данных существует

    Получение общего количества слов с двумя или более буквами в документе с использованием python

    Python - лучший язык программирования в мире.