第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 MLP 的數(shù)據(jù)調(diào)整為 LSTM(預(yù)期 ndim=3,發(fā)現(xiàn) ndim=2 錯誤)

如何將 MLP 的數(shù)據(jù)調(diào)整為 LSTM(預(yù)期 ndim=3,發(fā)現(xiàn) ndim=2 錯誤)

富國滬深 2022-07-19 15:46:04
我有在多層感知器架構(gòu)上工作的數(shù)據(jù)看起來像這樣X_train_feature.shape(52594, 16)X_train_feature[0]array([1.18867208e-03, 1.00000000e+00, 8.90000000e+01, 8.00000000e+00,       0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,       0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,       0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])y_train(52594, 2)y_train[0].toarray()array([[0., 1.]])第一個維度:樣本數(shù),第二個維度:X_train 是特征的數(shù)量,y_train 是 one-hot 編碼器。我想在 LSTM/Bi-LSTM 上使用相同的數(shù)據(jù),所以我從互聯(lián)網(wǎng)上復(fù)制代碼并將輸入值更改為與 MLP 相同def define_model():    model = Sequential()    model.add(LSTM(20, input_shape=X_train_feature[0].shape, return_sequences=True))    model.add(TimeDistributed(Dense(1, activation='sigmoid')))    model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])  # compile    print('Total params: ', model.count_params())    return model但是當(dāng)我嘗試創(chuàng)建模型時,將附加有關(guān)輸入形狀的錯誤model = define_model()ValueError: Input 0 is incompatible with layer lstm_30: expected ndim=3, found ndim=2我需要調(diào)整我的數(shù)據(jù)以應(yīng)用于 LSTM 還是需要更改架構(gòu)配置?太感謝了。
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

LSTM(與感知器不同)不是前饋網(wǎng)絡(luò)。它需要歷史來預(yù)測下一點。因此,LSTM 的適當(dāng)輸入張量應(yīng)該具有形狀(timesteps, num_features),這意味著每個樣本都是一系列timesteps觀察結(jié)果,使得細胞狀態(tài)在序列的第一次觀察中啟動并貫穿整個序列。

因此,輸入張量應(yīng)具有以下形狀(num_sequences, seq_length, num_features)

  • num_sequences:樣本數(shù),即你需要多少個序列來訓(xùn)練模型?

  • seq_length: 這些序列有多長。對于可變長度序列,您可以提供None.

  • num_features: 在給定的序列中有多少個特征有一個單一的觀察?


查看完整回答
反對 回復(fù) 2022-07-19
?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

LSTM 層的輸入是一個 3d 張量,形狀為 (data_length, timesteps, n_features)


為此,您首先必須使用以下方式轉(zhuǎn)換數(shù)據(jù):


   def slice_data(self, data, n_steps, n_ahead=1):

        X_data = data.drop(['y'], axis=1)

        y_data = data['y']

        X = []

        y = []

        for i in range(len(X_data)):

            end_point = i + n_steps

            if end_point + n_ahead > len(X_data)-1:

                break

            slice_x, slice_y = X_data[i:end_point], y_data.loc[end_point]

            X.append(slice_x)

            y.append(slice_y)

        X, y = np.array(X), np.array(y)

        self.n_features = X.shape[2]

        X = X.reshape((X.shape[0], X.shape[1], X.shape[2]))

        return X, y

或者您可以使用我自己制作的工具:EasyLSTM EasyLSTM 只需一行代碼即可將您的輸入數(shù)組塑造成對 LSTM 友好的數(shù)組


查看完整回答
反對 回復(fù) 2022-07-19
  • 2 回答
  • 0 關(guān)注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號