Sarjinkhan2003 commited on
Commit
cf463e1
·
verified ·
1 Parent(s): 70e3211

English model architecture

Browse files
Files changed (1) hide show
  1. english/shobdo_english.py +39 -0
english/shobdo_english.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import torch.nn as nn
3
+ import torch.nn.functional as F
4
+
5
+ class ConvBnRelu(nn.Module):
6
+ def __init__(self,i,o,k=3,s=1,p=1):
7
+ super().__init__()
8
+ self.b=nn.Sequential(nn.Conv2d(i,o,k,s,p,bias=False),nn.BatchNorm2d(o),nn.ReLU(inplace=True))
9
+ def forward(self,x): return self.b(x)
10
+
11
+ class LightCNN(nn.Module):
12
+ def __init__(self):
13
+ super().__init__()
14
+ self.b1=nn.Sequential(ConvBnRelu(1,32),ConvBnRelu(32,32),nn.MaxPool2d(2,2))
15
+ self.b2=nn.Sequential(ConvBnRelu(32,64),ConvBnRelu(64,64),nn.MaxPool2d(2,2))
16
+ self.b3=nn.Sequential(ConvBnRelu(64,128),ConvBnRelu(128,128),nn.MaxPool2d((2,1)))
17
+ self.b4=nn.Sequential(ConvBnRelu(128,256),ConvBnRelu(256,256),nn.MaxPool2d((2,1)))
18
+ self.b5=nn.Sequential(ConvBnRelu(256,256),ConvBnRelu(256,256))
19
+ self.pool=nn.AdaptiveAvgPool2d((1,None))
20
+ def forward(self,x):
21
+ for b in [self.b1,self.b2,self.b3,self.b4,self.b5]: x=b(x)
22
+ return self.pool(x).squeeze(2)
23
+
24
+ class BiLSTM(nn.Module):
25
+ def __init__(self,i,h,o):
26
+ super().__init__()
27
+ self.rnn=nn.LSTM(i,h,bidirectional=True,batch_first=True)
28
+ self.fc=nn.Linear(h*2,o)
29
+ def forward(self,x): o,_=self.rnn(x); return self.fc(o)
30
+
31
+ class Model(nn.Module):
32
+ def __init__(self,input_channel,output_channel,hidden_size,num_class):
33
+ super().__init__()
34
+ self.cnn=LightCNN()
35
+ self.rnn=nn.Sequential(BiLSTM(256,hidden_size,hidden_size),BiLSTM(hidden_size,hidden_size,num_class))
36
+ def forward(self,x):
37
+ f=self.cnn(x).permute(0,2,1)
38
+ o=self.rnn(f).permute(1,0,2)
39
+ return F.log_softmax(o,dim=2)