跑pytorch时,出现如下错误:
Traceback (most recent call last):
File "main.py", line 306, in <module>
args_config=args_config,
File "main.py", line 184, in train
paras = torch.load(args_config.data_path + args_config.model_path)
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 387, in load
return _load(f, map_location, pickle_module, **pickle_load_args)
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 574, in _load
result = unpickler.load()
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 537, in persistent_load
deserialized_objects[root_key] = restore_location(obj, location)
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 119, in default_restore_location
result = fn(storage, location)
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 95, in _cuda_deserialize
device = validate_cuda_device(location)
File "/home/zzy/anaconda3/lib/python3.7/site-packages/torch/serialization.py", line 79, 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='cpu' to map your storages to the CPU.
注意报错:
please use torch.load with map_location=‘cpu’ to map your storages to the CPU.
定位到报错行184
/home/zzy/Pictures/Screenshot from 2020-10-24 09-11-50.png
将
paras = torch.load(args_config.data_path + args_config.model_path)
改为
paras = torch.load(args_config.data_path + args_config.model_path,map_location='cpu')
即可