使用tensorflow数据集输入LSTM模型的形状

时间:2020-02-27 10:01:12

标签: python tensorflow lstm

我有一个简单的数据集,其中包含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)

我遵循了这个question,将我的x和y火车重塑为3维,效果很好。

我上面的代码有两个问题

1。这样重塑y_train是否正确?
2.我想知道是否将tensorflow数据集作为我的fit函数的输入,我应该如何重塑数据集?

例如,我用

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)

我尝试对我的数据集使用expand_dims,但是它不起作用

如果我使用tensorflow数据集,应如何重塑数据集?

谢谢!

0 个答案:

没有答案