In [1]:
import pandas as pd

In [2]:
sep_loss = pd.read_csv('losses_Sep2019.csv', header=None)
sep_loss.columns = ['RUN', 'LOSS']
sep_loss['STAGE'] = sep_loss['RUN'].str.count('\.')

In [3]:
# sep_loss = sep_loss[(sep_loss['STAGE'] == 4) & (sep_loss['LOSS'] > 0.02)]
sep_loss


Out[3]:
RUN LOSS STAGE
0 1.1 0.009562 1
1 1.1.1 0.009048 2
2 1.1.1.1 0.011402 3
3 1.1.1.1.1 0.014135 4
4 1.1.1.1.1.1 0.013904 5
5 1.1.1.1.1.2 0.003414 5
6 1.1.1.1.1.3 0.008400 5
7 1.1.1.1.1.4 0.012824 5
8 1.1.1.1.1.4.1 0.003323 6
9 1.1.1.1.1.4.2 0.008374 6
10 1.1.1.1.1.4.3 0.018094 6
11 1.1.1.1.2 0.006506 4
12 1.1.1.1.2.1 0.007736 5
13 1.1.1.1.2.2 0.006975 5
14 1.1.1.1.2.3 0.010574 5
15 1.1.1.1.2.4 0.006886 5
16 1.1.1.1.2.4.1 0.006294 6
17 1.1.1.1.2.4.2 0.013021 6
18 1.1.1.1.2.4.3 0.011691 6
19 1.1.1.1.3 0.011571 4
20 1.1.1.1.3.1 0.008287 5
21 1.1.1.1.3.2 0.013749 5
22 1.1.1.1.3.3 0.010568 5
23 1.1.1.1.3.4 0.012682 5
24 1.1.1.1.3.4.1 0.019831 6
25 1.1.1.1.3.4.2 0.014576 6
26 1.1.1.1.3.4.3 0.008755 6
27 1.1.1.1.4 0.009301 4
28 1.1.1.1.4.1 0.011463 5
29 1.1.1.1.4.2 0.007276 5
... ... ... ...
2207 1.4.4.4.2 0.009367 4
2208 1.4.4.4.2.1 0.014878 5
2209 1.4.4.4.2.2 0.008520 5
2210 1.4.4.4.2.3 0.007866 5
2211 1.4.4.4.2.4 0.010895 5
2212 1.4.4.4.2.4.1 0.011157 6
2213 1.4.4.4.2.4.2 0.007919 6
2214 1.4.4.4.2.4.3 0.014167 6
2215 1.4.4.4.3 0.010585 4
2216 1.4.4.4.3.1 0.008541 5
2217 1.4.4.4.3.2 0.032486 5
2218 1.4.4.4.3.3 0.009177 5
2219 1.4.4.4.3.4 0.007049 5
2220 1.4.4.4.3.4.1 0.025099 6
2221 1.4.4.4.3.4.2 0.004807 6
2222 1.4.4.4.3.4.3 0.004495 6
2223 1.4.4.4.4 0.006045 4
2224 1.4.4.4.4.1 0.006050 5
2225 1.4.4.4.4.1.1 0.008136 6
2226 1.4.4.4.4.1.2 0.005104 6
2227 1.4.4.4.4.2 0.004641 5
2228 1.4.4.4.4.2.1 0.005764 6
2229 1.4.4.4.4.2.2 0.004708 6
2230 1.4.4.4.4.3 0.006370 5
2231 1.4.4.4.4.3.1 0.004063 6
2232 1.4.4.4.4.3.2 0.009119 6
2233 1.4.4.4.4.4 0.009295 5
2234 1.4.4.4.4.4.1 0.006071 6
2235 1.4.4.4.4.4.2 0.016203 6
2236 1.4.4.4.4.4.3 0.011636 6

2237 rows × 3 columns


In [4]:
nov_loss = pd.read_csv('losses_Nov2019.csv', header=None)
nov_loss.columns = ['RUN', 'LOSS']
nov_loss['STAGE'] = nov_loss['RUN'].str.count('\.')

