57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
import os
|
|
import pandas as pd
|
|
from datetime import datetime
|
|
import csv
|
|
import datetime
|
|
import matplotlib.pyplot as plt
|
|
import matplotlib.ticker as mtick
|
|
import matplotlib.dates as mdates
|
|
|
|
train_headers = ['timestamp', 'eps_train', 'eps_trained_session', 'sum', 'mean']
|
|
eval_headers = ['timestamp', 'method', 'eps_train', 'eval_eps_used', 'sum', 'mean']
|
|
|
|
model_path = 'models'
|
|
|
|
|
|
def dataframes(model_name):
|
|
def df_timestamp_to_datetime(df):
|
|
df['timestamp'] = df['timestamp'].map(lambda t: datetime.datetime.fromtimestamp(t))
|
|
return df
|
|
|
|
log_path = os.path.join(model_path, model_name, 'logs')
|
|
raw_dfs = [ pd.read_csv(os.path.join(log_path, 'eval.log'), sep=';', names=eval_headers),
|
|
pd.read_csv(os.path.join(log_path, 'train.log'), sep=';', names=train_headers) ]
|
|
dfs = [ df_timestamp_to_datetime(df) for df in raw_dfs ]
|
|
dataframes = {
|
|
'eval': dfs[0],
|
|
'train': dfs[1]
|
|
}
|
|
return dataframes
|
|
|
|
|
|
if __name__ == '__main__':
|
|
fig, ax = plt.subplots(1, 1)
|
|
|
|
plt.ion()
|
|
plt.title('Mean over episodes')
|
|
plt.xlabel('Episodes trained')
|
|
plt.ylabel('Mean')
|
|
plt.grid(True)
|
|
|
|
#ax.set_xlim(left=0)
|
|
ax.set_ylim([-2, 2])
|
|
|
|
plt.show()
|
|
|
|
while True:
|
|
df = dataframes('a')['eval']
|
|
|
|
print(df)
|
|
|
|
x = df['eps_train']
|
|
y = df['mean']
|
|
|
|
plt.scatter(x, y, c=[[1, 0.5, 0]])
|
|
#fig.canvas.draw()
|
|
plt.pause(2)
|