# compute validation meanIoU val_IoUs.append(compute_avg_IoU(**val_data)) # compute test meanIoU test_IoUs.append(compute_avg_IoU(**test_data)) with tables.openFile('ious_kth{0:02d}left_out.h5'.format(args.test_person), 'w') as h5file: h5file.createArray(h5file.root, 'train_IoUs', np.array(train_IoUs)) h5file.createArray(h5file.root, 'val_IoUs', np.array(val_IoUs)) h5file.createArray(h5file.root, 'test_IoUs', np.array(test_IoUs)) h5file.createArray(h5file.root, 'trainer_costs', trainer.costs) if best_val_IoU < val_IoUs[-1]: best_val_IoU = val_IoUs[-1] best_val_IoU_epoch = epoch + 1 model.save('attention_model_kth_{0:02d}left_out_val_best.h5'.format( args.test_person)) print 'train IoU: {0:f}'.format(train_IoUs[-1]) print 'val IoU: {0:f} (best so far {1} in epoch {2})'.format( val_IoUs[-1], best_val_IoU, best_val_IoU_epoch) print 'test IoU: {0:f}'.format(test_IoUs[-1]) plt.clf() plt.plot(range(epoch + 2), train_IoUs, c='g', label='Avg. IoU on Train') plt.plot(range(epoch + 2), val_IoUs, c='b', label='Avg. IoU on Val (person {0})'.format(val_person)) plt.scatter([best_val_IoU_epoch], [best_val_IoU], marker='*', c='b') plt.xlabel('epoch') plt.ylabel('avg. IoU')
val_IoUs.append(compute_avg_IoU(**val_data)) # compute test meanIoU test_IoUs.append(compute_avg_IoU(**test_data)) with tables.openFile('ious_kth{0:02d}left_out.h5'.format(args.test_person), 'w') as h5file: h5file.createArray(h5file.root, 'train_IoUs', np.array(train_IoUs)) h5file.createArray(h5file.root, 'val_IoUs', np.array(val_IoUs)) h5file.createArray(h5file.root, 'test_IoUs', np.array(test_IoUs)) h5file.createArray(h5file.root, 'trainer_costs', trainer.costs) if best_val_IoU < val_IoUs[-1]: best_val_IoU = val_IoUs[-1] best_val_IoU_epoch = epoch + 1 model.save( 'attention_model_kth_{0:02d}left_out_val_best.h5'.format( args.test_person)) print 'train IoU: {0:f}'.format(train_IoUs[-1]) print 'val IoU: {0:f} (best so far {1} in epoch {2})'.format( val_IoUs[-1], best_val_IoU, best_val_IoU_epoch) print 'test IoU: {0:f}'.format(test_IoUs[-1]) plt.clf() plt.plot(range(epoch + 2), train_IoUs, c='g', label='Avg. IoU on Train') plt.plot(range(epoch + 2), val_IoUs, c='b', label='Avg. IoU on Val (person {0})'.format(val_person)) plt.scatter([best_val_IoU_epoch], [best_val_IoU], marker='*', c='b') plt.xlabel('epoch')