In [5]:
nov_loss


Out[5]:
RUN LOSS STAGE
0 1.1 0.009339 1
1 1.2 0.009153 1
2 1.3 0.009394 1
3 1.4 0.008842 1
4 1.1.1 0.009297 2
5 1.1.2 0.010418 2
6 1.1.3 0.009405 2
7 1.1.4 0.008496 2
8 1.2.1 0.008009 2
9 1.2.2 0.010332 2
10 1.2.3 0.009447 2
11 1.2.4 0.009359 2
12 1.3.1 0.012709 2
13 1.3.2 0.007745 2
14 1.3.3 0.008790 2
15 1.3.4 0.008759 2
16 1.4.1 0.008099 2
17 1.4.2 0.007099 2
18 1.4.3 0.010476 2
19 1.4.4 0.008677 2
20 1.1.1.1 0.011166 3
21 1.1.1.2 0.008749 3
22 1.1.1.3 0.008936 3
23 1.1.1.4 0.010295 3
24 1.1.2.1 0.013391 3
25 1.1.2.2 0.008766 3
26 1.1.2.3 0.008758 3
27 1.1.2.4 0.009135 3
28 1.1.3.1 0.006788 3
29 1.1.3.2 0.012486 3
... ... ... ...
54 1.3.1.3 0.009448 3
55 1.3.1.4 0.007984 3
56 1.3.2.1 0.009610 3
57 1.3.2.2 0.007575 3
58 1.3.2.3 0.006786 3
59 1.3.2.4 0.006704 3
60 1.3.3.1 0.009539 3
61 1.3.3.2 0.007767 3
62 1.3.3.3 0.008829 3
63 1.3.3.4 0.006525 3
64 1.3.4.1 0.008798 3
65 1.3.4.2 0.007301 3
66 1.3.4.3 0.010497 3
67 1.3.4.4 0.008596 3
68 1.4.1.1 0.008445 3
69 1.4.1.2 0.007384 3
70 1.4.1.3 0.008693 3
71 1.4.1.4 0.007490 3
72 1.4.2.1 0.006347 3
73 1.4.2.2 0.007857 3
74 1.4.2.3 0.006991 3
75 1.4.2.4 0.007143 3
76 1.4.3.1 0.013496 3
77 1.4.3.2 0.009464 3
78 1.4.3.3 0.009912 3
79 1.4.3.4 0.008583 3
80 1.4.4.1 0.006957 3
81 1.4.4.2 0.009814 3
82 1.4.4.3 0.008101 3
83 1.4.4.4 0.009316 3

84 rows × 3 columns


In [6]:
nov_loss_st = pd.read_csv('losses_Nov2019_stepped.csv', header=None)
nov_loss_st.columns = ['RUN', 'LOSS']
nov_loss_st['STAGE'] = nov_loss_st['RUN'].str.count('\.')
nov_loss_st


