Subject | Hash | Author | Date (UTC) |
---|---|---|---|
m3 t123 exp | f76cec015c34648ec45f02865562f6d05d507eb2 | Thai Thien | 2020-04-03 15:27:22 |
m1 shb | 35455b092280af7e7f3140601b909dc58b5c2590 | Thai Thien | 2020-04-02 10:42:43 |
m2 | 765cc07c3d3645b897f53b54f905b8a9c3aa0ac3 | Thai Thien | 2020-04-02 10:37:47 |
typo again | 3e12138f4effbbb0fb8dc1e5aa98c7f8a689d737 | Thai Thien | 2020-04-02 10:34:01 |
ok dude | 19a59daa4433b0dc4fb24023dff428928090ab7b | Thai Thien | 2020-04-02 10:31:17 |
typo | 91cbb50105fb85140e9e34261bbaf580f788425d | Thai Thien | 2020-04-02 10:29:55 |
1 debug trainning script | 5f075f3774502190ecb71f663222ee0808b5a2ef | Thai Thien | 2020-04-02 10:28:05 |
setting up code | 6e83edd7283bfeec6ec1a6e5057719e8ae95e8ea | Thai Thien | 2020-04-02 10:25:18 |
fix typo | f7565a25dc7058d1f344cc0d6e610fa2bf8f19e9 | Thai Thien | 2020-04-01 10:58:38 |
t4 aug | 36b5bbc17111dca87cfa082f5a512b84576c8fca | Thai Thien | 2020-04-01 10:55:12 |
reproduce ccnn without batchnorm | e4678b328ba9d00b9d94617a1cd0f34732f7b2ac | Thai Thien | 2020-03-30 16:48:35 |
change gpu number | f4c616536d13d4caf383166caae0d8298cb73738 | Thai Thien | 2020-03-28 04:17:37 |
train custom ccnn_v2 | 8b6fca9cd3cb15111befd7332bc7e764d5494a66 | Thai Thien | 2020-03-28 03:51:07 |
v5 | 24e4a8a9c8948c21b0d6beadec0418adceec8577 | Thai Thien | 2020-03-20 17:56:32 |
hope it fix cuda bug | 7b8cbb70550df279035ef56a22450d17fed6b29a | Thai Thien | 2020-03-20 17:55:24 |
ccnnv4 sha | a4acad0caf5a18fc9ea037a5e3d6db9d6b6106c7 | Thai Thien | 2020-03-20 17:38:30 |
change gpu | fa2c1c54858d8a57585c3801dc168c464ba689dd | Thai Thien | 2020-03-18 17:31:38 |
fix typo again | d71ce17c4efbcc2cd31917f0e27e90bd964ac964 | Thai Thien | 2020-03-18 17:30:34 |
typo again | c16871fb2cc035e168d62df9c5d4401bc465df95 | Thai Thien | 2020-03-18 17:27:45 |
fix minor typo | 01d907dda5c1e4c08b5ca5607aa77365cfd70a2e | Thai Thien | 2020-03-18 17:25:32 |
File | Lines added | Lines deleted |
---|---|---|
experiment_meow_main.py | 5 | 1 |
models/meow_experiment/kitten_meow_1.py | 69 | 0 |
train_script/meow_one/m2_t1_sha.sh | 0 | 0 |
train_script/meow_one/m3_t1_sha.sh | 3 | 3 |
train_script/meow_one/m3_t2_sha.sh | 4 | 4 |
train_script/meow_one/m3_t3_sha.sh | 13 | 0 |
File experiment_meow_main.py changed (mode: 100644) (index 7b76dc2..3852e31) | |||
... | ... | from visualize_util import get_readable_time | |
11 | 11 | ||
12 | 12 | import torch | import torch |
13 | 13 | from torch import nn | from torch import nn |
14 | from models.meow_experiment.kitten_meow_1 import M1, M2 | ||
14 | from models.meow_experiment.kitten_meow_1 import M1, M2, M3 | ||
15 | 15 | import os | import os |
16 | 16 | from model_util import get_lr | from model_util import get_lr |
17 | 17 | ||
18 | 18 | COMET_ML_API = "S3mM1eMq6NumMxk2QJAXASkUM" | COMET_ML_API = "S3mM1eMq6NumMxk2QJAXASkUM" |
19 | 19 | PROJECT_NAME = "meow-one-experiment-insita" | PROJECT_NAME = "meow-one-experiment-insita" |
20 | 20 | ||
21 | |||
21 | 22 | def very_simple_param_count(model): | def very_simple_param_count(model): |
22 | 23 | result = sum([p.numel() for p in model.parameters()]) | result = sum([p.numel() for p in model.parameters()]) |
23 | 24 | return result | return result |
24 | 25 | ||
26 | |||
25 | 27 | if __name__ == "__main__": | if __name__ == "__main__": |
26 | 28 | experiment = Experiment(project_name=PROJECT_NAME, api_key=COMET_ML_API) | experiment = Experiment(project_name=PROJECT_NAME, api_key=COMET_ML_API) |
27 | 29 | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
... | ... | if __name__ == "__main__": | |
61 | 63 | model = M1() | model = M1() |
62 | 64 | elif model_name == "M2": | elif model_name == "M2": |
63 | 65 | model = M2() | model = M2() |
66 | elif model_name == "M3": | ||
67 | model = M3() | ||
64 | 68 | else: | else: |
65 | 69 | print("error: you didn't pick a model") | print("error: you didn't pick a model") |
66 | 70 | exit(-1) | exit(-1) |
File models/meow_experiment/kitten_meow_1.py changed (mode: 100644) (index 055ce5f..43169dd) | |||
... | ... | from models.deform_conv_v2 import DeformConv2d, TorchVisionBasicDeformConv2d | |
5 | 5 | import collections | import collections |
6 | 6 | import torch.nn.functional as F | import torch.nn.functional as F |
7 | 7 | ||
8 | class M3(nn.Module): | ||
9 | """ | ||
10 | A REAL-TIME DEEP NETWORK FOR CROWD COUNTING | ||
11 | https://arxiv.org/pdf/2002.06515.pdf | ||
12 | the improve version | ||
13 | |||
14 | we change 5x5 7x7 9x9 with 3x3 | ||
15 | Keep the tail | ||
16 | """ | ||
17 | def __init__(self, load_weights=False): | ||
18 | super(M3, self).__init__() | ||
19 | self.model_note = "We replace 5x5 7x7 9x9 with 3x3, no batchnorm yet, tail dilated" | ||
20 | # self.red_cnn = nn.Conv2d(3, 10, 9, padding=4) | ||
21 | # self.green_cnn = nn.Conv2d(3, 14, 7, padding=3) | ||
22 | # self.blue_cnn = nn.Conv2d(3, 16, 5, padding=2) | ||
23 | |||
24 | # ideal from crowd counting using DMCNN | ||
25 | self.front_cnn_1 = nn.Conv2d(3, 20, 3, padding=1) | ||
26 | self.front_cnn_2 = nn.Conv2d(20, 16, 3, padding=1) | ||
27 | self.front_cnn_3 = nn.Conv2d(16, 14, 3, padding=1) | ||
28 | self.front_cnn_4 = nn.Conv2d(14, 10, 3, padding=1) | ||
29 | |||
30 | self.c0 = nn.Conv2d(40, 40, 3, padding=1) | ||
31 | self.max_pooling = nn.MaxPool2d(kernel_size=2, stride=2) | ||
32 | |||
33 | self.c1 = nn.Conv2d(40, 60, 3, padding=1) | ||
34 | |||
35 | # ideal from CSRNet | ||
36 | self.c2 = nn.Conv2d(60, 40, 3, padding=2, dilation=2) | ||
37 | self.c3 = nn.Conv2d(40, 20, 3, padding=2, dilation=2) | ||
38 | self.c4 = nn.Conv2d(20, 10, 3, padding=2, dilation=2) | ||
39 | self.output = nn.Conv2d(10, 1, 1) | ||
40 | |||
41 | def forward(self,x): | ||
42 | #x_red = self.max_pooling(F.relu(self.red_cnn(x), inplace=True)) | ||
43 | #x_green = self.max_pooling(F.relu(self.green_cnn(x), inplace=True)) | ||
44 | #x_blue = self.max_pooling(F.relu(self.blue_cnn(x), inplace=True)) | ||
45 | |||
46 | x_red = F.relu(self.front_cnn_1(x), inplace=True) | ||
47 | x_red = F.relu(self.front_cnn_2(x_red), inplace=True) | ||
48 | x_red = F.relu(self.front_cnn_3(x_red), inplace=True) | ||
49 | x_red = F.relu(self.front_cnn_4(x_red), inplace=True) | ||
50 | x_red = self.max_pooling(x_red) | ||
51 | |||
52 | x_green = F.relu(self.front_cnn_1(x), inplace=True) | ||
53 | x_green = F.relu(self.front_cnn_2(x_green), inplace=True) | ||
54 | x_green = F.relu(self.front_cnn_3(x_green), inplace=True) | ||
55 | x_green = self.max_pooling(x_green) | ||
56 | |||
57 | x_blue = F.relu(self.front_cnn_1(x), inplace=True) | ||
58 | x_blue = F.relu(self.front_cnn_2(x_blue), inplace=True) | ||
59 | x_blue = self.max_pooling(x_blue) | ||
60 | |||
61 | x = torch.cat((x_red, x_green, x_blue), 1) | ||
62 | x = F.relu(self.c0(x), inplace=True) | ||
63 | |||
64 | x = F.relu(self.c1(x), inplace=True) | ||
65 | |||
66 | x = F.relu(self.c2(x), inplace=True) | ||
67 | x = self.max_pooling(x) | ||
68 | |||
69 | x = F.relu(self.c3(x), inplace=True) | ||
70 | x = self.max_pooling(x) | ||
71 | |||
72 | x = F.relu(self.c4(x), inplace=True) | ||
73 | |||
74 | x = self.output(x) | ||
75 | return x | ||
76 | |||
8 | 77 | ||
9 | 78 | class M1(nn.Module): | class M1(nn.Module): |
10 | 79 | """ | """ |
File train_script/meow_one/m2_t1_sha.sh copied from file train_script/meow_one/m1_t2_sha.sh (similarity 100%) |
File train_script/meow_one/m3_t1_sha.sh copied from file train_script/meow_one/m1_t1_sha.sh (similarity 72%) (mode: 100644) (index bcdb158..a01a2dd) | |||
1 | task="m1_t1_sha" | ||
1 | task="m3_t1_sha" | ||
2 | 2 | ||
3 | 3 | CUDA_VISIBLE_DEVICES=1 HTTPS_PROXY="http://10.30.58.36:81" nohup python experiment_meow_main.py \ | CUDA_VISIBLE_DEVICES=1 HTTPS_PROXY="http://10.30.58.36:81" nohup python experiment_meow_main.py \ |
4 | 4 | --task_id $task \ | --task_id $task \ |
5 | --note "m1 sha shanghaitech_keepfull with decay, change the head, keep the tail " \ | ||
6 | --model "M1" \ | ||
5 | --note "m3 sha shanghaitech_keepfull with decay, change the head, tail dilated" \ | ||
6 | --model "M3" \ | ||
7 | 7 | --input /data/rnd/thient/thient_data/ShanghaiTech/part_A \ | --input /data/rnd/thient/thient_data/ShanghaiTech/part_A \ |
8 | 8 | --lr 1e-4 \ | --lr 1e-4 \ |
9 | 9 | --decay 1e-4 \ | --decay 1e-4 \ |
File train_script/meow_one/m3_t2_sha.sh renamed from train_script/meow_one/m1_t2_sha.sh (similarity 67%) (mode: 100644) (index a798494..e64545a) | |||
1 | task="m2_t1_sha" | ||
1 | task="m3_t2_sha" | ||
2 | 2 | ||
3 | 3 | CUDA_VISIBLE_DEVICES=2 HTTPS_PROXY="http://10.30.58.36:81" nohup python experiment_meow_main.py \ | CUDA_VISIBLE_DEVICES=2 HTTPS_PROXY="http://10.30.58.36:81" nohup python experiment_meow_main.py \ |
4 | 4 | --task_id $task \ | --task_id $task \ |
5 | --note "m2 sha shanghaitech_keepfull with decay, keep the head but change the tail " \ | ||
6 | --model "M2" \ | ||
5 | --note "m3 sha shanghaitech_keepfull with decay, change the head, tail dilated. x10 decay " \ | ||
6 | --model "M3" \ | ||
7 | 7 | --input /data/rnd/thient/thient_data/ShanghaiTech/part_A \ | --input /data/rnd/thient/thient_data/ShanghaiTech/part_A \ |
8 | 8 | --lr 1e-4 \ | --lr 1e-4 \ |
9 | --decay 1e-4 \ | ||
9 | --decay 1e-3 \ | ||
10 | 10 | --datasetname shanghaitech_keepfull \ | --datasetname shanghaitech_keepfull \ |
11 | 11 | --epochs 502 > logs/$task.log & | --epochs 502 > logs/$task.log & |
12 | 12 |
File train_script/meow_one/m3_t3_sha.sh added (mode: 100644) (index 0000000..0131e28) | |||
1 | task="m3_t3_sha" | ||
2 | |||
3 | CUDA_VISIBLE_DEVICES=3 HTTPS_PROXY="http://10.30.58.36:81" nohup python experiment_meow_main.py \ | ||
4 | --task_id $task \ | ||
5 | --note "m3 sha shanghaitech_keepfull with decay, change the head, tail dilated. x10 decay and x10 lr " \ | ||
6 | --model "M3" \ | ||
7 | --input /data/rnd/thient/thient_data/ShanghaiTech/part_A \ | ||
8 | --lr 1e-3 \ | ||
9 | --decay 1e-3 \ | ||
10 | --datasetname shanghaitech_keepfull \ | ||
11 | --epochs 502 > logs/$task.log & | ||
12 | |||
13 | echo logs/$task.log # for convenience |