-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinstance_embedders.py
More file actions
33 lines (25 loc) · 967 Bytes
/
instance_embedders.py
File metadata and controls
33 lines (25 loc) · 967 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import torch.nn as nn
class IdentityEmbedder(nn.Module):
def __init__(self):
super(IdentityEmbedder, self).__init__()
def forward(self, x):
return x
class AdaptiveAvgPoolingEmbedder(nn.Module):
def __init__(self, output_size):
super(AdaptiveAvgPoolingEmbedder, self).__init__()
self.adaptive_avg_pool = nn.AdaptiveAvgPool1d(output_size)
def forward(self, x):
return self.adaptive_avg_pool(x)
class LinearEmbedder(nn.Module):
def __init__(self, input_size, output_size):
super(LinearEmbedder, self).__init__()
self.linear = nn.Linear(input_size, output_size)
def forward(self, x):
return self.linear(x)
class SliceEmbedder(nn.Module):
def __init__(self, output_size):
super(SliceEmbedder, self).__init__()
self.output_size = output_size
def forward(self, x):
# slide over the last dimension of x
return x[..., :self.output_size]