PaddleClas
PaddleClas copied to clipboard
PaddleClas日志打印loss为nan训练不正常
使用相同的训练样本,使用相同的Docker镜像,在不同的Linux服务器上,一个正常,一个不正常,并打印许多nan
- PaddleClas版本以及PaddlePaddle版本: paddle-bfloat 0.1.7 paddleclas 2.5.1 paddlepaddle-gpu 2.5.1.post117 使用的代码分支为PaddleCLas/develop分支(使用release-2.5.1分支报错)
- 涉及的其他产品使用的版本号:PaddleClas
- 训练环境信息: a. 具体操作系统,如Linux(Ubuntu 20.04.5) b. Python版本号,python 3.8 c. CUDA/cuDNN版本, 如CUDA11.7/cuDNN 8.4等
- 完整的代码(相比于repo中代码,有改动的地方)、详细的错误信息及相关log [2023/09/13 09:33:10] ppcls INFO: [Train][Epoch 56/100][Avg]top1: 0.00000, top2: 0.00000, CELoss: nan, loss: nan [2023/09/13 09:33:11] ppcls WARNING: The number of negative samples is 0, please add negative samples. [2023/09/13 09:33:11] ppcls INFO: [Eval][Epoch 56][Iter: 0/2]CELoss: 0.00000, loss: 0.00000, threshold: 0.0, fpr: 0.0, tpr: 1.00000, top1: 0.00000, top2: 0.00000, batch_cost: 0.25136s, reader_cost: 0.14974, ips: 254.61737 images/sec [2023/09/13 09:33:11] ppcls WARNING: The number of negative samples is 0, please add negative samples. [2023/09/13 09:33:11] ppcls INFO: [Eval][Epoch 56][Avg]CELoss: 0.00000, loss: 0.00000, threshold: 0.0, fpr: 0.0, tpr: 1.00000, top1: 0.00000, top2: 0.00000 [2023/09/13 09:33:11] ppcls INFO: [Eval][Epoch 56][best metric: 1.0] [2023/09/13 09:33:11] ppcls INFO: Already save model in ./output/PPLCNet_x1_0/epoch_56 [2023/09/13 09:33:11] ppcls INFO: Already save model in ./output/PPLCNet_x1_0/latest [2023/09/13 09:33:12] ppcls INFO: [Train][Epoch 57/100][Iter: 0/20]lr(LinearWarmup): 0.00441437, top1: 0.00000, top2: 0.00000, CELoss: nan, loss: nan, batch_cost: 0.07035s, reader_cost: 0.00910, ips: 909.78493 samples/s, eta: 0:01:01 [2023/09/13 09:33:12] ppcls INFO: [Train][Epoch 57/100][Iter: 10/20]lr(LinearWarmup): 0.00433234, top1: 0.00000, top2: 0.00000, CELoss: nan, loss: nan, batch_cost: 0.05662s, reader_cost: 0.00016, ips: 1130.35529 samples/s, eta: 0:00:49 [2023/09/13 09:33:13] ppcls INFO: [Train][Epoch 57/100][Avg]top1: 0.00000, top2: 0.00000, CELoss: nan, loss: nan
两个不同的服务器的区别是什么呢
两个不同的服务器的区别是什么呢
@cuicheng01 训练有问题的服务器:单卡 NVIDIA Quadro P6000 GPU 训练正常的服务器:4卡 NVIDIA GeForce 3090 我在3090GPU的服务器用单卡也是能正常的,两个服务器宿主机的驱动都是一样的:NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0
请问解决了吗?我也遇到了同样的问题,在一台笔记本上可以正常训练,但另一台台式上就会top1为0,loss为nan
两个不同的服务器的区别是什么呢
@cuicheng01 训练有问题的服务器:单卡 NVIDIA Quadro P6000 GPU 训练正常的服务器:4卡 NVIDIA GeForce 3090 我在3090GPU的服务器用单卡也是能正常的,两个服务器宿主机的驱动都是一样的:NVIDIA-SMI 525.105.17 Driver Version: 525.105.17 CUDA Version: 12.0
卡数不一样的话global bs会不一致,有没有保持统一呢?
请问解决了吗?我也遇到了同样的问题,在一台笔记本上可以正常训练,但另一台台式上就会top1为0,loss为nan
两个的配置是否完全一致呢?
@cuicheng01 没有解决,在单卡那台机器还是有问题,为了赶进度,在多卡机器训练了
https://blog.csdn.net/qq_37085158/article/details/132598829?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169915164016800213054460%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169915164016800213054460&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-132598829-null-null.142^v96^pc_search_result_base1&utm_term=%20The%20GPU%20architecture%20in%20your%20current%20machine%20is%20Pascal%2C&spm=1018.2226.3001.4187 选择版本可以直接在https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html 解决办法 我是cuda11.6 cudnn 8.5.0 再笔记本上是2.5.0的rc1 可以使用 再另一台win10是2.5.0rc1 再centos上是2.4.2cuda版本和cudnn版本没变过 装完之后使用
import paddle
paddle.utils.run_check()
只要不出现那个警告( GPU architecture in your current machine is Pascal, )应该可以了