File size: 1,169 Bytes
f2f112a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import torch
import numpy as np
import copy
import torch.nn.functional as F

class ScoreFunctionConv(torch.nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.d_model = 64
        self.n_head = 4
        self.norm = torch.nn.LayerNorm(self.d_model)
        self.Attention = torch.nn.MultiheadAttention(self.d_model, self.n_head, dropout=0)
        self.conv1 = torch.nn.Conv1d(10, self.d_model, 1, stride=1)
        self.Linear1 = torch.nn.Linear(10,64)
        self.Linear2 = torch.nn.Linear(64,32)
        self.Linear3 = torch.nn.Linear(32,16)
        self.Linear4 = torch.nn.Linear(16,1)
        self.Linear5 = torch.nn.Linear(64,1)
        self.Linear6 = torch.nn.Linear(10,1)
        self.Norm = torch.nn.BatchNorm1d(self.d_model)
        self.Activation1 = torch.nn.ReLU()
        self.Activation2 = torch.nn.Sigmoid()

    def forward(self, input):
        output = self.conv1(input.unsqueeze(dim=2)).squeeze(dim=2)
        if output.shape[0] > 1:
            output = self.Norm(output)
        output = self.Activation1(output)
        output = self.Linear5(output)
        output = self.Activation2(output)
        return output