Переменная длинна массива на выходе нейросети 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 можно было либо менять уже после обучения либо он определялся по входным данным?


Ответы (0 шт):