使用 cpu 与 mps 或 ROCm 进行训练时的不同损失

问题描述 投票:0回答:1

我对 pytorch 很陌生,想要在这里找到的模型:(https://github.com/HardeyPandya/Temporal-Convolutional-Neural-Network-Single-Channel-Speech-Enhancement/tree/main/TCNN )

我在装有 M1Pro 的 MacBook 上,也在不同的计算机(Ubuntu、Ryzen 3900X、Radeon VII)上试过

我尝试在 cpu 上使用非常小的数据集(仅 3 个时期来检查是否一切正常)对其进行训练,并在第一个时期得到以下结果。

============== 1 epoch ==============
[0 seconds] Begin training...
Loss: 
tensor(0.7866, grad_fn=<AddBackward0>)
Loss: 
tensor(1.5864, grad_fn=<AddBackward0>)
Loss: 
tensor(2.2366, grad_fn=<AddBackward0>)
[38.63273882865906 seconds] End this epoch.

在接下来的 epoch 中,损失变得更接近于 0。

然后我尝试在 gpu 上运行它:

修改模型.ipynb:

if torch.backends.mps.is_available():
    print("MPS AVAILABLE")
    device = torch.device("mps")

# when initialising the model:
model = initialize_config(config["model"])
model.to(device)

修改的base_trainer.py

# replaced this line
#self.device = self._prepare_device(self.n_gpu, cudnn_deterministic=config["cudnn_deterministic"])
# with this
self.device = torch.device('mps')

现在好像跑在gpu上了,但是到处都是损失:

tensor(1.3858, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(9.0829, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(10.2000, device='mps:0', grad_fn=<AddBackward0>)
[24.909322023391724 seconds] End this epoch.
============== 2 epoch ==============
[0 seconds] Begin training...
Loss: 
tensor(7.4854, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(14.3712, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(15.1385, device='mps:0', grad_fn=<AddBackward0>)
[25.140717029571533 seconds] End this epoch.
============== 3 epoch ==============
[0 seconds] Begin training...
Loss: 
tensor(6.0472, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(11.4786, device='mps:0', grad_fn=<AddBackward0>)
Loss: 
tensor(12.0494, device='mps:0', grad_fn=<AddBackward0>)
[26.356099843978882 seconds] End this epoch.

在使用 ROCm 的 Linux 机器上,我注意到了同样的问题。 在这里我不必更改 base_trainer.py 每当我在 gpu 上运行时,损失都非常高,但执行速度要快得多。

有什么想法吗? 非常感谢!

python machine-learning deep-learning pytorch
1个回答
0
投票

可能设置种子是你需要的,除非你完成整个代码,否则不确定。 参考如何播种

© www.soinside.com 2019 - 2024. All rights reserved.