Пример #1
0
    def __init__(self,
                 nstack,
                 inp_dim,
                 oup_dim,
                 bn=False,
                 increase=128,
                 **kwargs):
        super(PoseNet, self).__init__()
        self.pre = nn.Sequential(Conv(3, 64, 7, 2, bn=bn), Conv(64, 128,
                                                                bn=bn),
                                 Pool(2, 2), Conv(128, 128, bn=bn),
                                 Conv(128, inp_dim, bn=bn))
        self.features = nn.ModuleList([
            nn.Sequential(Hourglass(4, inp_dim, bn, increase),
                          Conv(inp_dim, inp_dim, 3, bn=False),
                          Conv(inp_dim, inp_dim, 3, bn=False))
            for i in range(nstack)
        ])

        self.outs = nn.ModuleList([
            Conv(inp_dim, oup_dim, 1, relu=False, bn=False)
            for i in range(nstack)
        ])
        self.merge_features = nn.ModuleList(
            [Merge(inp_dim, inp_dim) for i in range(nstack - 1)])
        self.merge_preds = nn.ModuleList(
            [Merge(oup_dim, inp_dim) for i in range(nstack - 1)])

        self.nstack = nstack
        self.myAEloss = tagLoss
        self.heatmapLoss = HeatmapLoss()
Пример #2
0
    def __init__(self,
                 nstack,
                 inp_dim,
                 oup_dim,
                 bn=False,
                 increase=128,
                 **kwargs):
        super(PoseNet, self).__init__()
        # 'nn.Sequential' is a Container that contains each Module to construct the layer sequence ofCNN
        self.pre = nn.Sequential(
            # Conv() parameter is 'inp_dim, out_dim, kernel_size, stride' in layers.py
            # uses module 'nn.Conv2d'
            Conv(3, 64, 7, 2, bn=bn),
            Conv(64, 128, bn=bn),
            Pool(2, 2),
            Conv(128, 128, bn=bn),
            Conv(128, inp_dim, bn=bn))
        self.features = nn.ModuleList([
            nn.Sequential(Hourglass(4, inp_dim, bn, increase),
                          Conv(inp_dim, inp_dim, 3, bn=False),
                          Conv(inp_dim, inp_dim, 3, bn=False))
            for i in range(nstack)
        ])
        # build for number of the nstack layers
        # the 'nn.ModuleList' is to store nn.Modules, similar to python list, to pass as input
        self.outs = nn.ModuleList([
            Conv(inp_dim, oup_dim, 1, relu=False, bn=False)
            for i in range(nstack)
        ])
        self.merge_features = nn.ModuleList(
            [Merge(inp_dim, inp_dim) for i in range(nstack - 1)])
        self.merge_preds = nn.ModuleList(
            [Merge(oup_dim, inp_dim) for i in range(nstack - 1)])

        self.nstack = nstack
        self.myAEloss = AEloss()
        self.heatmapLoss = HeatmapLoss()