что может быть не так, если это происходит в pytorch && tqdm __init __ (), пропускающего 1 обязательный позиционный аргумент: 'code' - PullRequest
1 голос
/ 01 мая 2019

Я использую pytorch: 0.2.0.post3 и tqdm: 4.19.4 для обучения моего набора данных изображений.Сначала он работает, но при запуске обнаружена ошибка

Я не знаю, как это сделать, и я думаю, что это может быть ошибка кода / gpu / версии или нет ??

связанный код какниже.

def train(train_loader, model, optimizer, criterion, epoch):
    losses = []
    model.train()
    lrs = [param_group['lr'] for param_group in optimizer.param_groups]

    logging.info('Epoch: {} | lrs: {}'.format(epoch, lrs))
    for i, (inputs, O, targets) in tqdm.tqdm(enumerate(train_loader), total=len(train_loader)):
        inputs, O, targets = variable(inputs), variable(O), variable(targets)
        outputs = model(inputs, O)
        loss = criterion(outputs, targets)
        optimizer.zero_grad()
        batch_size = inputs.size(0)
        (batch_size * loss).backward()
        optimizer.step()

        losses.append(loss.data[0])

        if (i + 1) % 100 == 0:
            logging.info('Step: {}, train_loss: {}'.format(i + 1, np.mean(losses[-100:])))

    train_loss = np.mean(losses)
    logging.info('train_loss: {}'.format(train_loss))

ошибка, как показано ниже.

100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [08:44<00:00,  1.91it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:42<00:00,  2.16it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:34<00:00,  2.20it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:34<00:00,  2.20it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:29<00:00,  2.22it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:37<00:00,  2.19it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:31<00:00,  2.21it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:32<00:00,  2.21it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [07:40<00:00,  2.17it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:49<00:00,  1.19s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:58<00:00,  1.20s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [18:28<00:00,  1.11s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:42<00:00,  1.18s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:19<00:00,  1.16s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:33<00:00,  1.17s/it]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████| 1000/1000 [19:33<00:00,  1.17s/it]
 29%|█████████████████████████████▋                                                                        | 291/1000 [06:03<14:46,  1.25s/it]Traceback (most recent call last):
  File "init_train.py", line 15, in <module>
    main()
  File "init_train.py", line 11, in main
    train_model(model_name, use_pseudo=False)
  File "/hd2/maoyuzhe/kaggle2018/kaggle-camera-model-identification-master/src/ilya/pipeline/core/train_core.py", line 101, in train_model
    run_training(model_name, model, ids_train, ids_val, batch_size, config.STEPS, use_d4)
  File "/hd2/maoyuzhe/kaggle2018/kaggle-camera-model-identification-master/src/ilya/pipeline/core/train_core.py", line 60, in run_training
    optimizer, scheduler, criterion, model_name)
  File "/hd2/maoyuzhe/kaggle2018/kaggle-camera-model-identification-master/src/ilya/pipeline/core/train_utils.py", line 69, in train_and_validate
    optimizer, loss_fn, epoch)
  File "/hd2/maoyuzhe/kaggle2018/kaggle-camera-model-identification-master/src/ilya/pipeline/core/train_utils.py", line 111, in train
    for i, (inputs, O, targets) in tqdm.tqdm(enumerate(train_loader), total=len(train_loader)):
  File "/home/maoyuzhe/anaconda2/envs/py36/lib/python3.6/site-packages/tqdm/_tqdm.py", line 953, in __iter__
    for obj in iterable:
  File "/home/maoyuzhe/anaconda2/envs/py36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 201, in __next__
    return self._process_next_batch(batch)
  File "/home/maoyuzhe/anaconda2/envs/py36/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 221, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
TypeError: __init__() missing 1 required positional argument: 'code'
...