lukemelas / realfusion

Official code for "RealFusion: 360° Reconstruction of Any Object from a Single Image" (CVPR 2023)
Apache License 2.0
541 stars 38 forks source link

Import Error: cannot import name 'narrow_tensor_by_index' from 'torch.distributed._shard._utils' #20

Open wyf-gh opened 9 months ago

wyf-gh commented 9 months ago

Description

Thanks for your excellent work. But I have a ImportError when I run main.py. Details of the error are as follows: Traceback (most recent call last): File "/root/autodl-tmp/realfusion-main/main.py", line 12, in from nerf.trainer import Trainer File "/root/autodl-tmp/realfusion-main/nerf/trainer.py", line 26, in from sd.sd import StableDiffusion File "/root/autodl-tmp/realfusion-main/sd/init.py", line 1, in from .sd import StableDiffusion File "/root/autodl-tmp/realfusion-main/sd/sd.py", line 4, in from diffusers import AutoencoderKL, UNet2DConditionModel, PNDMScheduler File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/diffusers/init.py", line 3, in from .configuration_utils import ConfigMixin File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/diffusers/configuration_utils.py", line 34, in from .utils import ( File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/diffusers/utils/init.py", line 21, in from .accelerate_utils import apply_forward_hook File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/diffusers/utils/accelerate_utils.py", line 24, in import accelerate File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/accelerate/init.py", line 3, in from .accelerator import Accelerator File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/accelerate/accelerator.py", line 35, in from .checkpointing import load_accelerator_state, load_custom_state, save_accelerator_state, save_custom_state File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/accelerate/checkpointing.py", line 24, in from .utils import ( File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/accelerate/utils/init.py", line 152, in from .fsdp_utils import load_fsdp_model, load_fsdp_optimizer, save_fsdp_model, save_fsdp_optimizer File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/accelerate/utils/fsdp_utils.py", line 25, in import torch.distributed.checkpoint as dist_cp File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/torch/distributed/checkpoint/init.py", line 7, in from .state_dict_loader import load_state_dict File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/torch/distributed/checkpoint/state_dict_loader.py", line 10, in from .default_planner import DefaultLoadPlanner File "/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/torch/distributed/checkpoint/default_planner.py", line 13, in from torch.distributed._shard._utils import narrow_tensor_by_index ImportError: cannot import name 'narrow_tensor_by_index' from 'torch.distributed._shard._utils' (/root/miniconda3/envs/realfusion/lib/python3.9/site-packages/torch/distributed/_shard/_utils.py)

And I find that the _utils.py doesn't have the function named narrow_tensor_by_index , but it has the function :def narrow_tensor(tensor: torch.Tensor, metadata: ShardMetadata)

Steps to Reproduce

I run the main.py as python main.py --O --image_path examples/natural-images/bird_2/rgba.png --learned_embeds_path examples/natural-images/bird_2/learned_embeds.bin --text "A high-resolution DSLR image of a bird" --pretrained_model_name_or_path "runwayml/stable-diffusion-v1-5"

Expected Behavior

I want to know if I have installed the wrong version of pytorch or something else.

Environment

Ubuntu 18.04 Pytorch1.12.1 CUDA 11.3