In [102]:
import re
import numpy as np
from matplotlib import pylab as plt
%matplotlib inline

In [2]:
log_file = open('/home/ipl/Desktop/fine_tune_cub_test.txt', 'r')
log = log_file.read()

In [129]:
log.split('\n')[5110:5120]


Out[129]:
['I1130 17:20:31.726660  2926 solver.cpp:317] Snapshotting to models/finetune_cub/finetune_cub_iter_40000.caffemodel',
 'I1130 17:20:32.069056  2926 solver.cpp:324] Snapshotting solver state to models/finetune_cub/finetune_cub_iter_40000.solverstate',
 'I1130 17:20:32.260188  2926 solver.cpp:247] Iteration 40000, Testing net (#0)',
 'I1130 17:20:46.263460  2926 solver.cpp:298]     Test net output #0: accuracy = 0.5346',
 'I1130 17:20:46.397557  2926 solver.cpp:191] Iteration 40000, loss = 0.0078999',
 'I1130 17:20:46.397593  2926 solver.cpp:403] Iteration 40000, lr = 1e-06',
 'I1130 17:20:54.388350  2926 solver.cpp:191] Iteration 40020, loss = 0.0305099',
 'I1130 17:20:54.388383  2926 solver.cpp:403] Iteration 40020, lr = 1e-06',
 'I1130 17:21:02.419848  2926 solver.cpp:191] Iteration 40040, loss = 0.0267328',
 'I1130 17:21:02.419896  2926 solver.cpp:403] Iteration 40040, lr = 1e-06']

In [187]:
float_regex = r'[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?'
pattern = r"Iteration (?P<iter_num>\d+), Testing net \(#0\)\n.* accuracy = (?P<accuracy>[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?)"

In [188]:
res = re.findall(pattern, log)

In [189]:
res


