Модель Conv1D для временных рядов - PullRequest
0 голосов
/ 06 марта 2019

Я новичок в области глубокого обучения и хочу создать автокодер Conv1D для временных рядов с такими формами:

  • образцы: 200
  • временные шаги: 23
  • Особенности: 178

Я не уверен, как мне установить параметры: фильтры, размер ядра и слои MaxPooling1D (каково поведение?), Сгладить (что поведение?), и как должен быть архитектурно спроектирован самый простой Conv1D Autoencoder.

Я пытался собрать что-то в одиночку, но моя версия не работает вообще:

input_layer = Input(shape=(TIMESTEPS, feature_size))
# ENCODER
x = Conv1D(filters=encoding_dim, kernel_size=TIMESTEPS, activation='relu', padding='valid')(input_layer)
x1 = MaxPooling1D(poolsize=TIMESTEPS)(x)
flat = Flatten()(x1)
encoded = Dense(units=encoding_dim, activation = 'relu')(flat)

print("shape of encoded {}".format(K.int_shape(encoded)))

# DECODER 
x_ = Conv1D(encoding_dim, TIMESTEPS, activation='relu', padding='valid')(encoded)
upsamp = UpSampling1D(TIMESTEPS)(x_)
flat = Flatten()(upsamp)
decoded = Dense(units=feature_size, activation = 'relu')(flat)
decoded = Reshape((TIMESTEPS, feature_size))(decoded)

print("shape of decoded {}".format(K.int_shape(decoded)))

autoencoder = Model(input_layer, decoded)

ValueError: Отрицательный размерный размер, вызванный вычитанием 23 из 1 для 'max_pooling1d / MaxPool' (op: 'MaxPool') с входными формами: [?, 1,1,59].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...