nkolot / SPIN

Repository for the paper "Learning to Reconstruct 3D Human Pose and Shape via Model-fitting in the Loop"
Other
812 stars 171 forks source link

RuntimeError: CUDA error: out of memory #76

Open giuli13 opened 4 years ago

giuli13 commented 4 years ago

Hi! I am trying to execute demo.py for multiple images with the following code:

path, dirs, files = next(os.walk('./output'))'
file_count = len(files)
print("start SPIN")
for i in range(1,file_count):
  spin = "python3 demo.py --checkpoint=data/model_checkpoint.pt --img=output/0%d.png" %i
  elapsed = time.time() - t
  os.popen(spin)
  print("SPIN frame time processing",elapsed)

But I receive this error:

 < File "demo.py", line 122, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory

I am using the GPU 1 that is free:

┌────────────────────────────────────────────────────────────
Fri May 22 15:28:53 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2070    On   | 00000000:01:00.0 Off |                  N/A |
| 40%   60C    P2    51W / 175W |   7266MiB /  7979MiB |     33%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 2070    On   | 00000000:02:00.0 Off |                  N/A |
|  0%   37C    P8     6W / 175W |     25MiB /  7982MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0       605      G   /usr/lib/xorg/Xorg                           203MiB |
|    0       782      G   /usr/bin/gnome-shell                          75MiB |
|    0      1537      G   /usr/lib/xorg/Xorg                            18MiB |
|    0      1609      G   /usr/bin/gnome-shell                          14MiB |
|    0     12908      G   ...uest-channel-token=18259697978500843020   123MiB |
|    0     15802      G   ...AAAAAAAAAAAACAAAAAAAAAA= --shared-files    72MiB |
|    0     23812      C   ...ualenvs/CapsulePose-FxSvP5Ho/bin/python  6751MiB |
|    1       605      G   /usr/lib/xorg/Xorg                             6MiB |
|    1      1537      G   /usr/lib/xorg/Xorg                             5MiB |
+-----------------------------------------------------------------------------+

How can I solve the problem? Thanks

nkolot commented 4 years ago

Probably you are using GPU 0. Pytorch by default I think it will try to use the GPU with the lowest id. Try to launch the demo with CUDA_VISIBLE_DEVICES=1.

giuli13 commented 4 years ago

I have already done it but I obtain the same error.

ikvision commented 4 years ago

This may help, by default the checkpoint is loaded into GPU 0 https://github.com/nkolot/SPIN/blob/b95a00a7c0147f2c5bee0874ba0972c6389b6f99/demo.py#L105 Try changing it into: gpu_num = 1 device = torch.device('cuda',gpu_num) checkpoint = torch.load(args.checkpoint, map_location=device)

giuli13 commented 4 years ago
# Load pretrained model
    if torch.cuda.is_available():
      model = hmr(config.SMPL_MEAN_PARAMS).to(device)
    # checkpoint = torch.load(args.checkpoint)
    gpu_num = 1
    device = torch.device('cuda',gpu_num)
    checkpoint = torch.load(args.checkpoint, map_location=device)
    model.load_state_dict(checkpoint['model'], strict=False)

I have substituted it but I obtain the same error. When I execute the script the GPU1 start to fill and then it seems that the evaluation has finished (GPU1 goes empty). But, at some point, the GPU1 fills itself very quickly and it goes out of memory. Finally, I obtain again this error.

