ele-sage commited on
Commit
34f7798
·
verified ·
1 Parent(s): 18dd84e

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. config.json +22 -0
  2. model.py +39 -0
  3. model.safetensors +3 -0
  4. tokenizer.json +0 -0
config.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BiLSTMClassifier"
4
+ ],
5
+ "model_type": "bilstm",
6
+ "vocab_size": 4000,
7
+ "embedding_dim": 64,
8
+ "hidden_dim": 128,
9
+ "num_layers": 2,
10
+ "dropout": 0.1,
11
+ "max_len": 128,
12
+ "id2label": {
13
+ "0": "COMPANY",
14
+ "1": "PERSON"
15
+ },
16
+ "label2id": {
17
+ "COMPANY": 0,
18
+ "PERSON": 1
19
+ },
20
+ "transformers_version": "4.x",
21
+ "dtype": "float32"
22
+ }
model.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import torch.nn as nn
3
+ from torch.nn.utils.rnn import pack_padded_sequence
4
+
5
+ class BiLSTMClassifier(nn.Module):
6
+ def __init__(self, vocab_size, embedding_dim, hidden_dim, num_layers=2, dropout=0.3):
7
+ super(BiLSTMClassifier, self).__init__()
8
+ self.embedding = nn.Embedding(vocab_size, embedding_dim, padding_idx=0)
9
+ self.lstm = nn.LSTM(
10
+ embedding_dim,
11
+ hidden_dim,
12
+ num_layers=num_layers,
13
+ batch_first=True,
14
+ bidirectional=True,
15
+ dropout=dropout
16
+ )
17
+ self.dropout = nn.Dropout(dropout)
18
+ self.fc1 = nn.Linear(hidden_dim * 2, hidden_dim)
19
+ self.relu = nn.ReLU()
20
+ self.fc2 = nn.Linear(hidden_dim, 1)
21
+
22
+ def forward(self, x, lengths):
23
+ embedded = self.embedding(x)
24
+ packed_embedded = pack_padded_sequence(embedded, lengths.cpu(), batch_first=True, enforce_sorted=False)
25
+ packed_output, (hidden, cell) = self.lstm(packed_embedded)
26
+
27
+ # Reshape to separate layers and directions
28
+ hidden = hidden.view(self.lstm.num_layers, 2, -1, self.lstm.hidden_size)
29
+ last_layer_hidden = hidden[-1]
30
+
31
+ # Concat Forward + Backward
32
+ cat_hidden = torch.cat((last_layer_hidden[0], last_layer_hidden[1]), dim=1)
33
+
34
+ # Classification Head
35
+ x = self.dropout(cat_hidden)
36
+ x = self.fc1(x)
37
+ x = self.relu(x)
38
+ x = self.dropout(x)
39
+ return self.fc2(x)
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:31713282abb78f5f1718a1c74123c9f529af0c885078fe13e5ded2906e66467a
3
+ size 3533580
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff