name | about | labels |
---|---|---|
Bug Report | Use this template for reporting a bug | kind/bug |
crnn_vgg7在data_lmdb_release八卡训练精度不达标,loss为nan
Ascend
/GPU
/CPU
) / 硬件环境:Please delete the backend not involved / 请删除不涉及的后端:
/device ascend910B
Software Environment / 软件环境 (Mandatory / 必填):
-- MindSpore version (e.g., 1.7.0.Bxxx) :2.3.0
-- Python version (e.g., Python 3.7.5) :3.7
-- OS platform and distribution (e.g., Linux Ubuntu 16.04):
-- GCC/Compiler version (if compiled from source):
run包:Milan_C17/20240321
mindspore:Daily/Version/202403/0329/mindspore/r2.3.q1_20240329061516_c99698ba26958cd790921dd56daa7145f334b4ef/
Excute Mode / 执行模式 (Mandatory / 必填)(PyNative
/Graph
):
Please delete the mode not involved / 请删除不涉及的模式:
/mode graph
test_ms_crnn_vgg7_data_lmdb_release_train_infer_910_gpu_8p_0001.py
训练成功,精度达标达标
走给詹霑
O3 B090有问题
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
O0 B100有问题
nn.LSTM算子在输入FP32时有bug,导致loss收敛异常。
将CRNN中nn.LSTM层及其输入转换为FP16进行计算。
--- a/mindocr/models/necks/rnn.py
+++ b/mindocr/models/necks/rnn.py
@@ -1,5 +1,5 @@
from typing import List, Optional
-
+import mindspore as ms
import numpy as np
from mindspore import Tensor, nn, ops
@@ -37,6 +37,7 @@ class RNNEncoder(nn.Cell):
has_bias=True,
dropout=0.,
bidirectional=True)
+ self.seq_encoder.to_float(ms.float16)
self.hx = None
if batch_size is not None:
@@ -46,6 +47,7 @@ class RNNEncoder(nn.Cell):
def construct(self, features: List[Tensor]) -> Tensor:
x = features[0]
+ x = x.astype(ms.float16)
x = ops.squeeze(x, axis=2) # [N, C, W]
x = ops.transpose(x, (2, 0, 1)) # [W, N, C]
@@ -53,5 +55,5 @@ class RNNEncoder(nn.Cell):
x, _ = self.seq_encoder(x)
else:
x, _ = self.seq_encoder(x, self.hx)
-
+ x = x.astype(ms.float32)
return x
进行全量精度测试,以及多数据集验证。
网络问题,已由解决方案测试看护。
在B100版本上进行全量精度测试,以及多数据集验证。
回归版本:
runpkg_version:Milan_C17/20240402
mindspore:2.3.0rc1 commit_id = '[sha1]:f6ee75fd,[branch]:(HEAD,origin/r2.3.q1,r2.3.q1)'
回归步骤:修改mindocr代码,启动测试用例test_ms_crnn_vgg7_data_lmdb_release_train_infer_910_gpu_8p_0001.py,O3下训练
diff --git a/mindocr/models/necks/rnn.py b/mindocr/models/necks/rnn.py
index 629439e..0d576d4 100644
--- a/mindocr/models/necks/rnn.py
+++ b/mindocr/models/necks/rnn.py
@@ -1,5 +1,6 @@
from typing import List, Optional
+import mindspore as ms
import numpy as np
from mindspore import Tensor, nn, ops
@@ -37,6 +38,7 @@ class RNNEncoder(nn.Cell):
has_bias=True,
dropout=0.,
bidirectional=True)
+ self.seq_encoder.to_float(ms.float16)
self.hx = None
if batch_size is not None:
@@ -46,6 +48,7 @@ class RNNEncoder(nn.Cell):
def construct(self, features: List[Tensor]) -> Tensor:
x = features[0]
+ x = x.astype(ms.float16)
x = ops.squeeze(x, axis=2) # [N, C, W]
x = ops.transpose(x, (2, 0, 1)) # [W, N, C]
@@ -53,5 +56,5 @@ class RNNEncoder(nn.Cell):
x, _ = self.seq_encoder(x)
else:
x, _ = self.seq_encoder(x, self.hx)
-
+ x = x.astype(ms.float32)
return x
基本功能:正常训练,精度达标
测试结论:O3用例回归通过
回归人员:jianyunchao
回归时间:2024-4-7
回归版本:
runpkg_version:Milan_C17/20240406
mindspore:2.3.0rc1+20240408 commit_id = '[sha1]:754bc563,[branch]:(HEAD,origin/r2.3.q1,r2.3.q1)'
回归步骤:拉取mindocr最新master代码,启动测试用例test_ms_crnn_vgg7_O0_data_lmdb_release_train_infer_910_gpu_8p_0001.py,O0下训练
基本功能:正常训练,精度达标
测试结论:回归通过
回归人员:jianyunchao
回归时间:2024-4-8
登录 后才可以发表评论