Переменная длинна массива на выходе нейросети pytorch
Я пишу нейросеть которая должна анализировать массивы. Я понял что с переменной длинной массива входных данных может справиться рекурентная нейросеть. Есть ли такое же решение, чтобы переменной длинны были массивы на выходе были переменной длинны т.е. на вход подается 5 массивов некоторой одинаковой между собой длинны а на выходе 3 массива тоже некоторой между ними тремя одинаковой но заранее не известной длинны которая зависит от того что находится в 5ти входных массивах
class Estimator(nn.Module):
def __init__(self,input_size,output_size, hidden_size , num_layers ):
super(Estimator, self).__init__()
self.input_size = input_size
self.hidden_size = hidden_size
self.num_layers = num_layers
self.rnn = nn.RNN(input_size=input_size, hidden_size=hidden_size, num_layers=num_layers, batch_first=True,dropout=0.2)
self.bn = nn.BatchNorm1d(hidden_size)
self.fc = nn.Linear(hidden_size, 1000)
self.fc1 = nn.Linear(1000, 800)
self.fc2 = nn.Linear(800, 400)
self.fc3 = nn.Linear(400, 200)
self.fc4 = nn.Linear(200, 50)
self.fc5 = nn.Linear(50, 25)
self.fc6 = nn.Linear(25, 10)
self.fc_output = nn.Linear(10, output_size)
self.relu = nn.ReLU6()
def forward(self, x,):
output, _ = self.rnn(x)
output = self.bn(output)
output = self.relu(output)
output = self.fc(output[-1,:])
output = self.relu(output)
output = self.fc1(output)
output = self.relu(output)
output = self.fc2(output)
output = self.relu(output)
output = self.fc3(output)
output = self.relu(output)
output = self.fc4(output)
output = self.relu(output)
output = self.fc5(output)
output = self.relu(output)
output = self.fc6(output)
output = self.relu(output)
output0 = self.fc_output(output)
output1 = self.fc_output(output)
output2 = self.fc_output(output)
return output0,output1,output2
Вот код на котором я пока добился минимальной ошибки. Как расширить его чтобы output_size можно было либо менять уже после обучения либо он определялся по входным данным?