Tôi đang cố gắng nắm bắt những gì trình bao bọc TimeDistributed làm trong Keras.
Tôi hiểu rằng TimeDistributed "áp dụng một lớp cho mọi lát cắt tạm thời của đầu vào."
Nhưng tôi đã thực hiện một số thử nghiệm và nhận được kết quả mà tôi không thể hiểu được.
Nói tóm lại, liên quan đến lớp LSTM, TimeDistributed và chỉ lớp Dense đều mang lại kết quả như nhau.
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add(TimeDistributed(Dense(1)))
print(model.output_shape)
model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add((Dense(1)))
print(model.output_shape)
Đối với cả hai mô hình, tôi nhận được hình dạng đầu ra là (Không có, 10, 1) .
Bất cứ ai có thể giải thích sự khác biệt giữa lớp TimeDistributed và Dense sau một lớp RNN?
Dense
lớp làm phẳng đầu vào và sau đó định hình lại, do đó kết nối các bước thời gian khác nhau và có nhiều tham số hơn vàTimeDistributed
giữ các bước thời gian tách biệt (do đó có ít tham số hơn). Trong trường hợp của bạnDense
nên đã có 500 paramters,TimeDistributed
chỉ có 50