Python torch.nn.RNNBase() Examples
The following are 6
code examples of torch.nn.RNNBase().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.nn
, or try the search function
.
Example #1
Source File: layers.py From TorchFusion with MIT License | 6 votes |
def __init__(self,mode, input_size, hidden_size, num_layers=1, bias=True, batch_first=False, dropout=0, bidirectional=False,weight_init=None): """ :param mode: :param input_size: :param hidden_size: :param num_layers: :param bias: :param batch_first: :param dropout: :param bidirectional: :param weight_init: """ super(RNNBase,self).__init__(mode, input_size, hidden_size, num_layers, bias, batch_first, dropout,bidirectional) if weight_init is not None: for weight in super(RNNBase, self).parameters(): weight_init(weight)
Example #2
Source File: head.py From lumin with Apache License 2.0 | 5 votes |
def __init__(self, cont_feats:List[str], vecs:List[str], feats_per_vec:List[str], depth:int, width:int, bidirectional:bool=False, rnn:nn.RNNBase=nn.RNN, do:float=0., act:str='tanh', stateful:bool=False, freeze:bool=False, **kargs): super().__init__(cont_feats=cont_feats, vecs=vecs, feats_per_vec=feats_per_vec, row_wise=True, freeze=freeze) self.stateful,self.width,self.bidirectional = stateful,width,bidirectional p = partial(rnn, input_size=self.n_fpv, hidden_size=width, num_layers=depth, bias=True, batch_first=True, dropout=do, bidirectional=bidirectional) try: self.rnn = p(nonlinearity=act) except TypeError: self.rnn = p() self._init_rnn(width) self._map_outputs() if self.freeze: self.freeze_layers()
Example #3
Source File: initialization.py From joeynmt with Apache License 2.0 | 5 votes |
def orthogonal_rnn_init_(cell: nn.RNNBase, gain: float = 1.): """ Orthogonal initialization of recurrent weights RNN parameters contain 3 or 4 matrices in one parameter, so we slice it. """ with torch.no_grad(): for _, hh, _, _ in cell.all_weights: for i in range(0, hh.size(0), cell.hidden_size): nn.init.orthogonal_(hh.data[i:i + cell.hidden_size], gain=gain)
Example #4
Source File: initialization.py From joeynmt with Apache License 2.0 | 5 votes |
def lstm_forget_gate_init_(cell: nn.RNNBase, value: float = 1.) -> None: """ Initialize LSTM forget gates with `value`. :param cell: LSTM cell :param value: initial value, default: 1 """ with torch.no_grad(): for _, _, ih_b, hh_b in cell.all_weights: l = len(ih_b) ih_b.data[l // 4:l // 2].fill_(value) hh_b.data[l // 4:l // 2].fill_(value)
Example #5
Source File: dropout.py From ByteCup2018 with MIT License | 5 votes |
def _setup(self): # Terrible temporary solution to an issue regarding compacting weights re: CUDNN RNN if issubclass(type(self.module), nn.RNNBase): self.module.flatten_parameters = self.widget_demagnetizer_y2k_edition for name_w in self.weights: print('Applying weight drop of {} to {}'.format(self.dropout, name_w)) w = getattr(self.module, name_w) del self.module._parameters[name_w] self.module.register_parameter(name_w + '_raw', nn.Parameter(w.data))
Example #6
Source File: layers.py From ESIM with Apache License 2.0 | 4 votes |
def __init__(self, rnn_type, input_size, hidden_size, num_layers=1, bias=True, dropout=0.0, bidirectional=False): """ Args: rnn_type: The type of RNN to use as encoder in the module. Must be a class inheriting from torch.nn.RNNBase (such as torch.nn.LSTM for example). input_size: The number of expected features in the input of the module. hidden_size: The number of features in the hidden state of the RNN used as encoder by the module. num_layers: The number of recurrent layers in the encoder of the module. Defaults to 1. bias: If False, the encoder does not use bias weights b_ih and b_hh. Defaults to True. dropout: If non-zero, introduces a dropout layer on the outputs of each layer of the encoder except the last one, with dropout probability equal to 'dropout'. Defaults to 0.0. bidirectional: If True, the encoder of the module is bidirectional. Defaults to False. """ assert issubclass(rnn_type, nn.RNNBase),\ "rnn_type must be a class inheriting from torch.nn.RNNBase" super(Seq2SeqEncoder, self).__init__() self.rnn_type = rnn_type self.input_size = input_size self.hidden_size = hidden_size self.num_layers = num_layers self.bias = bias self.dropout = dropout self.bidirectional = bidirectional self._encoder = rnn_type(input_size, hidden_size, num_layers=num_layers, bias=bias, batch_first=True, dropout=dropout, bidirectional=bidirectional)