Вы не можете определить rnn без определения скрытых нейронов.
Давайте посмотрим на официальный пример:
class RNNTutorial(Module):
def __init__(self, input_size, hidden_size,
output_size):
super(RNNTutorial, self).__init__()
self.hidden_size = hidden_size
size_sum = input_size + hidden_size
self.i2h = Linear(size_sum, hidden_size)
self.i2o = Linear(size_sum, output_size)
self.softmax = LogSoftmax(dim=1)
def forward(self, input_, hidden_):
combined = cat(tensors=(input_, hidden_), dim=1)
hidden_ = self.i2h(input=combined)
hidden_ = relu(hidden_)
output = self.i2o(input=combined)
output = self.softmax(input=output)
return output, hidden_
def init_hidden(self):
return zeros(1, self.hidden_size)
Выше - двухслойная структура RNN . На 1-м слое
self.i2h = Linear(size_sum, hidden_size)
Размер скрытого нейрона на входе: size_sum
и на выходе hidden_size
как добавить нейрон? Вы можете изменить значения параметров.
Например: size_sum + 1
теперь вы добавляете еще один скрытый нейрон.