[英]The code is showing syntax error “tf.keras.layers.Dense(units=4)”
[英]Tensorflow - building LSTM model - need for tf.keras.layers.Dense()
Python 3.7 張量流
我正在嘗試使用Tensorflow進行時間序列預測
我知道第二行創建了一個LSTM
RNN,即長短期記憶類型的循環神經網絡。
為什么我們最后需要添加一個Dense(1)
層?
single_step_model = tf.keras.models.Sequential()
single_step_model.add(tf.keras.layers.LSTM(32, input_shape=x_train_single.shape[-2:]))
single_step_model.add(tf.keras.layers.Dense(1))
Dense()
教程說
Dense 實現操作:
output = activation(dot(input, kernel) + bias)
其中activation
是作為激活參數傳遞的逐元素激活函數,kernel
是層創建的權重矩陣,bias
是創建的偏置向量按層(僅當 use_bias 為 True 時適用)。
您想在此處重新表述或詳細說明對Dense()
嗎?
以下行
single_step_model.add(tf.keras.layers.LSTM(32, input_shape=x_train_single.shape[-2:]))
創建一個 LSTM 層,它將大小為 #features 的每個輸入步驟轉換為大小為 32 的潛在表示。您想要預測單個值,因此您需要將這個大小為 32 的潛在表示轉換為單個值。 因此,您添加以下行
single_step_model.add(tf.keras.layers.Dense(1))
它在輸出中添加了一個帶有一個神經元的密集層(全連接神經網絡),顯然,它會產生一個值。 將其視為將更高維度的中間結果轉換為最終結果的一種方式。
在本教程中,您正在關注時間序列預測,他們正在嘗試預測溫度(提前 6 小時)。 為此,他們使用LSTM
然后是Dense
層。
single_step_model = tf.keras.models.Sequential()
single_step_model.add(tf.keras.layers.LSTM(32, input_shape=x_train_single.shape[-2:]))
single_step_model.add(tf.keras.layers.Dense(1))
Dense
層只不過是一個常規的全連接 NN 層。 在這種情況下,您將輸出維度降低到 1,這應該代表與您嘗試預測的溫度的某種比例(不必是線性的)。 您也可以使用其他層。 看看, Keras 層。
如果您對 LSTM 的輸入和輸出形狀感到困惑,請查看I/O Shape 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.