NVlabs / affordance_diffusion

Codes for "Affordance Diffusion: Synthesizing Hand-Object Interactions"
https://github.com/NVlabs/affordance_diffusion/blob/master
101 stars 5 forks source link

AttributeError: '_idat' object has no attribute 'fileno' #17

Open dqj5182 opened 4 months ago

dqj5182 commented 4 months ago

When I run preprocess code

python generate_data.py --data_dir ../dataset/hoi4d --save_dir ../output --inpaint

I get this error when I run for "ZY20210800001_H1_C2_N15_S93_s02_T2_frame0084.png" and "ZY20210800002_H2_C17_N72_S256_s01_T3_frame0118.png".

Traceback (most recent call last):
  File "/home/XXXXX/affordance_diffusion/preprocess/generate_data.py", line 495, in <module>
    batch_main(args)
  File "/home/XXXXX/affordance_diffusion/preprocess/generate_data.py", line 305, in batch_main
    for i, data in tqdm(enumerate(dl), total=len(dl)):
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/tqdm/std.py", line 1181, in __iter__
    for obj in iterable:
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 628, in __next__
    data = self._next_data()
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1333, in _next_data
    return self._process_data(data)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1359, in _process_data
    data.reraise()
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/_utils.py", line 543, in reraise
    raise exception
SystemError: Caught SystemError in DataLoader worker process 4.
Original Traceback (most recent call last):
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/PIL/ImageFile.py", line 536, in _save
    fh = fp.fileno()
AttributeError: '_idat' object has no attribute 'fileno'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/_utils/worker.py", line 302, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/_utils/fetch.py", line 60, in fetch
    data = self.dataset[possibly_batched_index]
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/torch/utils/data/dataset.py", line 240, in __getitem__
    return self.datasets[dataset_idx][sample_idx]
  File "/home/XXXXX/affordance_diffusion/preprocess/dataset.py", line 112, in __getitem__
    if not osp.exists(inp_file): imageio.imwrite(inp_file, mask)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/imageio/v2.py", line 397, in imwrite
    return file.write(im, **kwargs)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/imageio/core/v3_plugin_api.py", line 367, in __exit__
    self.close()
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/imageio/plugins/pillow.py", line 144, in close
    self._flush_writer()
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/imageio/plugins/pillow.py", line 485, in _flush_writer
    primary_image.save(self._request.get_file(), **self.save_args)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/PIL/Image.py", line 2459, in save
    save_handler(self, fp, filename)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/PIL/PngImagePlugin.py", line 1412, in _save
    ImageFile._save(im, _idat(fp, chunk), [("zip", (0, 0) + im.size, 0, rawmode)])
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/PIL/ImageFile.py", line 540, in _save
    _encode_tile(im, fp, tile, bufsize, None, exc)
  File "/home/XXXXX/anaconda3/envs/graspeverything/lib/python3.9/site-packages/PIL/ImageFile.py", line 551, in _encode_tile
    encoder.setimage(im.im, extents)
SystemError: tile cannot extend outside image

May I ask what causes this error? This is about 300th iteration and all samples before this worked well.

amaccormack-lumira commented 2 months ago

Any jo? Just seen the same :(

dqj5182 commented 2 months ago

Nope. No solution yet.

amaccormack-lumira commented 2 months ago

My suspicion is that some module got updated and to go back and check what requirements got updated recently and go back to previous version

dqj5182 commented 2 months ago

Thanks for your suggestion! I'll also try that.

amaccormack-lumira commented 2 months ago

In the end looks like (in my case) a zero-width image was getting fed in

Headmaster11 commented 1 month ago

Get the same error

ZWanG0802 commented 5 days ago

I’ve encountered the same issues, but the error seems to be random. When I try to reproduce it, it doesn’t always appear. Have you managed to solve it? I’m using multiprocessing when running the code; could that be related to the problem?