load_data.py 845 Bytes
Newer Older
1
2
import numpy as np
import pandas as pd
3
import torch
4
5
6
7


def load_data(file_path, len_train, len_val):
    df = pd.read_csv(file_path, header=None).values.astype(float)
8
9
10
    train = df[:len_train]
    val = df[len_train : len_train + len_val]
    test = df[len_train + len_val :]
11
12
13
14
15
16
17
    return train, val, test


def data_transform(data, n_his, n_pred, device):
    # produce data slices for training and testing
    n_route = data.shape[1]
    l = len(data)
18
    num = l - n_his - n_pred
19
20
    x = np.zeros([num, 1, n_his, n_route])
    y = np.zeros([num, n_route])
21

22
    cnt = 0
23
    for i in range(l - n_his - n_pred):
24
25
        head = i
        tail = i + n_his
26
        x[cnt, :, :, :] = data[head:tail].reshape(1, n_his, n_route)
27
28
29
        y[cnt] = data[tail + n_pred - 1]
        cnt += 1
    return torch.Tensor(x).to(device), torch.Tensor(y).to(device)