1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import numpy as np
- import torch
- DataFileName = './DataLib/Data.csv'
- Data = np.loadtxt(DataFileName, delimiter=',')
- NumState = 13
- NumControl = 3
- Data = Data[:, :NumState]
- # 标准化
- DataMax = np.max(Data, axis=0)
- DataMin = np.min(Data, axis=0)
- DataNor = 2*(Data-DataMin)/(DataMax-DataMin)-1
- DataMaxMin = np.vstack([DataMax, DataMin])
- np.savetxt('./DataLib/DataMaxMin.csv', DataMaxMin, delimiter=',')
- # 数据间隔固定为10s
- deltat = 100
- # 每个sample的长度为51,对应相邻两个时序5000s
- seqlen = 51
- # 数据特征
- NumSample = DataNor.shape[0]
- NumFea = DataNor.shape[1]
- NumSampleTensor = NumSample - seqlen + 1
- print(NumSampleTensor)
- DataTensor = torch.zeros([NumSampleTensor, seqlen, NumFea])
- # print(DataTensor.shape)
- for iterSample in range(NumSampleTensor):
- index_start = iterSample
- index_end = iterSample + seqlen
- DataThis = DataNor[index_start:index_end, :]
- DataThisTensor = torch.from_numpy(DataThis)
- # # print(index_start)
- # # print(index_end)
- # # print(DataThis.shape)
- DataTensor[iterSample, :, :] = DataThisTensor
- print(iterSample)
- # 打乱
- idx = torch.randperm(DataTensor.size(0))
- shuffData = DataTensor[idx]
- DataFileNameTensor = './DataLib/DataSeqTensor.pt'
- torch.save(shuffData, DataFileNameTensor)
|