Hello, I have been trying to follow the hummingbird tutorial and to train it using the gpu, however, when I start training I get a message saying that there are multiple devices “cuda:0” and “cpu”.
This is the error:
Exception in thread Thread-2 (trainer_update_func):
Traceback (most recent call last):
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\threading.py", line 953, in run
self._target(self._args, **self._kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\trainer_controller.py", line 297, in trainer_update_func
trainer.advance()
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\trainer\rl_trainer.py", line 293, in advance
self._process_trajectory(t)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\ppo\trainer.py", line 91, in _process_trajectory
) = self.optimizer.get_trajectory_value_estimates(
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\optimizer\torch_optimizer.py", line 190, in get_trajectory_value_estimates
value_estimates, next_memory = self.critic.critic_pass(
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\torch_entities\networks.py", line 487, in critic_pass
value_outputs, critic_mem_out = self.forward(
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\torch_entities\networks.py", line 499, in forward
encoding, memories = self.network_body(
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(*args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\torch_entities\networks.py", line 244, in forward
encoding = self._body_endoder(encoded_self)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(args, **kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\mlagents\trainers\torch_entities\layers.py", line 169, in forward
return self.seq_layers(input_tensor)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(*args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(args, **kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\container.py", line 217, in forward
input = module(input)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1511, in _wrapped_call_impl
return self._call_impl(args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\module.py", line 1520, in _call_impl
return forward_call(*args, kwargs)
File "C:\Users\rullo\anaconda3\envs\ml_agents\lib\site-packages\torch\nn\modules\linear.py", line 116, in forward
return F.linear(input, self.weight, self.bias)
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu! (when checking argument for argument mat1 in method wrapper_CUDA_addmm)
As inferenceDevice I’m using default.
I currently run on Windows 11, with rtx 4080, and pytorch version 2.4.*