DeepKoopmanTest.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import numpy as np
  2. from DeepKoopmanModel import DeepKoopManConfig, DeepKoopMan
  3. from AutoEncoderModel import AutoEncoder
  4. import torch
  5. from sklearn.model_selection import train_test_split
  6. import matplotlib.pyplot as plt
  7. torch.random.manual_seed(42)
  8. config = DeepKoopManConfig(
  9. state_dim=13,
  10. latent_dim=64,
  11. hidden_dim=64
  12. )
  13. device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
  14. model = torch.load('ModelLib/DeepKoopmanModel.pt', map_location="cpu")
  15. Data = np.loadtxt('./DataLib/Data.csv', delimiter=',')
  16. Data = Data[:, :config.state_dim]
  17. DataMaxMin = np.loadtxt('./DataLib/DataMaxMin.csv', delimiter=',')
  18. DataMax = DataMaxMin[0, :]
  19. DataMin = DataMaxMin[1, :]
  20. DataNor = 2*(Data-DataMin)/(DataMax-DataMin)-1
  21. InputState = DataNor[:-1, :config.state_dim]
  22. OutputState = DataNor[1:, :config.state_dim]
  23. InputState = torch.from_numpy(InputState).to(torch.float32)
  24. _, OutputState_pre = model(InputState)
  25. OutputState_pre = OutputState_pre.detach().numpy()
  26. for feature in np.arange(config.state_dim):
  27. plt.figure(feature)
  28. time_step = np.arange(OutputState.shape[0])
  29. plt.plot(time_step, OutputState[:, feature], color='blue', linestyle='-')
  30. plt.plot(time_step, OutputState_pre[:, feature], color='red', linestyle='--')
  31. plt.show()