HiLAP icon indicating copy to clipboard operation
HiLAP copied to clipboard

UnboundLocalError: local variable 'ct' referenced before assignment in main.py

Open hannabros opened this issue 3 years ago • 0 comments

Also found another unbound local error.

Traceback (most recent call last):
  File "main.py", line 786, in <module>
    train_sl()
  File "main.py", line 542, in train_sl
    loss_avg = loss_total / (ct + 1)
UnboundLocalError: local variable 'ct' referenced before assignment
for ct, (tokens, doc_ids) in tqdm(enumerate(g)):
    probs = model(tokens, True)
    pred_l, target_l, cur_class_batch = decode(pred_l, target_l, doc_ids, probs)
    loss = calc_sl_loss(probs, doc_ids, update=True)
    if ct % args.output_every == 0 and ct != 0:
        logger.info('sl_loss: {}'.format(loss))
        if args.multi_label:
            acc = tree.acc_multi(np.array(pred_l), np.array(target_l))
        else:
            acc = tree.acc(np.array(pred_l), np.array(target_l))
        logger.info('acc for epoch {} batch {}: {}'.format(i, ct, acc))
        writer.add_scalar('data/sl_loss', loss, tree.n_update)
        writer.add_scalar('data/acc', acc, tree.n_update)
        if not args.multi_label and (cur_class_batch == cur_class_batch[0]).all():
            logger.error('predictions in a batch are all the same! [{}]'.format(cur_class_batch[0]))
            writer.add_text('error', 'predictions in a batch are all the same! [{}]'.format(cur_class_batch[0]), tree.n_update)
                # exit(1)
    loss_total += loss
loss_avg = loss_total / (ct + 1)

hannabros avatar Jul 22 '21 07:07 hannabros