Replies: 17 comments 31 replies
-
我来添加描述: 我一开始怀疑eval-only有问题,于是导入了我之前存下来记录了acc的ckpt,发现精度是一致的,说明eval-only没问题。 通过eval-only导入: 4999:15.55% -> 9999: 39.05% -> 14999: 36.95% -> 19999: 27.04% 现在怀疑的是,要不是训练时eval有问题,要不是save model有问题,这两个里面肯定有一个有问题。 |
Beta Was this translation helpful? Give feedback.
-
目前已经确定是commit: 7275a1c 的问题,在这之前没有这种情况,但虽然精度对齐了,其最终精度相比于pytorch的swinv2版本却要低的很多,在这之后虽然没对齐,但精度比pytorch的swinv2略高2-3个点。 在这里,我额外说明一下,出现精度不对齐不是一开始就出现的,而是要14999次迭代之后才会出现。 然后这里我发一下在那个commit之前的log日志,他和pytorch版本差距巨大: 可以看到精度差pytorch挺多的,至于那个commit之后的还没跑完,但可以看看,其实高了非常多: |
Beta Was this translation helpful? Give feedback.
-
说明一下我出现问题的环境:
我直接拉下libai的最新分支,然后修改一下swinv2_imagenet.py里面路径就可以复现了 |
Beta Was this translation helpful? Give feedback.
-
去掉这句话,精度立马下降,但对齐了。 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
关于0.7.0 stable oneflow和0.8.0 nightly oneflow的swin-t性能对比new commit: 78ba55cb0499a33fd6c68beb37ad1ce0db71a5be libai版本:commit: f02edc0 新版比旧版足足低5-7个点!!!! 我接下来会绘图进行可视化一下 |
Beta Was this translation helpful? Give feedback.
-
新旧版本对比,可以明显发现是oneflow的问题。 |
Beta Was this translation helpful? Give feedback.
-
该图是使用0.7.0 stable的oneflow版本,导入0.7.0 stable oneflow初始化,pytorch 1.12.0 cu113 初始化,并使用 该libai分支:f02edc0 |
Beta Was this translation helpful? Give feedback.
-
排查bug: 二分法排查 这里绘制相关结果,非常担忧的一件事情出现了,似乎不是仅仅由一个commit引起的,这是代表了swin的val acc精度,且日期代表了那一天的oneflow:使用的libai是同一个版本,也就是swin被加入的那个分支,在前面的讨论中已经说明
具体排查细节3月18号 oneflow -> 8月28号 oneflow 分别在54天,107天进行测试: 其中第54天的commit为5月14号:Oneflow-Inc/oneflow@08ef65e 好吧这个方法不行,谁能想到oneflow 从4月份到7月份之间,swin是一直无法运行的,最近一次可以运行在7月份了,我选取了Oneflow-Inc/oneflow@7664464 来测试 7月22号版本的oneflow,swin精度已经有问题: 接下来测试5月12号:https://github.com/Oneflow-Inc/oneflow/tree/8ae6c412c863b0842ee3dbd0a9156be5b877eb29 5月12号的oneflow版本已经没有编译好的版本: 突然发现6月8号这个commit: e224be48c474981f1a62e1c0c16c54dca41e5ec7 之前都没有编译了,看来要自己编译了。 6月8号版本的oneflow,swin精度已经有问题 6月8号前的所有commit编译结果oss上都不存在,需要自己编译: 现在测试5月12号的commit:08e1e0b2d3b93fb3e543a87446cd8d5815e82f33 5月12号版本的oneflow,swin精度已经有问题 按照二分法,继续排查4月15日,需要自己编译: 4月15号版本的oneflow,swin精度是正常的 按照二分法,继续排查4月28日,需要自己编译: 4月28号版本的oneflow,swin精度已经不正常 按照二分法,继续排查4月19日,需要自己编译: 4月19号版本的oneflow,swin精度正常 按照二分法,继续排查4月23日,需要自己编译: 4月23号版本的oneflow,swin精度正常 按照二分法,继续排查4月25日,需要自己编译: 按照二分法,还剩下最后9个commit,分别为:
继续排查commit为:b76ad2044ac5e2b0549db8f1610102ae90d4f066 b76a开头的commit是正常的:
继续排查commit为:157f82522b942e99743b869654d2f8c1d67bc8a1 175f开头的commit是正常的: 验证commit:28dcad1532d8b899e727f5f446f0a30bf4258117 继续验证commit: d8dc9610f7454fa3020952b51f881cb9f364ef1b 接下来只有一种可能,那就是4月25日5409开头的commit,且已经被验证过的commit,我进行了第二次验证: |
Beta Was this translation helpful? Give feedback.
-
1关于最新9月份两个seed之前的pr的验证:6758485c56581d043063614a5f047f00c067edad 2oneflow编译后,单独提交了分支在:https://github.com/Oneflow-Inc/oneflow/tree/seed_04_25_test 结果发现精度没问题,验证了depeng的猜想: |
Beta Was this translation helpful? Give feedback.
-
也就是这俩PR之前不正常,这俩PR之后是正常的。 是两个commit 一起起作用,还是某一个commit 起的作用呢? |
Beta Was this translation helpful? Give feedback.
-
Swin-Transformer-V2 修复后的精度,为80.074: |
Beta Was this translation helpful? Give feedback.
-
一些实验的记录 按照袁老师所说,去掉HAS_NUMPY后,swin-transformer精度有略微提升,但不大,约从79.9->80.0: |
Beta Was this translation helpful? Give feedback.
-
这说明 HAS_NUMPY 那段代码对swin 没有什么作用 |
Beta Was this translation helpful? Give feedback.
-
swin tiny eager ddp 实验结果oneflow 版本commit 28620d72dfe3ab4799b87d621d0967d536ab2be7 (HEAD -> master, origin/master, origin/HEAD)
Author: Juncheng <[email protected]>
Date: Wed Sep 28 09:16:51 2022 +0800
Disable IB when there no active IB devices (#9115) swin 仓库地址https://github.com/Oneflow-Inc/swin-transformer/tree/swin_clean_ldp/swin_transformer commit 6d44e552bb377e8191465454f506c2fb98c7d21a (HEAD -> swin_clean_ldp, origin/swin_clean_ldp)
Author: Ldpe2G <[email protected]>
Date: Mon Oct 3 02:36:47 2022 +0000
swin tiny acc 81.26% on imagenet dataset 实验结果总共跑了两次实验,数据集 imagenet 第一次 acc: 81.07% log_rank0_1002.txt 第二次 acc: 81.26% log_rank0_1003.txt 实验结论第二次实验结果和 官方精度 81.29% 非常接近,可以认为 eager ddp 和官方实验基本是对齐的。 然后两次实验 acc 波动 ~ 0.2% 。 |
Beta Was this translation helpful? Give feedback.
-
swin tiny eager global 实验结果oneflow 版本'0.8.1.dev20221006+cu112' swin 仓库地址commit da3a7c9b3a22296b3ed857f10bd5a22744b68d48 (HEAD -> swin_clean_ldp_eager_consistent, origin/swin_clean_ldp_eager_consistent)
Author: Ldpe2G <[email protected]>
Date: Fri Oct 7 11:39:53 2022 +0000
refine scripts 实验结果总共跑了1次实验,数据集 imagenet acc: 81.15% log_rank0.txt 实验结论实验结果和 官方精度 81.29% 相差 0.14%,可以认为 eager global 和官方精度也是基本对齐的。 |
Beta Was this translation helpful? Give feedback.
-
swin tiny graph fp32 实验结果oneflow 版本commit 48d3c78b58bfbb89f8e0bd940714fc10c3001612 (HEAD -> master, origin/master, origin/HEAD)
Author: Peihong Liu <[email protected]>
Date: Sun Oct 9 10:33:01 2022 +0800
Add Tensor.scatter_add & refine scatter (#9201)
add Tensor.scatter_add & refine scatter swin 仓库地址https://github.com/Oneflow-Inc/swin-transformer/tree/swin_clean_ldp_graph/swin_transformer commit ef966367ed1833204019b568ceb280b1f9079643 (HEAD -> swin_clean_ldp_graph, origin/swin_clean_ldp_graph)
Author: Ldpe2G <[email protected]>
Date: Tue Oct 11 01:43:32 2022 +0000
fix bug: forget to call model.eval() when init the eval graph 实验结果总共跑了1次实验,数据集 imagenet acc: 80.43% log_rank0.txt 实验结论实验结果和 官方精度 81.29% 还相差 0.86%,还要仔细对一下细节。 |
Beta Was this translation helpful? Give feedback.
-
main 分支;swinv2 模型;
问题:triain 的精度上升太快 然后用eval-only一看又很低;
Beta Was this translation helpful? Give feedback.
All reactions