2016-11-16 204 views
4

在建設LSTM,要求我們通過提供輸入形狀信息:Keras:區別input_dim和input_length在LSTM

input_shape =() # a tuple 

另外,通過:

input_length =() # an integer 
input_dim =() # an integer 

我感到有點困惑這兩個數量。他們指出了什麼?

另外,input_dim是所謂的時間步驟嗎?

回答

0

我將設法簡化輸入形狀參數儘可能: 在LSTM的情況下(或一般爲RNNs)可以通過所提供的輸入形狀之一:

  1. input_shape鍵字參數:input_shape = (input_length, input_dim) 其中input_length =序列的長度和input_dim =特徵/變量的數量。如果未提供值,則表示可以預期任何正整數。在這裏你沒有提到批量大小,即訓練期間權數更新的觀察次數。例如 input_length = 50(這是您的序列長度) input_dim = 10(這是在數據的輸入特徵你的電話號碼)使用單獨的input_dim和input_length參數

    model.add(LSTM(16, input_shape = (50,10)))

  2. 在此指定input_dim即數據中的特徵數量和input_length,即數據中單個觀測的序列長度。例如, model.add(LSTM(16, input_length= 50, input_dim =10))。這相當於上述方法

  3. 最後,您可以通過batch_input_size參數指定批處理的大小(上面未指定)。如果LSTM是有狀態的,則必須預先指定批處理大小。 batch_input_size =(的batch_size,input_length,input_dim),相當於上述兩個

    model.add(LSTM(16,batch_input_size = (32,50,10)))

model.add(LSTM(16,batch_input_size = (None,50,10)))批量大小爲32