У меня есть простой набор данных с 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?
Спасибо!