-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.py
34 lines (27 loc) · 1015 Bytes
/
utils.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
import numpy as np
import matplotlib.pyplot as plt
def plot_learning_curve(scores, epsilons, filename="output.png", lines=None):
x = [i + 1 for i in range(len(scores))]
fig = plt.figure()
ax = fig.add_subplot(111, label="1")
ax2 = fig.add_subplot(111, label="2", frame_on=False)
ax.plot(x, epsilons, color="C0")
ax.set_xlabel("Training Steps", color="C0")
ax.set_ylabel("Epsilon", color="C0")
ax.tick_params(axis="x", colors="C0")
ax.tick_params(axis="y", colors="C0")
N = len(scores)
running_avg = np.empty(N)
for t in range(N):
running_avg[t] = np.mean(scores[max(0, t - 20) : (t + 1)])
ax2.plot(x, running_avg, color="C1")
ax2.axes.get_xaxis().set_visible(False)
ax2.yaxis.tick_right()
ax2.set_ylabel("Score", color="C1")
ax2.yaxis.set_label_position("right")
ax2.tick_params(axis="y", colors="C1")
if lines is not None:
for line in lines:
plt.axvline(x=line)
plt.show()
plt.savefig(filename)