簡體   English   中英

在 Keras LSTM 中添加雙向會導致 RuntimeError('您必須在使用之前編譯模型。')

[英]Adding Bidirectional in a Keras LSTM results in a RuntimeError('You must compile your model before using it.')

我正在做:

self.model.add(Bidirectional(LSTM(lstm1_size, input_shape=(
        seq_length, feature_dim), return_sequences=True)))
self.model.add(Bidirectional(LSTM(lstm2_size, return_sequences=True)))
self.model.add(Bidirectional(LSTM(lstm3_size, return_sequences=True)))
self.model.add(Bidirectional(LSTM(lstm4_size, return_sequences=True)))
self.model.add(Dense(feature_dim, activation='relu'))

我得到錯誤:

RuntimeError('You must compile your model before using it.')

但是,當我在沒有Bidirectional的情況下做同樣的事情時,它工作正常。 我究竟做錯了什么?

在您的情況下,這似乎是一個錯誤,因為我嘗試過相同的工作正常。

import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import LSTM, Bidirectional

lstm1_size = 4
seq_length = 2
lstm2_size = 4
feature_dim = 1
lstm3_size = 4
lstm4_size = 4
model = Sequential()
model.add(Bidirectional(LSTM(lstm1_size, input_shape=(
        seq_length, feature_dim), return_sequences=True)))
model.add(Bidirectional(LSTM(lstm2_size, return_sequences=True)))
model.add(Bidirectional(LSTM(lstm3_size, return_sequences=True)))
model.add(Bidirectional(LSTM(lstm4_size, return_sequences=True)))
model.add(Dense(feature_dim, activation='relu'))

model.compile(loss='mean_squared_error', optimizer='adam')

請檢查模型是否在類內/外編譯? 如果問題已經解決,也請告訴我們。

暫無
暫無

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

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