xtalker icon indicating copy to clipboard operation
xtalker copied to clipboard

Attempting to deserialize object on CUDA device

Open SuperMaximus1984 opened this issue 2 years ago • 1 comments

Please clarify what's the reason and how to troubleshoot?

(xtalker) max@Firestarter:/mnt/d/Python Stuff/xtalker$ python3.8 inference.py --driven_audio audio.wav --source_image image.jpg --result_dir ./results --cpu --bf16
using safetensor as default
start to generate video... 1695504166.066598
device========= cpu
---------device----------- cpu
Traceback (most recent call last):
  File "inference.py", line 219, in <module>
    main(args)
  File "inference.py", line 43, in main
    preprocess_model = CropAndExtract(sadtalker_paths, device)
  File "/mnt/d/Python Stuff/xtalker/src/utils/preprocess.py", line 49, in __init__
    self.propress = Preprocesser(device)
  File "/mnt/d/Python Stuff/xtalker/src/utils/croper.py", line 22, in __init__
    self.predictor = KeypointExtractor(device)
  File "/mnt/d/Python Stuff/xtalker/src/face3d/extract_kp_videos_safe.py", line 28, in __init__
    self.detector = init_alignment_model('awing_fan',device=device, model_rootpath=root_path)
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/facexlib/alignment/__init__.py", line 19, in init_alignment_model
    model.load_state_dict(torch.load(model_path)['state_dict'], strict=True)
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 815, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 1043, in _legacy_load
    result = unpickler.load()
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 980, in persistent_load
    wrap_storage=restore_location(obj, location),
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 217, in default_restore_location
    result = fn(storage, location)
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 182, in _cuda_deserialize
    device = validate_cuda_device(location)
  File "/home/max/anaconda3/envs/xtalker/lib/python3.8/site-packages/torch/serialization.py", line 166, in validate_cuda_device
    raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU

SuperMaximus1984 avatar Sep 23 '23 21:09 SuperMaximus1984

@SuperMaximus1984 , please check https://github.com/Spycsh/xtalker/issues/3

Spycsh avatar Sep 25 '23 01:09 Spycsh