簡體   English   中英

Keras:ValueError:檢查輸入時出錯

[英]Keras: ValueError: Error when checking input

我的pandas數據幀長度為7499042,如下所示:

'X'          'y'
[0.1,0.2...] 0.2
[0.3,0.4,..] 0.3
.
.

pandas dataframe中的每個值都是長度為50的numpy數組。現在我將它解壓縮如下:

input = df['X'].values

我有這樣的圖層:

main_input = Input(shape=(50,1), name='main_input')    
lstm_out=LSTM(32,activation='tanh',recurrent_activation='sigmoid',return_sequences=True)
mean_pooling=AveragePooling1D(pool_size=2,strides=2,padding='valid')

但是當我在訓練時傳遞我的意見時。 它顯示錯誤:

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

它顯示的輸入形狀是(7499042,)。 請幫我解決這個問題。

在將功能饋送到LSTM網絡之前,您需要重塑功能。 LSTM層采用3維輸入,對應於(batch_size,timesteps,features)。 這意味着單個觀察必須是二維的(時間步長,特征)

在您的情況下,單個觀察是1維(50,):如果轉換正確完成,則整個數據集維度為:(7499042,50)。 在使用之前,您必須重新整形輸入:

input = df['X'].values
input = input.reshape(input.shape[0] , input.shape[1] , 1)

如果Pandas沒有將您的初始功能轉換為2d DataFrame,則必須在執行上述代碼之前執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM