-
Notifications
You must be signed in to change notification settings - Fork 0
/
plot_parameter_space.py
51 lines (37 loc) · 1.58 KB
/
plot_parameter_space.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import os
import logging
# logging.disable(logging.WARNING)
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import json
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
class Plotter():
def __init__(self, working_path, dataset_path, F_test_file_name, F_train_filename):
self.dataset_path=working_path+dataset_path
F_test = np.load(self.dataset_path+F_test_file_name)
self.F_test_parsed, _ = self.get_F_parsed(F_test)
print('Shape F: ', F_test.shape)
print('Shape F_parsed: ', self.F_test_parsed.shape)
F_train = np.load(self.dataset_path+F_train_filename)
self.F_train_parsed, _ = self.get_F_parsed(F_train)
print('Shape F: ', F_train.shape)
print('Shape F_parsed: ', self.F_train_parsed.shape)
def get_F_parsed(self, F):
num_forces=np.unique(F[0],axis=0).shape[0]
F_parsed=[]
for snap in range(F.shape[0]):
F_snap_unique=np.unique(F[snap],axis=0)
F_parsed.append(np.diagonal(F_snap_unique))
force_names=[]
for i in range(num_forces):
force_names.append('force_'+str(i))
F_parsed=np.array(F_parsed, copy=False)
return F_parsed, force_names
def plot(self):
plt.scatter(self.F_test_parsed[:,0], self.F_test_parsed[:,1], s=1)
plt.scatter(self.F_train_parsed[:,0], self.F_train_parsed[:,1], s=1)
plt.show()
if __name__ == "__main__":
param_space_plotter = Plotter('', 'datasets_two_forces_dense_lowforce/', 'F_finetune_test.npy', 'F_finetune_train.npy')
param_space_plotter.plot()