问题遇到的现象和发生背景
完全相同的代码,几乎相同的环境,在本地运行时损失正常,但在云GPU上运行损失较大(每次运行都维持在0.3左右),且几乎未见下降。本来在云端是可以运行的,因一次本来常用的intel 3090服务器被占用,把环境迁移到了另一台AMD 3090,发现损失值与原来相差较大,以为是AMD的问题,后切换回Intel 3090,问题仍然存在。上网查询,更换过pytorch版本,无用;更换了云GPU提供商,只是损失值有变化一点,未达到问题发生前水平;cuda也符合能使3090正常训练的版本。
本机与服务器配置 (使用pycharm)
本地电脑配置:intel i7-8550u nvidia MX150 pytorch1.11 cuda11.6 win11
import torch
print(torch.__version__)
1.11.0
服务器配置:intel e5-2678 v3 nvidia rtx 3090 pytorch1.11 cuda11.3 ubuntu20.04
import torch
print(torch.__version__)
1.11.0+cu113
运行结果及报错内容
以下是本机运行结果:
{'epoch': 1, 'train_loss': 0.19286, 'time': 268.551922, 'val_loss': 0.142595, 'auc_roc': 0.963931, 'acc': 0.94737, 'sp': 0.98576, 'se': 0.678055, 'pr': 0.871593, 'f1': 0.762739, 'aupr': 0.864795, 'tag': 'none'}
第 1 轮模型已保存
最佳模型已保存
本周期是当前性能最好的周期 | AUC_roc_best: 0.9639308454893082
以下是云端运行结果,设置了随机数种子后,每次运行完第一轮的训练损失都是0.329996,即使对网络进行微调,也是这个结果:
{'epoch': 1, 'train_loss': 0.329996, 'time': 22.727583, 'val_loss': 0.347682, 'auc_roc': 0.68753, 'acc': 0.871742, 'sp': 0.975078, 'se': 0.15076, 'pr': 0.464386, 'f1': 0.227624, 'aupr': 0.287062, 'tag': 'none'}
第 1 轮模型已保存
最佳模型已保存
本周期是当前性能最好的周期 | AUC_roc_best: 0.6875297052175594
我的解答思路和尝试过的方法
我设定了随机种子同时对本机和云端进行调试,在确保输入数据一致的情况下,一开始二者的参数相差不大(此时未完成一个周期的训练),损失也几乎相同,但逐渐本地的损失开始下降,而云端却未见下降。
我想要达到的结果
希望了解相关问题或者遇到过类似情况的朋友给予帮助,十分感谢!