drjieliu commited on
Commit
890b6a3
1 Parent(s): a61d226

Upload 4 files

Browse files
cage/__init__.py ADDED
File without changes
cage/__pycache__/__init__.cpython-39.pyc ADDED
Binary file (154 Bytes). View file
 
cage/__pycache__/model.cpython-39.pyc ADDED
Binary file (1.2 kB). View file
 
cage/model.py ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os,sys
2
+ import math
3
+ from pretrain.track.model import build_track_model
4
+ import torch.nn as nn
5
+
6
+
7
+ class Downstream_cage_model(nn.Module):
8
+ def __init__(self,pretrain_model,embed_dim,crop):
9
+ super().__init__()
10
+ self.mlp = nn.Sequential(
11
+ nn.Linear(embed_dim, 128),
12
+ nn.ReLU(),
13
+ nn.Linear(128,1)
14
+ )
15
+ self.pretrain_model=pretrain_model
16
+ self.crop=crop
17
+ def forward(self,x):
18
+ x=self.pretrain_model(x)
19
+ out=self.mlp(x[:,self.crop:-self.crop,:])
20
+ return out
21
+
22
+ def build_cage_model(args):
23
+ pretrain_model=build_track_model(args)
24
+ model=Downstream_cage_model(
25
+ pretrain_model=pretrain_model,
26
+ embed_dim=args.embed_dim,
27
+ crop=args.crop
28
+ )
29
+ return model
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ # import os,sys
43
+ # # import inspect
44
+ # # currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
45
+ # # parentdir = os.path.dirname(currentdir)
46
+ # # sys.path.insert(0, parentdir)
47
+ # from pretrain.track.layers import AttentionPool,Enformer,CNN
48
+ # from pretrain.track.transformers import Transformer
49
+ # from einops.layers.torch import Rearrange
50
+ # from einops import rearrange
51
+ # import torch
52
+ # import torch.nn as nn
53
+ # import torch.nn.functional as F
54
+ #
55
+ #
56
+ # class Convblock(nn.Module):
57
+ # def __init__(self,in_channel,kernel_size,dilate_size,dropout=0.1):
58
+ # super().__init__()
59
+ # self.conv=nn.Sequential(
60
+ # nn.Conv2d(
61
+ # in_channel, in_channel,
62
+ # kernel_size, padding=self.pad(kernel_size, dilate_size),
63
+ # dilation=dilate_size),
64
+ # nn.GroupNorm(16, in_channel),
65
+ # nn.Dropout(dropout)
66
+ # )
67
+ # def pad(self,kernelsize, dialte_size):
68
+ # return (kernelsize - 1) * dialte_size // 2
69
+ # def symmetric(self,x):
70
+ # return (x + x.permute(0,1,3,2)) / 2
71
+ # def forward(self,x):
72
+ # identity=x
73
+ # out=self.conv(x)
74
+ # x=out+identity
75
+ # x=self.symmetric(x)
76
+ # return F.relu(x)
77
+ #
78
+ # class dilated_tower(nn.Module):
79
+ # def __init__(self,embed_dim,in_channel=48,kernel_size=9,dilate_rate=4):
80
+ # super().__init__()
81
+ # dilate_convs=[]
82
+ # for i in range(dilate_rate+1):
83
+ # dilate_convs.append(
84
+ # Convblock(in_channel,kernel_size=kernel_size,dilate_size=2**i))
85
+ #
86
+ # self.cnn=nn.Sequential(
87
+ # Rearrange('b l n d -> b d l n'),
88
+ # nn.Conv2d(embed_dim, in_channel, kernel_size=1),
89
+ # *dilate_convs,
90
+ # nn.Conv2d(in_channel, in_channel, kernel_size=1),
91
+ # Rearrange('b d l n -> b l n d'),
92
+ # )
93
+ # def forward(self,x,crop):
94
+ # x=self.cnn(x)
95
+ # x=x[:,crop:-crop,crop:-crop,:]
96
+ # return x
97
+ #
98
+ #
99
+ # class Tranmodel(nn.Module):
100
+ # def __init__(self, backbone, transfomer):
101
+ # super().__init__()
102
+ # self.backbone = backbone
103
+ # self.transformer = transfomer
104
+ # hidden_dim = transfomer.d_model
105
+ # self.input_proj = nn.Conv1d(backbone.num_channels, hidden_dim, kernel_size=1)
106
+ # def forward(self, input):
107
+ # input=rearrange(input,'b n c l -> (b n) c l')
108
+ # src = self.backbone(input)
109
+ # src=self.input_proj(src)
110
+ # src = self.transformer(src)
111
+ # return src
112
+ #
113
+ # class finetunemodel(nn.Module):
114
+ # def __init__(self, pretrain_model, hidden_dim, embed_dim, bins, crop=25):
115
+ # super().__init__()
116
+ # self.pretrain_model = pretrain_model
117
+ # self.bins = bins
118
+ # self.crop = crop
119
+ # self.attention_pool = AttentionPool(hidden_dim)
120
+ # self.project = nn.Sequential(
121
+ # Rearrange('(b n) c -> b c n', n=bins),
122
+ # nn.Conv1d(hidden_dim, hidden_dim, kernel_size=9, padding=4, groups=hidden_dim),
123
+ # nn.InstanceNorm1d(hidden_dim, affine=True),
124
+ # nn.Conv1d(hidden_dim, embed_dim, kernel_size=1),
125
+ # nn.ReLU(inplace=True),
126
+ # nn.Dropout(0.2)
127
+ # )
128
+ # self.transformer = Enformer(dim=embed_dim, depth=4, heads=6)
129
+ # self.prediction_head = nn.Sequential(
130
+ # nn.Linear(embed_dim, 1)
131
+ # )
132
+ #
133
+ #
134
+ # def forward(self, x):
135
+ # # x = rearrange(x, 'b n c l -> (b n) c l')
136
+ # x = self.pretrain_model(x)
137
+ # x = self.attention_pool(x)
138
+ # x = self.project(x)
139
+ # x = rearrange(x, 'b c n -> b n c')
140
+ # x = self.transformer(x)
141
+ # x = self.prediction_head(x[:, self.crop:-self.crop, :])
142
+ # return x
143
+ #
144
+ # def build_backbone():
145
+ # model = CNN()
146
+ # return model
147
+ # def build_transformer(args):
148
+ # return Transformer(
149
+ # d_model=args.hidden_dim,
150
+ # dropout=args.dropout,
151
+ # nhead=args.nheads,
152
+ # dim_feedforward=args.dim_feedforward,
153
+ # num_encoder_layers=args.enc_layers,
154
+ # num_decoder_layers=args.dec_layers
155
+ # )
156
+ # def build_cage_model(args):
157
+ # backbone = build_backbone()
158
+ # transformer = build_transformer(args)
159
+ # pretrain_model = Tranmodel(
160
+ # backbone=backbone,
161
+ # transfomer=transformer,
162
+ # )
163
+ #
164
+ # model=finetunemodel(pretrain_model,hidden_dim=args.hidden_dim,embed_dim=args.embed_dim,
165
+ # bins=args.bins,crop=args.crop)
166
+ # return model