Out[6]:
RUN LOSS STAGE
0 1.1 0.009412 1
1 1.2 0.009179 1
2 1.3 0.009105 1
3 1.4 0.008703 1
4 1.1.1 0.009226 2
5 1.1.2 0.009957 2
6 1.1.3 0.009611 2
7 1.1.4 0.008279 2
8 1.2.1 0.007719 2
9 1.2.2 0.010368 2
10 1.2.3 0.009575 2
11 1.2.4 0.009595 2
12 1.3.1 0.011965 2
13 1.3.2 0.007131 2
14 1.3.3 0.008263 2
15 1.3.4 0.008164 2
16 1.4.1 0.007638 2
17 1.4.2 0.006737 2
18 1.4.3 0.010651 2
19 1.4.4 0.008339 2
20 1.1.1.1 0.011465 3
21 1.1.1.2 0.008014 3
22 1.1.1.3 0.008450 3
23 1.1.1.4 0.009907 3
24 1.1.2.1 0.013299 3
25 1.1.2.2 0.008764 3
26 1.1.2.3 0.008578 3
27 1.1.2.4 0.009551 3
28 1.1.3.1 0.006182 3
29 1.1.3.2 0.012711 3
... ... ... ...
1334 1.4.4.3.1.3 0.011539 5
1335 1.4.4.3.1.4 0.011403 5
1336 1.4.4.3.2.1 0.005994 5
1337 1.4.4.3.2.2 0.006322 5
1338 1.4.4.3.2.3 0.013077 5
1339 1.4.4.3.2.4 0.008289 5
1340 1.4.4.3.3.1 0.007466 5
1341 1.4.4.3.3.2 0.017285 5
1342 1.4.4.3.3.3 0.009997 5
1343 1.4.4.3.3.4 0.012526 5
1344 1.4.4.3.4.1 0.009442 5
1345 1.4.4.3.4.2 0.010130 5
1346 1.4.4.3.4.3 0.006061 5
1347 1.4.4.3.4.4 0.006954 5
1348 1.4.4.4.1.1 0.007889 5
1349 1.4.4.4.1.2 0.003567 5
1350 1.4.4.4.1.3 0.019678 5
1351 1.4.4.4.1.4 0.010061 5
1352 1.4.4.4.2.1 0.009304 5
1353 1.4.4.4.2.2 0.010020 5
1354 1.4.4.4.2.3 0.005738 5
1355 1.4.4.4.2.4 0.009062 5
1356 1.4.4.4.3.1 0.008285 5
1357 1.4.4.4.3.2 0.025082 5
1358 1.4.4.4.3.3 0.009180 5
1359 1.4.4.4.3.4 0.006307 5
1360 1.4.4.4.4.1 0.005678 5
1361 1.4.4.4.4.2 0.004087 5
1362 1.4.4.4.4.3 0.005934 5
1363 1.4.4.4.4.4 0.008502 5

1364 rows × 3 columns


In [7]:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

In [8]:
%matplotlib inline

In [14]:
font = {'family' : 'normal',
        'weight' : 'bold',
        'size'   : 22}
matplotlib.rc('font', **font)
fig, ax = plt.subplots(figsize=(16,10))
ax.plot(sep_loss['STAGE'], sep_loss['LOSS'], color='r', marker='o',linestyle='-', linewidth=0.3, alpha=0.6, label='Sep')
# ax.plot(nov_loss['STAGE'], nov_loss['LOSS'], color='b', marker='>',linestyle='-', linewidth=0.3, alpha=0.6, label='Nov')
# ax.plot(nov_loss_st['STAGE'], nov_loss_st['LOSS'], color='g', marker='x', linestyle='-', linewidth=0.3, alpha=0.6, label='Nov-Stepped')
ax.set_xlabel('stage')
ax.set_ylabel('val_loss')
# ax.legend()
plt.show()



In [10]:
mean_sep = sep_loss.groupby('STAGE')['LOSS'].mean()
mean_nov = nov_loss.groupby('STAGE')['LOSS'].mean()
mean_nov2 = nov_loss_st.groupby('STAGE')['LOSS'].mean()
std_sep = sep_loss.groupby('STAGE')['LOSS'].std()
std_nov = nov_loss.groupby('STAGE')['LOSS'].std()
std_nov2 = nov_loss_st.groupby('STAGE')['LOSS'].std()

In [11]:
fig, ax1 = plt.subplots(figsize=(16,10))
ax1.errorbar(mean_sep.index, mean_sep, xerr=0.1, yerr=std_sep, color='r', linestyle='', label='Sep')
ax1.errorbar(mean_nov.index, mean_nov, xerr=0.1, yerr=std_nov, color='b', linestyle='', label='Nov-early-stop')
ax1.errorbar(mean_nov2.index, mean_nov2, xerr=0.1, yerr=std_nov2, color='g', linestyle='', label='Nov-Stepped')
ax1.set_xlabel('Stage')
ax1.set_ylabel('Loss')
ax1.legend(loc='best', prop={'size': 10})
plt.show()



