Trong Keras LSTM(n)
có nghĩa là "tạo một lớp LSTM bao gồm các đơn vị LSTM. Hình ảnh sau đây cho thấy lớp và đơn vị (hoặc nơ ron) là gì, và hình ảnh ngoài cùng bên phải cho thấy cấu trúc bên trong của một đơn vị LSTM.
Hình ảnh sau đây cho thấy toàn bộ lớp LSTM hoạt động như thế nào.
x1,…,xNtxtht−1bhththtxN
Bây giờ chúng ta hãy tính toán số lượng tham số cho LSTM(1)
và LSTM(3)
và so sánh nó với những gì Keras chương trình khi chúng ta gọi là model.summary()
.
inpxtouthtinp+out+1outout×(inp+out+1)
4out(inp+out+1)
Hãy so sánh với những gì đầu ra của Keras.
Ví dụ 1.
t1 = Input(shape=(1, 1))
t2 = LSTM(1)(t1)
model = Model(inputs=t1, outputs=t2)
print(model.summary())
Layer (type) Output Shape Param #
=================================================================
input_2 (InputLayer) (None, 1, 1) 0
_________________________________________________________________
lstm_2 (LSTM) (None, 1) 12
=================================================================
Total params: 12
Trainable params: 12
Non-trainable params: 0
_________________________________________________________________
4×1×(1+1+1)=12
Ví dụ 2.
input_t = Input((4, 2))
output_t = LSTM(3)(input_t)
model = Model(inputs=input_t, outputs=output_t)
print(model.summary())
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_6 (InputLayer) (None, 4, 2) 0
_________________________________________________________________
lstm_6 (LSTM) (None, 3) 72
=================================================================
Total params: 72
Trainable params: 72
Non-trainable params: 0
4×3×(2+3+1)=72