123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import numpy as np
- from DeepKoopmanModel import DeepKoopManConfig, DeepKoopMan
- from AutoEncoderModel import AutoEncoder
- import torch
- from sklearn.model_selection import train_test_split
- import matplotlib.pyplot as plt
- torch.random.manual_seed(42)
- config = DeepKoopManConfig(
- state_dim=13,
- latent_dim=64,
- hidden_dim=64
- )
- device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
- model = torch.load('ModelLib/DeepKoopmanModel.pt', map_location="cpu")
- Data = np.loadtxt('./DataLib/Data.csv', delimiter=',')
- Data = Data[:, :config.state_dim]
- DataMaxMin = np.loadtxt('./DataLib/DataMaxMin.csv', delimiter=',')
- DataMax = DataMaxMin[0, :]
- DataMin = DataMaxMin[1, :]
- DataNor = 2*(Data-DataMin)/(DataMax-DataMin)-1
- InputState = DataNor[:-1, :config.state_dim]
- OutputState = DataNor[1:, :config.state_dim]
- InputState = torch.from_numpy(InputState).to(torch.float32)
- _, OutputState_pre = model(InputState)
- OutputState_pre = OutputState_pre.detach().numpy()
- for feature in np.arange(config.state_dim):
- plt.figure(feature)
- time_step = np.arange(OutputState.shape[0])
- plt.plot(time_step, OutputState[:, feature], color='blue', linestyle='-')
- plt.plot(time_step, OutputState_pre[:, feature], color='red', linestyle='--')
- plt.show()
|