51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
|
import matplotlib.pyplot as plt
|
||
|
import pandas as pd
|
||
|
import numpy as np
|
||
|
import matplotlib.animation as animation
|
||
|
from scipy.interpolate import make_interp_spline, BSpline
|
||
|
from datetime import date
|
||
|
import glob
|
||
|
import os
|
||
|
|
||
|
data_date = date.today()
|
||
|
loss_dir = "Loss/"+str(data_date)+"/"
|
||
|
list_of_files = glob.glob(loss_dir+"*")
|
||
|
latest_file = max(list_of_files, key=os.path.getctime)
|
||
|
print("Current File : ", latest_file)
|
||
|
|
||
|
fig = plt.figure()
|
||
|
ax = fig.add_subplot(1,1,1)
|
||
|
props = dict(boxstyle="square", facecolor='wheat', alpha=0.5)
|
||
|
data = np.load(latest_file)
|
||
|
|
||
|
def init():
|
||
|
disp_data =round(0.3*len(data))
|
||
|
ax.set_ylim(0,np.max(data[-disp_data:])*1.5)
|
||
|
ax.set_xlim(0,len(data))
|
||
|
|
||
|
def animate(i):
|
||
|
ax.clear()
|
||
|
data = np.load(latest_file)
|
||
|
x = np.arange(len(data))
|
||
|
smooth_data = np.linspace(x.min(), x.max(), round(len(data)/5))
|
||
|
print(smooth_data)
|
||
|
disp_data =round(0.2*len(data))
|
||
|
spl = make_interp_spline(x, data, k=3)
|
||
|
y_smooth = spl(smooth_data)
|
||
|
# y_smooth = spline(x, data, smooth_data)
|
||
|
# last_data = "loss = %.6f" % data[-1]
|
||
|
|
||
|
ax.set_ylim(0,np.max(data[-disp_data:])*2)
|
||
|
ax.set_xlim(0,len(data))
|
||
|
# ax.text(0.05, 0.9, last_data, transform=ax.transAxes, bbox=props)
|
||
|
# ax.set_yscale('log')
|
||
|
ax.title.set_text("Loss of "+str(latest_file))
|
||
|
ax.plot(smooth_data, y_smooth, color='tomato', alpha=0.8)
|
||
|
# ax.plot(data, color='tomato', alpha=0.8)
|
||
|
|
||
|
ani = animation.FuncAnimation(fig, animate, interval=20, init_func=init)
|
||
|
# ani.save(filename='loss_animation.mp4', fps=30, extra_args=['-vcodec', 'libx264'], dpi=300, bitrate=1800, metadata=dict(artist='Nino'))
|
||
|
plt.show()
|
||
|
|
||
|
|