List of commits:
Subject Hash Author Date (UTC)
wip: pacnn 37620e5a9bc0f9516ea964ec58d9bdaa1c40ff36 Thai Thien 2019-09-22 03:14:42
fix training flow 2b87b1b26c7296b64493fdc49fedb421b249dfa3 Thai Thien 2019-09-17 18:00:35
dataset script bc5c052f5f956510ab95ef9a45434fd486c57fae Thai Thien 2019-09-16 17:21:13
evaluator ffc5bf8290ae0c469a9a18a2d061cfd1bfeee822 Thai Thien 2019-09-14 04:56:35
some more test for data loader 25173578cde7d4e9fe6c6140d1ee01caa4fcfc32 Thai Thien 2019-09-14 02:51:58
some visualize to debug data loader e4f52007616acf307bddbde79c0fb4f8c649c785 Thai Thien 2019-09-13 17:35:45
wip d7d44cad6774355bdfa45414258763f6c6a0c299 Thai Thien 2019-08-31 16:58:16
commit all 6dad7a58f7dbf9fc288ce9dd3e92be538851c2a7 Thai Thien 2019-08-29 19:10:44
input d1,d2,d3 match fc2a809241f8b6356d964c63d40cbebd55ca5f6c Thai Thien 2019-08-28 17:57:05
WIP 39eab26d061e61dfffbf164dbd5fd878299b7250 thient 2019-08-28 11:09:12
output of de is ok dd770386674df3e0fbebafdfc48a9352bc28967d thient 2019-08-28 10:54:09
code pacnn c49537b5cc91e96e4e35c9338d2c95b9bb41c672 Thai Thien 2019-08-27 16:35:27
crowd counting stuff da9f27a39cba9bdd021b6b5c562f5f7c2be50190 Thai Thien 2019-08-24 18:27:44
seem ok 53fa176c31669a0e89b04adf290cb398f0316c45 Thai Thien 2019-08-24 18:26:31
flow ok ad849681000818dfbcd0c1715c2858aed7236041 Thai Thien 2019-08-24 17:00:02
wip 23c3ec48497782bbc91d829e1c8a682502360ab9 Thai Thien 2019-08-24 14:19:22
work in progress, try to use https://pytorch.org/ignite/quickstart.html 39c824fe8fc2501628ee42c236a844df45521007 Thai Thien 2019-08-24 07:41:46
Work in progress 984be31d85e5cbdb2af296ccdb128381fe9bf09e Thai Thien 2019-08-24 05:30:51
README 045706df1fa3452d150a190675c60e80ebd18e08 Thai Thien 2019-08-24 04:11:49
init 18f7c296fb05c4340c1c20ca84c60fef4f93bb1f Thai Thien 2019-08-24 04:08:16
Commit 37620e5a9bc0f9516ea964ec58d9bdaa1c40ff36 - wip: pacnn
Author: Thai Thien
Author date (UTC): 2019-09-22 03:14
Committer name: Thai Thien
Committer date (UTC): 2019-09-22 03:14
Parent(s): 2b87b1b26c7296b64493fdc49fedb421b249dfa3
Signing key:
Tree: 765218689dc1699f01c70648209d4682666674a2
File Lines added Lines deleted
models/pacnn.py 48 0
models/playground.py 15 8
File models/pacnn.py changed (mode: 100644) (index ed60f80..a16141c)
1 1 import torch.nn as nn import torch.nn as nn
2 2 import torch import torch
3
3 4 from torchvision import models from torchvision import models
4 5 import numpy as np import numpy as np
6 import copy
5 7
6 8 # ssim lost function # ssim lost function
7 9
 
... ... class PACNN(nn.Module):
27 29 de3 = self.de3_11((self.de3net(x))) de3 = self.de3_11((self.de3net(x)))
28 30 return de1.squeeze(0), de2.squeeze(0), de3.squeeze(0) return de1.squeeze(0), de2.squeeze(0), de3.squeeze(0)
29 31
32
33 class PACNNWithPerspectiveMap(nn.Module):
34 def __init__(self):
35 super(PACNNWithPerspectiveMap, self).__init__()
36 self.backbone = models.vgg16(pretrained=True).features
37 self.de1net = self.backbone[0:23]
38
39 self.de2net = self.backbone[0:30]
40
41
42 list_vgg16 = list(self.backbone)
43 self.conv6_1_1 = nn.Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
44 list_vgg16.append(self.conv6_1_1)
45 self.de3net = nn.Sequential(*list_vgg16)
46
47
48 self.conv5_2_3_stack = copy.deepcopy(self.backbone[23:30])
49 self.perspective_net = nn.Sequential(self.backbone[0:23], self.conv5_2_3_stack)
50
51
52 # 1 1 convolution
53 self.de1_11 = nn.Conv2d(512, 1, kernel_size=1)
54 self.de2_11 = nn.Conv2d(512, 1, kernel_size=1)
55 self.de3_11 = nn.Conv2d(512, 1, kernel_size=1)
56 self.perspective_11 = nn.Conv2d(512, 1, kernel_size=1)
57
58 # deconvolution upsampling
59 self.up12 = nn.ConvTranspose2d(512, 1, 2, 2)
60 self.up23 = nn.ConvTranspose2d(512, 1, 2, 2)
61
62 # if true, use perspective aware
63 # if false, use average
64 self.perspective_aware_mode = False
65
66 def forward(self, x):
67 de1 = self.de1_11((self.de1net(x)))
68 de2 = self.de2_11((self.de2net(x)))
69 de3 = self.de3_11((self.de3net(x)))
70 if self.perspective_aware_mode:
71 respective = self.perspective_11(self.perspective_net)
72 # TODO: code more here
73 else:
74 de23 = (de2 + self.up23(de3))/2
75 de = (de1 + self.up12(de23))/2
76 return de
77
30 78 def count_param(net): def count_param(net):
31 79 pytorch_total_params = sum(p.numel() for p in net.parameters()) pytorch_total_params = sum(p.numel() for p in net.parameters())
32 80 return pytorch_total_params return pytorch_total_params
File models/playground.py changed (mode: 100644) (index ba0106f..4aa73cd)
... ... class M0(nn.Module):
24 24 d = self.backbone(x) d = self.backbone(x)
25 25 return d return d
26 26
27 def deconvolutuion():
28 transpose = nn.ConvTranspose2d(3, 1, 2, 2)
29 in_tensor = torch.rand((1, 3, 224, 224))
30 out = transpose(in_tensor)
31 print(out.size())
27 32
28 if __name__ == "__main__":
29 m0 = M0()
30 m1 = M1()
31
32 m0_param = list(m0.parameters())
33 m1_param = list(m1.parameters())
34 33
35 print(len(m0_param))
36 print(len(m1_param))
34 if __name__ == "__main__":
35 deconvolutuion()
36 # m0 = M0()
37 # m1 = M1()
38 #
39 # m0_param = list(m0.parameters())
40 # m1_param = list(m1.parameters())
41 #
42 # print(len(m0_param))
43 # print(len(m1_param))
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/hahattpro/crowd_counting_framework

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/hahattpro/crowd_counting_framework

Clone this repository using git:
git clone git://git.rocketgit.com/user/hahattpro/crowd_counting_framework

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main