def forward(self, input_v, input_q):
# visual (cnn features)
if 'dim_v' in self.opt:
x_v = F.dropout(input_v, p=self.opt['dropout_v'], training=self.training)
x_v = self.linear_v(x_v)
if 'activation_v' in self.opt:
x_v = getattr(F, self.opt['activation_v'])(x_v)
else:
x_v = input_v
# question (rnn features)
if 'dim_q' in self.opt:
x_q = F.dropout(input_q, p=self.opt['dropout_q'], training=self.training)
x_q = self.linear_q(x_q)
if 'activation_q' in self.opt:
x_q = getattr(F, self.opt['activation_q'])(x_q)
else:
x_q = input_q
# hadamard product
x_mm = torch.mul(x_q, x_v)
return x_mm
评论列表
文章目录