List of commits:
Subject Hash Author Date (UTC)
decide net param count 5aeadf6ad9047edded67fffd0b6584d2e9eeb777 Thai Thien 2020-12-23 16:30:14
make video code d0737d7abec4abc900dc7e7981ca46e61f0d4153 Thai Thien 2020-12-23 16:30:04
create success 99951e32fedfcdb2ebc272d1678c094998c499f8 Thai Thien 2020-12-18 17:17:34
bike_video_frame_404_dccnn_t3 bbbd4ad319ac87586afc6ce6675adcf9d5f41fef Thai Thien 2020-12-18 15:53:26
fix load model stuff 8c5c9c985fb747dc6392c86aa5f49282f8d12297 Thai Thien 2020-12-18 15:44:21
import comet first dd4426221a95d0916c8cc7c02c7587ada1d910b5 Thai Thien 2020-12-18 15:41:59
predict on frame from video ec39a97372a15ad75811fdb3417d2e48078a30b2 Thai Thien 2020-12-18 15:40:36
fix normalize in data loader 56a64c14dc62c96aba532d233ff2782414738d05 Thai Thien 2020-12-17 15:36:22
change gpu 5 46d32b3fc05909b61f56389b01c2e50e52937d9b Thai Thien 2020-12-16 16:40:47
eval_dccnn_bike_video_VID_20201204_133931_404_model_adamw1_bigtail13i_t4_bike20 95bb636a0b544b7a72fc4c65acb47472da468766 Thai Thien 2020-12-16 16:35:14
eval_dccnn_bike_video_VID_20201204_133931_404_model_adamw1_bigtail13i_t3_bike20 27740a0e21ca42490f5cfe516b2453f7be3a2483 Thai Thien 2020-12-16 16:17:12
batch 2 85433ffd51070572d7e743a2b4ef53f340b658d4 Thai Thien 2020-12-15 16:57:56
reduce batch size 3 d2f145009c06f5e6e6e1e0270878ae275b611c2f Thai Thien 2020-12-15 16:55:46
t3 and t4 70e09414713ea22800d8e87a0dd984f18406c375 Thai Thien 2020-12-15 16:50:32
prepare bike 20s q100 556a4d8f695ca154a5db42b363a276d7ab233434 Thai Thien 2020-12-15 16:46:08
VID_20201204_133931_404 8264dcb4d5389ed8ef2920eb3419cfc505b6a09c Thai Thien 2020-12-13 11:31:10
add VID_20201204_133931_404 a36ba35ca7c54dcf552d17a08fa8c87720ce1c69 Thai Thien 2020-12-13 11:30:24
print total length on console 6a956d93489926e99909d234bf4a7b13d39aad56 Thai Thien 2020-12-13 11:24:56
fix input of save_density_map dc2f014fdd570909b811ac77629f0c8c0ca156da Thai Thien 2020-12-13 11:21:37
detach cpu for save_density_map f41362501a0bc3578de0a48e6cbe97966a66677c Thai Thien 2020-12-13 11:19:45
Commit 5aeadf6ad9047edded67fffd0b6584d2e9eeb777 - decide net param count
Author: Thai Thien
Author date (UTC): 2020-12-23 16:30
Committer name: Thai Thien
Committer date (UTC): 2020-12-23 16:30
Parent(s): d0737d7abec4abc900dc7e7981ca46e61f0d4153
Signing key:
Tree: f9752918cc07b36a90aeba8856bbf7697d8baba6
File Lines added Lines deleted
models/decide_net.py 85 0
File models/decide_net.py added (mode: 100644) (index 0000000..1040c6b)
1 import torch.nn as nn
2 import torch
3 from torchvision import models
4 from torchvision.models.detection import FasterRCNN
5 import torchvision
6 from torchvision.models.detection.rpn import AnchorGenerator
7
8 def very_simple_param_count(model):
9 result = sum([p.numel() for p in model.parameters()])
10 return result
11
12 class DecideNet(nn.Module):
13 """
14 Purpose this model is to count number of parameters in DecideNet
15 (https://arxiv.org/pdf/1712.06679.pdf)
16 It does not implement decide net correctly
17 Just 'nearly' correct to estimate number of parameters
18 """
19 def __init__(self, load_weights=False):
20 super(DecideNet, self).__init__()
21 self.seen = 0
22 self.reg_net_feat = [(7, 20, 1), (5, 40, 1), (5, 20, 1), (5, 10, 1), (1, 1, 1)]
23 self.reg_net = make_layers(self.reg_net_feat, 3)
24 self.quality_net_feat = [(7, 20, 1), (5, 40, 1), (5, 20, 1), (1, 1, 1)]
25 self.quality_net = make_layers(self.quality_net_feat, 3)
26 # backbone = torchvision.models.mobilenet_v2(pretrained=False).features
27 backbone = torchvision.models.detection.backbone_utils.resnet_fpn_backbone('resnet101','False')
28 # model = torchvision.models.detection.fasterrcnn_resnet50_fpn()
29 # backbone.out_channels = 1280
30 anchor_generator = AnchorGenerator(sizes=((32, 64, 128, 256, 512),),
31 aspect_ratios=((0.5, 1.0, 2.0),))
32 roi_pooler = torchvision.ops.MultiScaleRoIAlign(featmap_names=[0],
33 output_size=7,
34 sampling_ratio=2)
35 self.fastercnn = FasterRCNN(backbone,
36 num_classes=2,
37 rpn_anchor_generator=anchor_generator,
38 box_roi_pool=roi_pooler)
39
40
41
42 def forward(self, x):
43 x = self.frontend(x)
44 x = self.backend(x)
45 x = self.output_layer(x)
46
47 # remove channel dimension
48 # (N, C_{out}, H_{out}, W_{out}) => (N, H_{out}, W_{out})
49 x = torch.squeeze(x, dim=1)
50 return x
51
52 # def _initialize_weights(self):
53 # for m in self.modules():
54 # if isinstance(m, nn.Conv2d):
55 # nn.init.normal_(m.weight, std=0.01)
56 # if m.bias is not None:
57 # nn.init.constant_(m.bias, 0)
58 # elif isinstance(m, nn.BatchNorm2d):
59 # nn.init.constant_(m.weight, 1)
60 # nn.init.constant_(m.bias, 0)
61
62
63 def make_layers(cfg, in_channels=3, batch_norm=False):
64 layers = []
65 for v in cfg:
66 if v is 'M':
67 layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
68 else:
69 kernel_size = v[0]
70 n_filter = v[1]
71 dilated_rate = v[2]
72 conv2d = nn.Conv2d(in_channels, n_filter, kernel_size=kernel_size, padding=dilated_rate, dilation=dilated_rate)
73 if batch_norm:
74 layers += [conv2d, nn.BatchNorm2d(v), nn.ReLU(inplace=False)]
75 else:
76 layers += [conv2d, nn.ReLU(inplace=False)]
77 in_channels = n_filter
78 return nn.Sequential(*layers)
79
80 if __name__ == "__main__":
81 net = DecideNet()
82 n_param = very_simple_param_count(net)
83 print(n_param)
84 resnet101 = torchvision.models.detection.backbone_utils.resnet_fpn_backbone('resnet101','False')
85 print(very_simple_param_count(resnet101))
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