Skip to content

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

Open
gitauto-ai[bot] wants to merge 1 commit intomasterfrom
gitauto/issue-68-caa2b879-c1b8-4048-a32d-c88f276000ee

Conversation

@gitauto-ai
Copy link
Copy Markdown
Contributor

@gitauto-ai gitauto-ai Bot commented Nov 18, 2024

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

  1. Run the application on a CPU-only machine.
  2. The application tries to load a PyTorch model using torch.load without specifying the map_location.
  3. 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.

Changes to be made:

  • Locate the line where the model is loaded:
    self.model = torch.load(predict_weight)
  • Modify it to:
    self.model = torch.load(predict_weight, map_location=torch.device('cpu'))

This change ensures compatibility across environments with or without CUDA support.

Test these changes locally

git checkout -b gitauto/issue-68-caa2b879-c1b8-4048-a32d-c88f276000ee
git pull origin gitauto/issue-68-caa2b879-c1b8-4048-a32d-c88f276000ee

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

0 participants