In [27]:
sep_loss[(sep_loss['LOSS'] < 0.005) & (sep_loss['STAGE'] == 5)]


Out[27]:
RUN LOSS STAGE
5 1.1.1.1.1.2 0.003414 5
38 1.1.1.2.1.2 0.003298 5
55 1.1.1.2.3.3 0.004090 5
70 1.1.1.3.1.1 0.004027 5
78 1.1.1.3.2.1 0.004556 5
... ... ... ...
2140 1.4.4.2.2.1 0.003526 5
2167 1.4.4.3.1.2 0.003989 5
2175 1.4.4.3.2.2 0.003075 5
2201 1.4.4.4.1.2 0.003786 5
2227 1.4.4.4.4.2 0.004641 5

123 rows × 3 columns


In [17]:
nov_loss[nov_loss['LOSS'] < 0.0055]


Out[17]:
RUN LOSS STAGE

In [32]:
nov_loss_st[(nov_loss_st['LOSS'] < 0.005) & (nov_loss_st['STAGE'] == 5)]


Out[32]:
RUN LOSS STAGE
341 1.1.1.1.1.2 0.003084 5
345 1.1.1.1.2.2 0.003801 5
357 1.1.1.2.1.2 0.002686 5
360 1.1.1.2.2.1 0.004785 5
366 1.1.1.2.3.3 0.004168 5
... ... ... ...
1310 1.4.4.1.3.3 0.003491 5
1314 1.4.4.1.4.3 0.004403 5
1320 1.4.4.2.2.1 0.004113 5
1349 1.4.4.4.1.2 0.003567 5
1361 1.4.4.4.4.2 0.004087 5

156 rows × 3 columns


In [23]:
nov_loss_st[nov_loss_st['STAGE'] == 5]


Out[23]:
RUN LOSS STAGE
340 1.1.1.1.1.1 0.013925 5
341 1.1.1.1.1.2 0.003084 5
342 1.1.1.1.1.3 0.007928 5
343 1.1.1.1.1.4 0.015290 5
344 1.1.1.1.2.1 0.008257 5
... ... ... ...
1359 1.4.4.4.3.4 0.006307 5
1360 1.4.4.4.4.1 0.005678 5
1361 1.4.4.4.4.2 0.004087 5
1362 1.4.4.4.4.3 0.005934 5
1363 1.4.4.4.4.4 0.008502 5

1024 rows × 3 columns


In [38]:
sep_loss[(sep_loss['RUN'] == '1.3.1.2.1') | (sep_loss['RUN'] == '1.3.1.2') | (sep_loss['RUN'] == '1.3.1')| (sep_loss['RUN'] == '1.3')]


Out[38]:
RUN LOSS STAGE
1118 1.3 0.009121 1
1119 1.3.1 0.011472 2
1153 1.3.1.2 0.015678 3
1154 1.3.1.2.1 0.025544 4

In [39]:
nov_loss[(nov_loss['RUN'] == '1.3.1.2.1') | (nov_loss['RUN'] == '1.3.1.2') | (nov_loss['RUN'] == '1.3.1')| (nov_loss['RUN'] == '1.3')]


Out[39]:
RUN LOSS STAGE
2 1.3 0.009394 1
12 1.3.1 0.012709 2
53 1.3.1.2 0.015544 3

In [40]:
nov_loss_st[(nov_loss_st['RUN'] == '1.3.1.2.1') | (nov_loss_st['RUN'] == '1.3.1.2') | (nov_loss_st['RUN'] == '1.3.1')| (nov_loss_st['RUN'] == '1.3')]


Out[40]:
RUN LOSS STAGE
2 1.3 0.009105 1
12 1.3.1 0.011965 2
53 1.3.1.2 0.017133 3
216 1.3.1.2.1 0.024418 4

In [ ]: