Я только начал узнавать о RNN, и я пытаюсь использовать его для решения проблемы, когда я делаю 16 измерений, которые происходят последовательно во времени, и использую их в качестве входных данных для моей модели, чтобы предсказать 17-е значение измерения (между -1 и +1). Все мои данные находятся в текстовом файле, где каждая строка представляет собой один эксперимент (т.е. 16 значений в последовательности, разделенных TAB), файл имеет в общей сложности 2000 строк, то есть 2000 экспериментов. 17-е измерение для каждого эксперимента находится в другом файле, где измерение находится в той же строке, что и соответствующий эксперимент в первом файле.
Итак, я считаю, что мне нужно создать модель, в которой каждый вход имеет измерение 1 и он имеет 16 шагов, прежде чем вернуть мне прогнозируемый результат для 17-го значения. Также я хочу тренировать свою модель с партиями из 64 экспериментов. Это будет однослойная сеть с 10 нейронами. Я пробовал много способов, но у меня всегда есть некоторые проблемы с размерами матрицы, возможно, потому, что я все еще не мог понять, как использовать RNN или RNNCell в pytorch.
Может кто-нибудь помочь мне здесь?
Вот как я определил свою модель:
class BasicRNN(nn.Module):
def __init__(self, batch_size, n_inputs, n_neurons):
super(BasicRNN, self).__init__()
self.rnn = nn.RNNCell(n_inputs, n_neurons)
self.hx = torch.zeros(batch_size, n_neurons)
self.fc1 = nn.Linear(n_neurons, 1)
self.batch_size = batch_size
self.n_neurons = n_neurons
def init_hidden(self, ):
return torch.zeros(self.batch_size, self.n_neurons)
def forward(self, X):
self.hx = self.init_hidden()
for i in range(16):
self.hx = self.rnn(X[i], self.hx)
return torch.tanh(self.fc1(self.hx))
Спасибо