예제 #1
0
                block(self.inplanes, planes, track_running_stats=True))

        return nn.Sequential(*layers)

    def run(self, x, target=None):
        """Function for getting the outputs of intermediate layers
        """
        if target is None or target > 5:
            raise NotImplementedError(
                'Target is expected to be smaller than 6')
        layers = [
            self.layer1, self.layer2, self.layer3, self.layer4, self.layer5
        ]
        for layer in layers[:target]:
            x = layer(x)
        return x

    def forward(self, x):
        if self.sobel is not None:
            x = self.sobel(x)
        x = self.layer1(x)
        x = self.layer2(x)
        x = self.layer3(x)
        x = self.layer4(x)
        x = self.layer5(x)
        x = self.avgpool(x)
        return map(lambda head: head(x), self.heads)


register('resnet34', ResNet34)
예제 #2
0
        self.inplanes = planes * block.expansion
        for i in range(1, blocks):
            layers.append(
                block(self.inplanes, planes, track_running_stats=True))

        return nn.Sequential(*layers)

    def forward(self, x, hidx, output_features=False):
        if self.sobel is not None:
            x = self.sobel(x)
        elif self.grayscale is not None:
            x = self.grayscale(x)

        if output_features:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool
            ]
        else:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool, self.heads[hidx]
            ]

        for layer in layers:
            x = layer(x)
        return x


register('resnet34standard', ResNet34Standard)
예제 #3
0
        layers.append(block(self.inplanes, planes, stride, downsample))
        self.inplanes = planes * block.expansion
        for i in range(1, blocks):
            layers.append(block(self.inplanes, planes))

        return nn.Sequential(*layers)

    def forward(self, x, hidx, output_features=False):
        if self.sobel is not None:
            x = self.sobel(x)
        elif self.grayscale is not None:
            x = self.grayscale(x)

        if output_features:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool
            ]
        else:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool, self.heads[hidx]
            ]

        for layer in layers:
            x = layer(x)
        return x


register('resnet50small', ResNet50Small)
예제 #4
0
        layers.append(block(self.inplanes, planes, stride, downsample))
        self.inplanes = planes * block.expansion
        for i in range(1, blocks):
            layers.append(block(self.inplanes, planes))

        return nn.Sequential(*layers)

    def forward(self, x, hidx, output_features=False):
        if self.sobel is not None:
            x = self.sobel(x)
        elif self.grayscale is not None:
            x = self.grayscale(x)

        if output_features:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool
            ]
        else:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.avgpool, self.heads[hidx]
            ]

        for layer in layers:
            x = layer(x)
        return x


register('resnet50standard', ResNet50Standard)
예제 #5
0
        layers.append(block(self.inplanes, planes, stride, downsample))
        self.inplanes = planes * block.expansion
        for i in range(1, blocks):
            layers.append(block(self.inplanes, planes))

        return nn.Sequential(*layers)

    def forward(self, x, hidx, output_features=False):
        if self.sobel is not None:
            x = self.sobel(x)
        elif self.grayscale is not None:
            x = self.grayscale(x)

        if output_features:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.layer6, self.avgpool
            ]
        else:
            layers = [
                self.layer1, self.layer2, self.layer3, self.layer4,
                self.layer5, self.layer6, self.avgpool, self.heads[hidx]
            ]

        for layer in layers:
            x = layer(x)
        return x


register('resnet50large', ResNet50Large)
예제 #6
0
            downsample = nn.Sequential(
                nn.Conv2d(self.inplanes, planes * block.expansion, kernel_size=1, stride=stride, bias=False),
                nn.BatchNorm2d(planes * block.expansion, track_running_stats=True))

        layers = []
        layers.append(block(self.inplanes, planes, stride, downsample, track_running_stats=True))
        self.inplanes = planes * block.expansion
        for i in range(1, blocks):
            layers.append(block(self.inplanes, planes, track_running_stats=True))

        return nn.Sequential(*layers)

    def forward(self, x, hidx, output_features=False):
        if self.sobel is not None:
            x = self.sobel(x)
        elif self.grayscale is not None:
            x = self.grayscale(x)

        if output_features:
            layers = [self.layer1, self.layer2, self.layer3, self.layer4, self.layer5, self.layer6, self.avgpool]
        else:
            layers = [self.layer1, self.layer2, self.layer3, self.layer4, self.layer5, self.layer6, self.avgpool,
                      self.heads[hidx]]

        for layer in layers:
            x = layer(x)
        return x


register('resnet34large', ResNet34Large)