Поезд временных рядов в PyTorch - PullRequest
1 голос
/ 30 мая 2019

Я хочу обучить модель RNN так, чтобы я мог прогнозировать T шагов вперед в модели временных рядов.Большинство примеров, которые я видел до сих пор, сосредоточены вокруг текста.

Игрушечный пример, который я имею, состоит в том, чтобы предсказать 3 синусоиды, как показано ниже:

x = torch.arange(0,30,0.05)
y = [torch.sin(x), torch.sin(x-np.pi), torch.sin(x-np.pi/2)]
y = torch.stack(y)
y = y.t()

y имеет форму600,3.Однако для того, чтобы LSTM принял его, вход должен иметь форму (seq_len, batch, input_size).Мне было интересно, если в pytorch есть функция, которая преобразует их в нужный формат.Предположим, что в моем случае я хочу seq_len=50 и batch_size=32.

Этот фрагмент кода от machinelearningmastery был единственным фрагментом кода, который я нашел.

# convert an array of values into a dataset matrix
def create_dataset(dataset, look_back=1):
    dataX, dataY = [], []
    for i in range(len(dataset)-look_back-1):
        a = dataset[i:(i+look_back), 0]
        dataX.append(a)
        dataY.append(dataset[i + look_back, 0])
    return numpy.array(dataX), numpy.array(dataY)

Делает ли pad_packed_sequence или что-то подобное в pytorch изначально так?

Если кому-то интересно, это моя модель LSTM:

class LSTM(nn.Module):
    def __init__(self, n_features, h, num_layers=2):
        super().__init__()
        self.lstm = nn.LSTM(n_features, h, num_layers)
        self.linear = nn.Linear(h, n_features)

    def forward(self, input, h=None):
        lstm_out, self.hidden = self.lstm(input, h)
        return self.linear(lstm_out)

[необязательно Q] Для любого решения, которое я заканчиваюв общем, есть ли способ гарантировать, что я могу выполнять обучение с учетом состояния?

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