start SPIN
SPIN frame time processing 0.5266377925872803
(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ Traceback (most recent call last):
Traceback (most recent call last):
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
  File "demo.py", line 119, in <module>
  File "demo.py", line 119, in <module>
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    return self._apply(convert)
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    module._apply(fn)
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
    param_applied = fn(param)
RuntimeError: CUDA error: out of memory
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
Traceback (most recent call last):
  File "demo.py", line 119, in <module>
    model = hmr(config.SMPL_MEAN_PARAMS).to(device)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 426, in to
    return self._apply(convert)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 202, in _apply
    module._apply(fn)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 224, in _apply
    param_applied = fn(param)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/nn/modules/module.py", line 424, in convert
    return t.to(device, dtype if t.is_floating_point() else None, non_blocking)
RuntimeError: CUDA error: out of memory
nkolot commented 4 years ago

Can you try to run it on the CPU instead? Just curious about what will happen.

giuli13 commented 4 years ago

With the CPU works.

nkolot commented 4 years ago

I suspect that something is wrong with your system setup then. Because for inference it needs only about 1.5GB of GPU memory.

giuli13 commented 4 years ago

I am trying to solve the problem by using eval.py and pass the images as a dataset. For now I am trying to use the 3dpw dataset but I obtain this error:

(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Traceback (most recent call last):
  File "eval.py", line 280, in <module>
    log_freq=args.log_freq)
  File "eval.py", line 135, in run_evaluation
    pred_rotmat, pred_betas, pred_camera = model(images)
NameError: name 'images' is not defined
(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Eval:   0%|                                                                        | 0/35515 [00:00<?, ?it/s]/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
Traceback (most recent call last):
  File "eval.py", line 281, in <module>
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
    log_freq=args.log_freq)
  File "eval.py", line 125, in run_evaluation
    for step, batch in enumerate(tqdm(data_loader, desc='Eval', total=len(data_loader))):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/tqdm/std.py", line 1097, in __iter__
    for obj in iterable:
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 819, in __next__
    return self._process_data(data)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
    data.reraise()
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/_utils.py", line 369, in reraise
    raise self.exc_type(msg)
UnboundLocalError: Caught UnboundLocalError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/datasets/base_dataset.py", line 190, in __getitem__
    orig_shape = np.array(img.shape)[:2]
UnboundLocalError: local variable 'img' referenced before assignment
yiweike commented 2 years ago

I am trying to solve the problem by using eval.py and pass the images as a dataset. For now I am trying to use the 3dpw dataset but I obtain this error:

(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Traceback (most recent call last):
  File "eval.py", line 280, in <module>
    log_freq=args.log_freq)
  File "eval.py", line 135, in run_evaluation
    pred_rotmat, pred_betas, pred_camera = model(images)
NameError: name 'images' is not defined
(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Eval:   0%|                                                                        | 0/35515 [00:00<?, ?it/s]/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
Traceback (most recent call last):
  File "eval.py", line 281, in <module>
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
    log_freq=args.log_freq)
  File "eval.py", line 125, in run_evaluation
    for step, batch in enumerate(tqdm(data_loader, desc='Eval', total=len(data_loader))):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/tqdm/std.py", line 1097, in __iter__
    for obj in iterable:
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 819, in __next__
    return self._process_data(data)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
    data.reraise()
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/_utils.py", line 369, in reraise
    raise self.exc_type(msg)
UnboundLocalError: Caught UnboundLocalError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/datasets/base_dataset.py", line 190, in __getitem__
    orig_shape = np.array(img.shape)[:2]
UnboundLocalError: local variable 'img' referenced before assignment

Hello, did you solve the problem?

yanran11 commented 2 years ago

I am trying to solve the problem by using eval.py and pass the images as a dataset. For now I am trying to use the 3dpw dataset but I obtain this error:

(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Traceback (most recent call last):
  File "eval.py", line 280, in <module>
    log_freq=args.log_freq)
  File "eval.py", line 135, in run_evaluation
    pred_rotmat, pred_betas, pred_camera = model(images)
NameError: name 'images' is not defined
(vibe-env) giuliamartinelli@mmlab-MS-7B46:~/SPIN$ python3 eval.py --checkpoint=data/model_checkpoint.pt --dataset=3dpw --log_freq=20 --result=out.npz
Eval:   0%|                                                                        | 0/35515 [00:00<?, ?it/s]/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00000.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00001.jpg
Traceback (most recent call last):
  File "eval.py", line 281, in <module>
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
/home/giuliamartinelli/SPIN/imageFiles/imageFiles/courtyard_arguing_00/imageFiles/downtown_enterShop_00/image_00002.jpg
    log_freq=args.log_freq)
  File "eval.py", line 125, in run_evaluation
    for step, batch in enumerate(tqdm(data_loader, desc='Eval', total=len(data_loader))):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/tqdm/std.py", line 1097, in __iter__
    for obj in iterable:
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 819, in __next__
    return self._process_data(data)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 846, in _process_data
    data.reraise()
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/_utils.py", line 369, in reraise
    raise self.exc_type(msg)
UnboundLocalError: Caught UnboundLocalError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 178, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/spin/lib/python3.6/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/giuliamartinelli/SPIN/datasets/base_dataset.py", line 190, in __getitem__
    orig_shape = np.array(img.shape)[:2]
UnboundLocalError: local variable 'img' referenced before assignment

Hello, did you solve the problem? hi,I had the same problem running train.py. Did you solve this problem?