Подготовка данных для пыточного РНН - время серии - PullRequest
0 голосов
/ 05 апреля 2020

Я только начал узнавать о 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))

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...