12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from torch.utils.data import Dataset, DataLoader
- import pandas as pd
- import torch
- import numpy as np
- from utils.Arg import Arg
- arg = Arg()
- time_split = arg.time_split
- powermax = arg.power_max
- powermin = arg.power_min
- class TimeSeriesDataset(Dataset):
- def __init__(self, file_inputs_2, file_inputs_3):
- self.inputs_3 = pd.read_csv(file_inputs_3)#18维度
- self.inputs_3 = self.inputs_3.iloc[:,1:-1]
- self.target = pd.read_csv(file_inputs_2 ,usecols=[1])#1维
- self.time = pd.read_csv(file_inputs_2,usecols=[0])
- self.inputs_3.iloc[:,4:12] = np.sin(self.inputs_3.iloc[:,4:12] / 180 * np.pi)
- self.inputs_3.iloc[:,:4] = (self.inputs_3.iloc[:,:4] - self.inputs_3.iloc[:,:4].min()) / (self.inputs_3.iloc[:,:4].max() - self.inputs_3.iloc[:,:4] .min())
- self.inputs_3.iloc[:, 12:] = (self.inputs_3.iloc[:, 12:] - self.inputs_3.iloc[:, 12:].min()) / (
- self.inputs_3.iloc[:, 12:].max() - self.inputs_3.iloc[:, 12:].min())
- # print(self.inputs_3.iloc[:, 13].max())
- # print(self.inputs_3.iloc[:, 13].min())
- self.target.iloc[:, 0] = (self.target.iloc[:, 0] - powermin) / (powermax)
- assert len(self.inputs_3) == len(self.target) == len(self.time)
- def __len__(self):
- return len(self.target) - time_split
- def __getitem__(self, idx):
- inputs_3 = self.inputs_3.iloc[idx:idx + time_split, :]
- #print(inputs_3)
- target = self.target.iloc[idx + time_split - 1, :]
- inputs_3 = torch.tensor(inputs_3.values, dtype=torch.float32).unsqueeze(1)
- inputs_3 = (inputs_3.view(inputs_3.size()[0],inputs_3.size()[2]))
- target = torch.tensor(target.values, dtype=torch.float32)
- return inputs_3, target
- # class TimeSeriesDataset(Dataset):
- # def __init__(self, file_inputs_2,file_inputs_3):
- # self.inputs_3 = pd.read_csv(file_inputs_3,usecols=[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])#18维度
- # self.target = pd.read_csv(file_inputs_2,usecols=[2])#1维
- # self.time = pd.read_csv(file_inputs_2,usecols=[0])
- # self.inputs_3.iloc[:,0:6] = np.sin(self.inputs_3.iloc[:,0:6] / 180 * np.pi)
- # self.inputs_3.iloc[:,7:] = (self.inputs_3.iloc[:,7:] - self.inputs_3.iloc[:,7:].min()) / (self.inputs_3.iloc[:,7:].max() - self.inputs_3.iloc[:,7:] .min())
- # self.target.iloc[:, 0] = (self.target.iloc[:, 0] - powermin) / (powermax - powermin)
- # assert len(self.inputs_3) == len(self.target) == len(self.time)
- #
- # def __len__(self):
- # return len(self.target) - 16
- #
- # def __getitem__(self, idx):
- # inputs_3 = self.inputs_3.iloc[idx:idx+16,:]
- # target=self.target.iloc[idx+7,:]
- # inputs_3 = torch.tensor(inputs_3.values, dtype=torch.float32)
- # target = torch.tensor(target.values, dtype=torch.float32)
- # # print(inputs_3.size())
- # # print(target.size())
- # return inputs_3, target
|