服务器上的“预期后端CPU和数据类型加倍,但得到后端CPU和数据类型浮动”

2024-10-02 14:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做什么:

我试图使用不同的数据集从github运行以下代码https://github.com/k-han/AutoNovel我编辑了rotationloader并添加了一些数据加载器,其余的与github相同

问题:

该代码在较小的服务器上运行良好,但在较大(更强)的服务器上运行时遇到了一些错误。错误消息是RuntimeError: expected backend CPU and dtype Double but got backend CPU and dtype Float。完整的错误跟踪在问题的末尾

我的尝试:
有人建议我编写一个脚本,并将其放在代码所在的位置。这个脚本是

#!/bin/bash
#SBATCH --job-name=test
#SBATCH --output=test.out
#SBATCH --account=guest
#SBATCH --partition=guest-gpu
#SBATCH --qos=low-gpu
#SBATCH --time=02:00:00
#SBATCH --gres=gpu:TitanX:1   # Request 1 TitanX GPU
 
# Load modules required for your job
module load cuda/9.0
module load share_modules/HOOMD/2.3.5_sp
 
# Path to your executable
./mygpucode.exe

写入此脚本并将其添加到文件中没有进行任何更改

还有人建议我在x是张量的名称时添加x.cuda().double(),但我不确定在哪里添加这个

如果我遗漏了任何信息,请告诉我。提前谢谢你

完整错误跟踪:

Traceback (most recent call last):
  File "selfsupervised_learning.py", line 178, in <module>
    main()
  File "selfsupervised_learning.py", line 169, in main
    loss_record = train(epoch, model, device, dloader_train, optimizer, exp_lr_scheduler, criterion, args)
  File "selfsupervised_learning.py", line 65, in train
    for batch_idx, (data, label) in enumerate(tqdm(dataloader(epoch))):
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/tqdm/_tqdm.py", line 1005, in __iter__
    for obj in iterable:
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 582, in __next__
    return self._process_next_batch(batch)
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 608, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
RuntimeError: Traceback (most recent call last):
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 99, in _worker_loop
    samples = collate_fn([dataset[i] for i in batch_indices])
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torch/utils/data/_utils/worker.py", line 99, in <listcomp>
    samples = collate_fn([dataset[i] for i in batch_indices])
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torchnet/dataset/listdataset.py", line 54, in __getitem__
    return self.load(self.list[idx])
  File "/home/mchoi/AutoNovel/data/rotationloader.py", line 219, in _load_function
    self.transform(img0),
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torchvision/transforms/transforms.py", line 61, in __call__
    img = t(img)
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torchvision/transforms/transforms.py", line 164, in __call__
    return F.normalize(tensor, self.mean, self.std, self.inplace)
  File "/home/mchoi/.conda/envs/auto_novel/lib/python3.6/site-packages/torchvision/transforms/functional.py", line 208, in normalize
    tensor.sub_(mean[:, None, None]).div_(std[:, None, None])
RuntimeError: expected backend CPU and dtype Double but got backend CPU and dtype Float

Tags: inpyhomeautolibpackagesbatchline