`class Net(nn.Module):
def init(self, input_dim, hidden_dim):
super(Net, self).init()
self.attfc1 = nn.Linear(input_dim, hidden_dim)
self.attfc2 = nn.Linear(hidden_dim, 1)
self.tanh = nn.Tanh()
self.softmax = nn.Softmax(dim=1)
def forward(self, input):
linear_transform = nn.Linear(34, 8, bias=False)
u = self.attfc1(input)
u = self.tanh(u)
linear_transform = nn.Linear(8, 1, bias=False)
alpha = self.attfc2(u)
alpha = self.softmax(alpha)
print(alpha.shape)
output = torch.sum(alpha * input, dim=1)
return output
这是个注意力网络吗
参考GPT和自己的思路:
是的,这是一个注意力网络。可以看到,在初始化函数中,该类定义了注意力机制所需的参数层,包括输入层和隐藏层,并定义了激活函数和Softmax函数。在前向传递函数中,该类使用这些层计算注意力权重,并使用权重将输入向量加权求和,从而实现注意力机制。
不知道你这个问题是否已经解决, 如果还没有解决的话: