def forward(self, x): batch_size = x.size(0) net = normalize_imagenet(x) net = self.convnet(net) net = net.view(batch_size, 256*3*3) out = self.fc_out(net) return out
def forward(self, x): if self.normalize: x = normalize_imagenet(x) x0, x1, x2 = self.features(x) gray_x = gray(x) gaussian1 = self.gaussion_conv1(gray_x) gaussian2 = self.gaussion_conv2(gray_x) gaussian3 = self.gaussion_conv3(gray_x) gaussian4 = self.gaussion_conv4(gray_x) gaussian5 = self.gaussion_conv5(gray_x) gaussian6 = self.gaussion_conv6(gray_x) dog1 = torch.sub(gaussian2, gaussian1) dog2 = torch.sub(gaussian4, gaussian3) dog3 = torch.sub(gaussian6, gaussian5) dog_tem = torch.cat((dog1, dog2), dim=1) dog = torch.cat((dog_tem, dog3), dim=1) out_dog = self.dog_encoder(dog) out0 = self.fc(x0) out1 = self.fc_head1(x1) out2 = self.fc_head2(x2) out_dog = self.fusion_dog_ori(torch.cat((out_dog, out0), dim=1)) attention_out_dog = self.attention(out_dog.unsqueeze(dim=-1)) return out0, out1, out2, attention_out_dog.squeeze(1)
def forward(self, x): if self.normalize: x = normalize_imagenet(x) net = self.features(x) out = self.fc(net) return out