我在尝试在机器学习模型中使用注意力时遇到很多问题,希望有人能够分享一些启发。
在所有在线图表和说明(https://medium.com/syncedreview/a-brief-overview-of-attention-mechanism-13c578ba9129)中,看起来好像先前的输出正作为输入传递给关注层,然后输入到下一个输出?
我正在尝试使用它在TensorFlow中对LSTM网络进行预测 目前,我有:
input = Input(shape = (x_train.shape[1], x_train.shape[2]))
lstm1 = Bidirectional(LSTM(units=x_train.shape[2], return_sequences=True))(input)
attention = Attention(causal=True)([lstm1, NOT SURE WHAT GOES HERE])
lstm2 = LSTM(return_sequences=False, activation='linear')(attention)
dense1 = Dense(128, activation='relu')(lstm2)
output = Dense(y_train.shape[1], activation = 'linear')(dense1)
model = Model(inputs = input, outputs=output)
我已经坚持了几天,这确实困扰着我,所有示例似乎都是关于机器翻译的-我知道这有点相似,但是这使我的想法更加困难。
输入是3D张量形状(n_examples,n_backward_timesteps,n_features)
输出是形状的二维张量(n_examples,n_forward_timesteps)