【问题标题】:Why do we reshape data?我们为什么要重塑数据?
【发布时间】:2020-08-26 21:04:14
【问题描述】:

我有一个由 100,000 行和 12 列组成的数据集,其中每一列代表某个输入,以训练顺序 GRU 模型以仅预测 1 个输出。以下是模型的代码:

model = Sequential()
model.add(GRU(units=70, return_sequences=True, input_shape=(1,12),activity_regularizer=regularizers.l2(0.0001)))
model.add(GRU(units=50, return_sequences=True,dropout=0.1))
model.add(GRU(units=30, dropout=0.1))
model.add(Dense(units=5))
model.add(Dense(units=3))
model.add(Dense(units=1, activation='relu'))
model.compile(loss=['mae'], optimizer=Adam(lr=0.0001),metrics=['mse']) 
model.summary() 
history=model.fit(X_train, y_train, batch_size=1000,epochs=30,validation_split=0.1, verbose=1)

但是,在此之前,我必须使用 x_train=x.reshape(-1,1,12) 将训练数据集从 2D 转换为 3D,并使用 y_train=y.reshape(-1,1) 将输出从 1D 转换为 2D。那是我真的不明白的部分,为什么不保持原样呢?

【问题讨论】:

    标签: python machine-learning deep-learning reshape


    【解决方案1】:

    您必须描述您的数据才能做出决定。
    但是由于每一层的输出都是下一层的输入,所以它们的形状必须相等。在不完整的示例中,您提供的标签必须是每个样本的单个值,我认为这就是使用 reshape 的原因。

    【讨论】:

    • 抱歉,我理解正确。既然我们有 12 个输入而只有 1 个输出,那么输入和输出必须是相同的形状吗?例如,输入为 100000x1x12 3-D,输出为 100,000x1 2-D。抱歉,如果我的问题含糊不清,我很乐意提供您需要的任何更多信息。谢谢。
    • This link 对 LSTM 中的维度有很好的描述。
    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 2020-02-25
    • 1970-01-01
    • 2022-01-11
    • 2013-12-17
    • 2011-12-12
    • 2015-10-23
    • 2012-05-15
    相关资源
    最近更新 更多