Out[189]:
[('0', '0.0054', '0.0054', '.0054', ''),
 ('1000', '0.225', '0.225', '.225', ''),
 ('2000', '0.251', '0.251', '.251', ''),
 ('3000', '0.3704', '0.3704', '.3704', ''),
 ('4000', '0.3296', '0.3296', '.3296', ''),
 ('5000', '0.4794', '0.4794', '.4794', ''),
 ('6000', '0.5176', '0.5176', '.5176', ''),
 ('7000', '0.5174', '0.5174', '.5174', ''),
 ('8000', '0.5382', '0.5382', '.5382', ''),
 ('9000', '0.5392', '0.5392', '.5392', ''),
 ('10000', '0.5492', '0.5492', '.5492', ''),
 ('11000', '0.518', '0.518', '.518', ''),
 ('12000', '0.5342', '0.5342', '.5342', ''),
 ('13000', '0.5428', '0.5428', '.5428', ''),
 ('14000', '0.5266', '0.5266', '.5266', ''),
 ('15000', '0.536', '0.536', '.536', ''),
 ('16000', '0.5456', '0.5456', '.5456', ''),
 ('17000', '0.5584', '0.5584', '.5584', ''),
 ('18000', '0.5318', '0.5318', '.5318', ''),
 ('19000', '0.5394', '0.5394', '.5394', ''),
 ('20000', '0.5408', '0.5408', '.5408', ''),
 ('21000', '0.5334', '0.5334', '.5334', ''),
 ('22000', '0.5454', '0.5454', '.5454', ''),
 ('23000', '0.5494', '0.5494', '.5494', ''),
 ('24000', '0.5566', '0.5566', '.5566', ''),
 ('25000', '0.5476', '0.5476', '.5476', ''),
 ('26000', '0.5314', '0.5314', '.5314', ''),
 ('27000', '0.5458', '0.5458', '.5458', ''),
 ('28000', '0.5474', '0.5474', '.5474', ''),
 ('29000', '0.5434', '0.5434', '.5434', ''),
 ('30000', '0.5478', '0.5478', '.5478', ''),
 ('31000', '0.5558', '0.5558', '.5558', ''),
 ('32000', '0.5654', '0.5654', '.5654', ''),
 ('33000', '0.5348', '0.5348', '.5348', ''),
 ('34000', '0.5338', '0.5338', '.5338', ''),
 ('35000', '0.5544', '0.5544', '.5544', ''),
 ('36000', '0.5358', '0.5358', '.5358', ''),
 ('37000', '0.5518', '0.5518', '.5518', ''),
 ('38000', '0.5502', '0.5502', '.5502', ''),
 ('39000', '0.5648', '0.5648', '.5648', ''),
 ('40000', '0.5346', '0.5346', '.5346', ''),
 ('41000', '0.5394', '0.5394', '.5394', ''),
 ('42000', '0.553', '0.553', '.553', ''),
 ('43000', '0.5362', '0.5362', '.5362', ''),
 ('44000', '0.5464', '0.5464', '.5464', ''),
 ('45000', '0.5528', '0.5528', '.5528', ''),
 ('46000', '0.5664', '0.5664', '.5664', ''),
 ('47000', '0.542', '0.542', '.542', ''),
 ('48000', '0.5384', '0.5384', '.5384', ''),
 ('49000', '0.539', '0.539', '.539', ''),
 ('50000', '0.548', '0.548', '.548', ''),
 ('51000', '0.537', '0.537', '.537', ''),
 ('52000', '0.5598', '0.5598', '.5598', ''),
 ('53000', '0.5598', '0.5598', '.5598', ''),
 ('54000', '0.5598', '0.5598', '.5598', ''),
 ('55000', '0.531', '0.531', '.531', ''),
 ('56000', '0.5414', '0.5414', '.5414', ''),
 ('57000', '0.558', '0.558', '.558', ''),
 ('58000', '0.537', '0.537', '.537', ''),
 ('59000', '0.5538', '0.5538', '.5538', ''),
 ('60000', '0.5576', '0.5576', '.5576', ''),
 ('61000', '0.5616', '0.5616', '.5616', ''),
 ('62000', '0.5368', '0.5368', '.5368', ''),
 ('63000', '0.5348', '0.5348', '.5348', ''),
 ('64000', '0.5564', '0.5564', '.5564', ''),
 ('65000', '0.5448', '0.5448', '.5448', ''),
 ('66000', '0.5452', '0.5452', '.5452', ''),
 ('67000', '0.5556', '0.5556', '.5556', ''),
 ('68000', '0.5646', '0.5646', '.5646', ''),
 ('69000', '0.5364', '0.5364', '.5364', ''),
 ('70000', '0.5474', '0.5474', '.5474', ''),
 ('71000', '0.5472', '0.5472', '.5472', ''),
 ('72000', '0.5402', '0.5402', '.5402', ''),
 ('73000', '0.5462', '0.5462', '.5462', ''),
 ('74000', '0.5448', '0.5448', '.5448', ''),
 ('75000', '0.5658', '0.5658', '.5658', ''),
 ('76000', '0.5536', '0.5536', '.5536', ''),
 ('77000', '0.5336', '0.5336', '.5336', ''),
 ('78000', '0.5432', '0.5432', '.5432', ''),
 ('79000', '0.5446', '0.5446', '.5446', ''),
 ('80000', '0.5398', '0.5398', '.5398', ''),
 ('81000', '0.5528', '0.5528', '.5528', ''),
 ('82000', '0.5594', '0.5594', '.5594', ''),
 ('83000', '0.5612', '0.5612', '.5612', ''),
 ('84000', '0.53', '0.53', '.53', ''),
 ('85000', '0.537', '0.537', '.537', ''),
 ('86000', '0.5578', '0.5578', '.5578', ''),
 ('87000', '0.5346', '0.5346', '.5346', ''),
 ('88000', '0.5468', '0.5468', '.5468', ''),
 ('89000', '0.559', '0.559', '.559', ''),
 ('90000', '0.564', '0.564', '.564', ''),
 ('91000', '0.535', '0.535', '.535', ''),
 ('92000', '0.5358', '0.5358', '.5358', ''),
 ('93000', '0.5456', '0.5456', '.5456', ''),
 ('94000', '0.5436', '0.5436', '.5436', ''),
 ('95000', '0.5504', '0.5504', '.5504', ''),
 ('96000', '0.5524', '0.5524', '.5524', ''),
 ('97000', '0.5548', '0.5548', '.5548', ''),
 ('98000', '0.5472', '0.5472', '.5472', ''),
 ('99000', '0.5362', '0.5362', '.5362', ''),
 ('100000', '0.5412', '0.5412', '.5412', '')]

In [132]:
iterations = []
losses = []
for r in res:
    iterations.append(int(r[0]))
    losses.append(float(r[1]))

In [133]:
iterations = np.array(iterations)
losses = np.array(losses)

In [134]:
plt.plot(iterations, losses)


Out[134]:
[<matplotlib.lines.Line2D at 0x24d6910>]

In [118]:
losses[52500/20:52800/20]


Out[118]:
array([  1.78120000e-03,   6.40289000e-02,   2.16532000e-02,
         2.18290000e-03,   6.51529000e-02,   4.16402000e-03,
         4.09291000e-03,   6.11513000e-03,   4.08117000e-03,
         8.45769000e+00,   2.58344000e-03,   2.31531000e-02,
         9.79612000e-03,   5.61470000e-03,   1.60496000e-02])

In [ ]: