self.conv1 = nn.Conv2d(in_nc, nf, 7, stride, pad, bias=True) self.conv2 = nn.Conv2d(nf, nf, 3, stride, pad, bias=True) self.conv3 = nn.Conv2d(nf, nf, 3, stride, pad, bias=True) self.act = nn.ReLU(inplace=True) def forward(self, x): conv1_out = self.act(self.conv1(self.pad(x))) conv2_out = self.act(self.conv2(self.pad(conv1_out))) conv3_out = self.act(self.conv3(self.pad(conv2_out))) out = torch.mean(conv3_out, dim=[2, 3], keepdim=False) return out