Форма ввода для модели LSTM с использованием набора данных tenorflow - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть простой набор данных с x_train (1048575, 19) и y_train (1048575,)

, и мой код показан ниже

x_train = np.array(feature_df.values)
y_train = np.array(target.values)


x_train = x_train.reshape(-1,1,19)
y_train = y_train.reshape(-1,1,1)


model = tf.keras.Sequential([
  LSTM(64, activation='tanh', input_shape=(1, 19),return_sequences = True),
  LSTM(64, activation='tanh',return_sequences = True),
  LSTM(64, activation='tanh',return_sequences = True),
  LSTM(64, activation='tanh',return_sequences = True),
  Dense(10, activation='relu'),
  Dense(1)
])
model.compile(optimizer='adam',
            loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
            metrics=['accuracy'])

model.fit(x_train,y_train, epochs=5)

Я следовал за этим вопросом чтобы изменить мой поезд x и y в 3 измерения, что прекрасно работает.

У меня есть два вопроса для моего кода выше

1. Правильно ли изменить мою y_train следующим образом?
2. Мне интересно, передам ли я набор данных tenorflow как ввод для моей функции подгонки, как мне изменить форму набора данных?

Например, я использовал

dataset = tf.data.Dataset.from_tensor_slices((feature_df.values, target.values))
# with LSTM(64, activation='tanh', input_shape=(1, 19),return_sequences = True)
model.fit(dataset, epochs=5)

, что дает мне ошибку

ValueError: Error when checking input: expected lstm_input to have 3 dimensions, 
but got array with shape (19, 1)

I пытался использовать expand_dims для моего набора данных, но он не работает

как мне изменить форму набора данных, если я использую набор данных tenorflow?

Спасибо!

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