我尝试了所有可能的解决方案来解决这个问题......但仍然没有运气。这是我得到的错误。
results = self.trainer.run_pretrain_routine(model)
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/trainer.py", line 1239, in run_pretrain_routine
self.train()
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 394, in train
self.run_training_epoch()
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 491, in run_training_epoch
batch_output = self.run_training_batch(batch, batch_idx)
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 839, in run_training_batch
opt_closure_result = self.optimizer_closure(
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 1014, in optimizer_closure
training_step_output = self.training_forward(split_batch, batch_idx, opt_idx,
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/env/lib/python3.8/site-packages/pytorch_lightning/trainer/training_loop.py", line 1216, in training_forward
output = self.model.training_step(*args)
File "/mnt/beegfs/scratch/nahmed/eICU-GNN-LSTM_working/train_ns_lstmgnn.py", line 78, in training_step
in_x = self.dataset.data.x[n_id].to(self.device)
RuntimeError: indices should be either on cpu or on the same device as the indexed tensor (cpu)```
I am trying to run the code in GPU in the HPC server. Please someone help.
所以,我通过这个解决了它,self.dataset.data.x 应该与索引在同一个设备中。
in_x = self.dataset.data.x.to(n_id.device)[n_id].to(self.device)
希望对某人有帮助。