MCPcopy Index your code
hub / github.com/Turing-Project/WriteGPT / RNNEncoder

Class RNNEncoder

LanguageNetwork/BERT/models/encoder.py:109–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107
108
109class RNNEncoder(nn.Module):
110
111 def __init__(self, bidirectional, num_layers, input_size,
112 hidden_size, dropout=0.0):
113 super(RNNEncoder, self).__init__()
114 num_directions = 2 if bidirectional else 1
115 assert hidden_size % num_directions == 0
116 hidden_size = hidden_size // num_directions
117
118 self.rnn = LayerNormLSTM(
119 input_size=input_size,
120 hidden_size=hidden_size,
121 num_layers=num_layers,
122 bidirectional=bidirectional)
123
124 self.wo = nn.Linear(num_directions * hidden_size, 1, bias=True)
125 self.dropout = nn.Dropout(dropout)
126 self.sigmoid = nn.Sigmoid()
127
128 def forward(self, x, mask):
129 """See :func:`EncoderBase.forward()`"""
130 x = torch.transpose(x, 1, 0)
131 memory_bank, _ = self.rnn(x)
132 memory_bank = self.dropout(memory_bank) + x
133 memory_bank = torch.transpose(memory_bank, 1, 0)
134
135 sent_scores = self.sigmoid(self.wo(memory_bank))
136 sent_scores = sent_scores.squeeze(-1) * mask.float()
137 return sent_scores

Callers 1

__init__Method · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected