MCPcopy Create free account
hub / github.com/Tencent/NeuralNLP-NeuralClassifier / __init__

Method __init__

model/classification/textvdcnn.py:27–69  ·  view source on GitHub ↗

all convolutional blocks 4 kinds of conv blocks, which #feature_map are 64,128,256,512 Depth: 9 17 29 49 ------------------------------ conv block 512: 2 4 4 6 conv block 256: 2 4 4 10 conv block 128: 2 4 10 16 con

(self, dataset, config)

Source from the content-addressed store, hash-verified

25
26class TextVDCNN(Classifier):
27 def __init__(self, dataset, config):
28 """all convolutional blocks
29 4 kinds of conv blocks, which #feature_map are 64,128,256,512
30 Depth: 9 17 29 49
31 ------------------------------
32 conv block 512: 2 4 4 6
33 conv block 256: 2 4 4 10
34 conv block 128: 2 4 10 16
35 conv block 64: 2 4 10 16
36 First conv. layer: 1 1 1 1
37 """
38 super(TextVDCNN, self).__init__(dataset, config)
39
40 self.vdcnn_num_convs = {}
41 self.vdcnn_num_convs[9] = [2, 2, 2, 2]
42 self.vdcnn_num_convs[17] = [4, 4, 4, 4]
43 self.vdcnn_num_convs[29] = [10, 10, 4, 4]
44 self.vdcnn_num_convs[49] = [16, 16, 10, 6]
45 self.num_kernels = [64, 128, 256, 512]
46
47 self.vdcnn_depth = config.TextVDCNN.vdcnn_depth
48 self.first_conv = torch.nn.Conv1d(config.embedding.dimension, 64, 3,
49 padding=2)
50 last_num_kernel = 64
51 self.convs = torch.nn.ModuleList()
52 self.batch_norms = torch.nn.ModuleList()
53 for i, num_kernel in enumerate(self.num_kernels):
54 tmp_convs = torch.nn.ModuleList()
55 tmp_batch_norms = torch.nn.ModuleList()
56 for _ in range(0, self.vdcnn_num_convs[self.vdcnn_depth][i]):
57 tmp_convs.append(
58 torch.nn.Conv1d(last_num_kernel, num_kernel, 3, padding=2))
59 tmp_batch_norms.append(torch.nn.BatchNorm1d(num_kernel))
60 last_num_kernel = num_kernel
61 self.convs.append(tmp_convs)
62 self.batch_norms.append(tmp_batch_norms)
63
64 self.top_k = self.config.TextVDCNN.top_k_max_pooling
65 hidden_size = self.num_kernels[-1] * self.top_k
66 self.linear1 = torch.nn.Linear(hidden_size, 2048)
67 self.linear2 = torch.nn.Linear(2048, 2048)
68 self.linear = torch.nn.Linear(2048, len(dataset.label_map))
69 self.dropout = torch.nn.Dropout(p=config.train.hidden_layer_dropout)
70
71 def get_parameter_optimizer_dict(self):
72 params = list()

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected