File main_pacnn.py changed (mode: 100644) (index 1078b73..43b6c3d) |
... |
... |
if __name__ == "__main__": |
28 |
28 |
MODEL_SAVE_NAME = "dev5" |
MODEL_SAVE_NAME = "dev5" |
29 |
29 |
# Add the following code anywhere in your machine learning file |
# Add the following code anywhere in your machine learning file |
30 |
30 |
experiment = Experiment(api_key="S3mM1eMq6NumMxk2QJAXASkUM", |
experiment = Experiment(api_key="S3mM1eMq6NumMxk2QJAXASkUM", |
31 |
|
project_name="pacnn-dev", workspace="ttpro1995") |
|
|
31 |
|
project_name="pacnn-dev2", workspace="ttpro1995") |
32 |
32 |
experiment.set_name(MODEL_SAVE_NAME) |
experiment.set_name(MODEL_SAVE_NAME) |
33 |
|
|
|
|
33 |
|
experiment.log_parameter("PACNN_PERSPECTIVE_AWARE_MODEL", True) |
|
34 |
|
experiment.log_parameter("desc", "test pacnn with perspective aware") |
34 |
35 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
35 |
36 |
|
|
36 |
37 |
# device = "cpu" |
# device = "cpu" |
|
... |
... |
if __name__ == "__main__": |
39 |
40 |
print(args) |
print(args) |
40 |
41 |
DATA_PATH = args.input |
DATA_PATH = args.input |
41 |
42 |
DATASET_NAME = "shanghaitech" |
DATASET_NAME = "shanghaitech" |
42 |
|
PACNN_PERSPECTIVE_AWARE_MODEL = False |
|
|
43 |
|
PACNN_PERSPECTIVE_AWARE_MODEL = True |
43 |
44 |
|
|
44 |
45 |
|
|
45 |
46 |
|
|
File models/pacnn.py changed (mode: 100644) (index 46f1e5d..0336b5c) |
... |
... |
class PACNNWithPerspectiveMap(nn.Module): |
72 |
72 |
if self.perspective_aware_mode: |
if self.perspective_aware_mode: |
73 |
73 |
pespective_w_s = self.perspective_11(self.perspective_net(x)) |
pespective_w_s = self.perspective_11(self.perspective_net(x)) |
74 |
74 |
pespective_w = self.up_perspective(pespective_w_s) |
pespective_w = self.up_perspective(pespective_w_s) |
|
75 |
|
|
|
76 |
|
|
75 |
77 |
# TODO: code more here |
# TODO: code more here |
76 |
|
de23 = pespective_w_s * de2 + (1 - pespective_w_s)*(de2 + self.up23(de3)) |
|
77 |
|
de = pespective_w * de1 + (1 - pespective_w)*(de1 + self.up12(de23)) |
|
|
78 |
|
upde3 = self.up23(de3) |
|
79 |
|
pad_3_0 = de2.size()[2] - upde3.size()[2] |
|
80 |
|
pad_3_1 = de2.size()[3] - upde3.size()[3] |
|
81 |
|
upde3pad = F.pad(upde3, (0, pad_3_1, 0, pad_3_0), value=0) |
|
82 |
|
de23_a = pespective_w_s * de2 |
|
83 |
|
de23_b = (1 - pespective_w_s)*(de2 + upde3pad) |
|
84 |
|
de23 = de23_a + de23_b |
|
85 |
|
|
|
86 |
|
upde23 = self.up12(de23) |
|
87 |
|
pad_23_0 = de1.size()[2] - upde23.size()[2] |
|
88 |
|
pad_23_1 = de1.size()[3] - upde23.size()[3] |
|
89 |
|
upde23pad = F.pad(upde23, (0, pad_23_1, 0, pad_23_0), value=0) |
|
90 |
|
|
|
91 |
|
pad_perspective_0 = de1.size()[2] - pespective_w.size()[2] |
|
92 |
|
pad_perspective_1 = de1.size()[3] - pespective_w.size()[3] |
|
93 |
|
pespective_w_pad = F.pad(pespective_w, (0, pad_perspective_1, 0, pad_perspective_0), value=0) |
|
94 |
|
de_a = pespective_w_pad * de1 |
|
95 |
|
de_b = (1 - pespective_w_pad)*(de1 + upde23pad) |
|
96 |
|
de = de_a + de_b |
78 |
97 |
else: |
else: |
79 |
98 |
#try: |
#try: |
80 |
99 |
pespective_w_s = None |
pespective_w_s = None |
File models/test_PACNNWithPerspectiveMap.py changed (mode: 100644) (index af8340f..a6b4678) |
... |
... |
class TestPACNNWithPerspectiveMap(TestCase): |
42 |
42 |
image = torch.rand(1, 3, 224, 224) |
image = torch.rand(1, 3, 224, 224) |
43 |
43 |
_, _, _, _, _, density_map = net(image) |
_, _, _, _, _, density_map = net(image) |
44 |
44 |
print(density_map.size()) |
print(density_map.size()) |
|
45 |
|
|
|
46 |
|
def test_perspective_aware_schema_pacnn_pad(self): |
|
47 |
|
net = PACNNWithPerspectiveMap(perspective_aware_mode=True) |
|
48 |
|
# image |
|
49 |
|
# batch size, channel, h, w |
|
50 |
|
image = torch.rand(1, 3, 330, 512) |
|
51 |
|
_, _, _, _, _, density_map = net(image) |
|
52 |
|
print(density_map.size()) |