簡體   English   中英

雙向 LSTM model 尚未構建錯誤

[英]Bidirectional LSTM model not yet been built error

我現在正在編寫雙向 LSTM 的 model。 但是,在構建 model 的過程中出現了錯誤。 我該如何解決? 下面是我的 model 代碼。

def lstm_model():
            model = Sequential()
            model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True,
                           input_shape=(time_steps, n_features), dropout=0.5, recurrent_dropout=0.5)))  # return_sequences=True , stateful=True
            #model.add(Dropout(0.5))
            model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True, dropout=0.5, recurrent_dropout=0.3)))  # return_sequences=True , stateful=True
            #model.add(Dropout(0.3))
            model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True)))  # 80

            model.add(Flatten())
            model.add(Dense(8))
            model.add(Dense(1, activation='sigmoid'))
           # model.add(Reshape((time_steps,)))

            #opt = RMSprop(lr=0.0001)#, decay=1e-6)
            model.compile(loss='mse',
                          optimizer='rmsprop',
                          metrics=['mse'])


            model.summary()

            return model

然后是錯誤內容。

Traceback (most recent call last):
  File "C:/Users/USER/PycharmProjects/untitled/GA-LSTM.py", line 504, in <module>
    model = lstm_model()
  File "C:/Users/USER/PycharmProjects/untitled/GA-LSTM.py", line 498, in lstm_model
    model.summary()
  File "C:\Users\USER\Anaconda3\lib\site-packages\keras\engine\network.py", line 1252, in summary
    'This model has not yet been built. '
ValueError: This model has not yet been built. Build the model first by calling build() or calling fit() with some data. Or specify input_shape or batch_input_shape in the first layer for automatic build. 

Process finished with exit code 1

model 需要知道它應該期望什么輸入形狀。

設置雙向層的輸入形狀

def lstm_model():
      model = Sequential()
      model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True, dropout=0.5, recurrent_dropout=0.5),
                      input_shape=(time_steps, n_features)))  # return_sequences=True , stateful=True
      #model.add(Dropout(0.5))
      model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True, dropout=0.5, recurrent_dropout=0.3)))  # return_sequences=True , stateful=True
      #model.add(Dropout(0.3))
      model.add(Bidirectional(LSTM(lstm_sell, return_sequences=True)))  # 80

      model.add(Flatten())
      model.add(Dense(8))
      model.add(Dense(1, activation='sigmoid'))
      # model.add(Reshape((time_steps,)))

      #opt = RMSprop(lr=0.0001)#, decay=1e-6)
      model.compile(loss='mse',
                    optimizer='rmsprop',
                    metrics=['mse'])


      model.summary()

      return model

第一層是雙向層

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
bidirectional_1 (Bidirection (None, 1, 20)             1680      
_________________________________________________________________
bidirectional_2 (Bidirection (None, 1, 20)             2480      
_________________________________________________________________
bidirectional_3 (Bidirection (None, 1, 20)             2480      
_________________________________________________________________
flatten_1 (Flatten)          (None, 20)                0         
_________________________________________________________________
dense_1 (Dense)              (None, 8)                 168       
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 9         
=================================================================

暫無
暫無

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

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