def __call__(self, x): test = not self.train outs = [] if self.out1 > 0: h1 = self.conv1(x) h1 = self.conv1n(h1, test=test) h1 = relu.relu(h1) outs.append(h1) h3 = relu.relu(self.proj3n(self.proj3(x), test=test)) h3 = relu.relu(self.conv3n(self.conv3(h3), test=test)) outs.append(h3) h33 = relu.relu(self.proj33n(self.proj33(x), test=test)) h33 = relu.relu(self.conv33an(self.conv33a(h33), test=test)) h33 = relu.relu(self.conv33bn(self.conv33b(h33), test=test)) outs.append(h33) if self.pooltype == 'max': p = max_pooling_2d.max_pooling_2d(x, 3, stride=self.stride, pad=1) else: p = average_pooling_2d.average_pooling_2d(x, 3, stride=self.stride, pad=1) if self.proj_pool is not None: p = relu.relu(self.poolpn(self.poolp(p), test=test)) outs.append(p) y = concat.concat(outs, axis=1) return y
def forward(self, x): outs = [] if self.out1 > 0: h1 = self.conv1(x) h1 = self.conv1n(h1) h1 = relu.relu(h1) outs.append(h1) h3 = relu.relu(self.proj3n(self.proj3(x))) h3 = relu.relu(self.conv3n(self.conv3(h3))) outs.append(h3) h33 = relu.relu(self.proj33n(self.proj33(x))) h33 = relu.relu(self.conv33an(self.conv33a(h33))) h33 = relu.relu(self.conv33bn(self.conv33b(h33))) outs.append(h33) if self.pooltype == 'max': p = max_pooling_2d.max_pooling_2d(x, 3, stride=self.stride, pad=1, cover_all=False) else: p = average_pooling_2d.average_pooling_2d(x, 3, stride=self.stride, pad=1) if self.proj_pool is not None: p = relu.relu(self.poolpn(self.poolp(p))) outs.append(p) y = concat.concat(outs, axis=1) return y
def __call__(self, x, test=None): """Computes the output of the InceptionBN module. Args: x (Variable): An input variable. test (bool): If ``True``, batch normalization layers run in testing mode; if ``test`` is omitted, ``not self.train`` is used as ``test``. """ if test is None: test = not self.train outs = [] if self.out1 > 0: h1 = self.conv1(x) h1 = self.conv1n(h1, test=test) h1 = relu.relu(h1) outs.append(h1) h3 = relu.relu(self.proj3n(self.proj3(x), test=test)) h3 = relu.relu(self.conv3n(self.conv3(h3), test=test)) outs.append(h3) h33 = relu.relu(self.proj33n(self.proj33(x), test=test)) h33 = relu.relu(self.conv33an(self.conv33a(h33), test=test)) h33 = relu.relu(self.conv33bn(self.conv33b(h33), test=test)) outs.append(h33) if self.pooltype == 'max': p = max_pooling_2d.max_pooling_2d(x, 3, stride=self.stride, pad=1, cover_all=False) else: p = average_pooling_2d.average_pooling_2d(x, 3, stride=self.stride, pad=1) if self.proj_pool is not None: p = relu.relu(self.poolpn(self.poolp(p), test=test)) outs.append(p) y = concat.concat(outs, axis=1) return y
def _global_average_pooling_2d(x): n, channel, rows, cols = x.data.shape h = average_pooling_2d(x, (rows, cols), stride=1) h = reshape(h, (n, channel)) return h
def _average_pooling_2d_k7(x): return average_pooling_2d(x, ksize=7, stride=1)
def _average_pooling_2d_k5(x): return average_pooling_2d(x, ksize=5, stride=3)