Example #1
0
def test_main_logger():
    """Test basic usage"""
    logger = MainLogger()
    logs = {'loss': 0.6}
    logger.update(logs)
    assert 'loss' in logger.log_history.keys()
    assert len(logger.log_history['loss']) == 1
Example #2
0
def test_main_logger_step_names():
    step_names = 'iteration'
    logger = MainLogger(step_names=step_names)
    assert logger.step_names['Accuracy'] == 'iteration'
    step_names = {'Accuracy': 'evaluation', 'Loss': 'batch'}
    logger = MainLogger(step_names=step_names)
    assert logger.step_names['Accuracy'] == 'evaluation'
    assert logger.step_names['Loss'] == 'batch'
    assert logger.step_names['Epoch Time'] == 'epoch'
Example #3
0
def test_main_logger_autogroups():
    """Test group patterns"""
    logger = MainLogger()
    logger.update({
        'acc': 0.5,
        'val_acc': 0.4,
        'loss': 1.2,
        'val_loss': 1.1,
        'lr': 0.01
    })
    logger.update({
        'acc': 0.55,
        'val_acc': 0.45,
        'loss': 1.1,
        'val_loss': 1.0,
        'lr': 0.001
    })
    logger.update({
        'acc': 0.65,
        'val_acc': 0.55,
        'loss': 1.0,
        'val_loss': 0.9,
        'lr': 0.0001
    })
    grouped_log_history = logger.grouped_log_history()
    target_groups = {
        'Accuracy': ('validation', 'training'),
        'Loss': ('validation', 'training'),
        'lr': ('lr', )
    }
    for target_group, target_metrics in target_groups.items():
        for m1, m2 in zip(sorted(grouped_log_history[target_group].keys()),
                          sorted(target_metrics)):
            assert m1 == m2
 def send(self, logger: MainLogger):
     assert isinstance(logger, MainLogger)
     grouped_log_history = logger.grouped_log_history(raw_names=True,
                                                      raw_group_names=True)
     assert len(grouped_log_history) == 2
     assert len(grouped_log_history['acc']) == 2
     assert len(grouped_log_history['acc']['val_acc']) == 2
     grouped_log_history = logger.grouped_log_history()
     assert len(grouped_log_history) == 2
     assert len(grouped_log_history['Accuracy']) == 2
     print(grouped_log_history)
     assert len(grouped_log_history['Accuracy']['validation']) == 2
Example #5
0
def test_main_logger_metric_to_name():
    """Test group patterns"""
    logger = MainLogger()
    logger.update({
        'acc': 0.5,
        'val_acc': 0.4,
        'loss': 1.2,
        'val_loss': 1.1,
        'lr': 0.01
    })
    logger.update({
        'acc': 0.55,
        'val_acc': 0.45,
        'loss': 1.1,
        'val_loss': 1.0,
        'lr': 0.001
    })
    logger.update({
        'acc': 0.65,
        'val_acc': 0.55,
        'loss': 1.0,
        'val_loss': 0.9,
        'lr': 0.0001
    })
    metric_to_name = logger.metric_to_name
    assert 'lr' not in metric_to_name
    target_metric_to_name = {
        'acc': 'training',
        'val_acc': 'validation',
        'loss': 'training',
        'val_loss': 'validation',
    }
    for metric, metric_name in metric_to_name.items():
        assert metric_name == target_metric_to_name.get(metric)
Example #6
0
 def send(self, logger: MainLogger):
     assert isinstance(logger, MainLogger)
     grouped_log_history = logger.grouped_log_history(raw_names=True,
                                                      raw_group_names=True)
     print(grouped_log_history['accuracy'].keys())
     assert len(grouped_log_history['accuracy']) == 2
     assert grouped_log_history['accuracy'].get('val_accuracy') is not None
Example #7
0
def test_main_logger_with_default_groups():
    """Test group patterns"""
    logger = MainLogger()
    logger.update({'acc': 0.5, 'val_acc': 0.4, 'loss': 1.2, 'val_loss': 1.1})
    logger.update({'acc': 0.55, 'val_acc': 0.45, 'loss': 1.1, 'val_loss': 1.0})
    logger.update({'acc': 0.65, 'val_acc': 0.55, 'loss': 1.0, 'val_loss': 0.9})
    grouped_log_history = logger.grouped_log_history(raw_names=True, raw_group_names=True)
    assert len(grouped_log_history) == 2
    assert len(grouped_log_history['acc']) == 2
    assert len(grouped_log_history['acc']['val_acc']) == 3
    grouped_log_history = logger.grouped_log_history()
    assert len(grouped_log_history) == 2
    assert len(grouped_log_history['Accuracy']) == 2
    assert len(grouped_log_history['Accuracy']['validation ']) == 3
Example #8
0
def test_main_logger_with_groups():
    """Test groups"""
    groups = {'acccuracy': ['acc', 'val_acc'], 'log-loss': ['loss', 'val_loss']}
    logger = MainLogger(groups=groups)
    logger.update({'acc': 0.5, 'val_acc': 0.4, 'loss': 1.2, 'val_loss': 1.1})
    logger.update({'acc': 0.55, 'val_acc': 0.45, 'loss': 1.1, 'val_loss': 1.0})
    logger.update({'acc': 0.65, 'val_acc': 0.55, 'loss': 1.0, 'val_loss': 0.9})
    grouped_log_history = logger.grouped_log_history(raw_names=True, raw_group_names=True)
    assert len(grouped_log_history) == 2
    assert len(grouped_log_history['acccuracy']) == 2
    assert len(grouped_log_history['acccuracy']['val_acc']) == 3
    assert len(grouped_log_history['log-loss']['loss']) == 3
    grouped_log_history = logger.grouped_log_history()
    assert len(grouped_log_history) == 2
    assert len(grouped_log_history['acccuracy']) == 2
    assert len(grouped_log_history['acccuracy']['validation ']) == 3
    assert len(grouped_log_history['log-loss']['training ']) == 3
Example #9
0
 def send(self, logger: MainLogger):
     grouped_log_history = logger.grouped_log_history()
     for group, metrics in grouped_log_history.items():
         for metric, logs in metrics.items():
             if len(logs) != self.target_log_history_length:
                 raise ValueError(f'History too long ({len(logs)}) for {group} {metric}')