A Tetris Game for programming education in Japanese
MIT License
30
stars
107
forks
source link
GitAuto: pytorch実行時にエラー(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.) #173
The application attempts to deserialize a PyTorch model on a CUDA device when CUDA is not available. This results in a RuntimeError because the model was trained on a GPU, but the current environment does not have CUDA support enabled.
How to reproduce
Run the application on a CPU-only machine.
The application tries to load a PyTorch model using torch.load without specifying the map_location.
A RuntimeError is raised:
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.
How to fix
Update the torch.load call in game_manager/machine_learning/block_controller_train_sample.py to include the map_location parameter. This ensures that the model is loaded onto the CPU when CUDA is not available.
Resolves #68
Why the bug occurs
The application attempts to deserialize a PyTorch model on a CUDA device when CUDA is not available. This results in a
RuntimeError
because the model was trained on a GPU, but the current environment does not have CUDA support enabled.How to reproduce
torch.load
without specifying themap_location
.RuntimeError
is raised:How to fix
Update the
torch.load
call ingame_manager/machine_learning/block_controller_train_sample.py
to include themap_location
parameter. This ensures that the model is loaded onto the CPU when CUDA is not available.Changes to be made:
This change ensures compatibility across environments with or without CUDA support.
Test these changes locally