You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

condition_list.py 22 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. # Copyright 2020 Huawei Technologies Co., Ltd
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. # ============================================================================
  15. """
  16. Condition list.
  17. This module provide the detail conditions list.
  18. """
  19. from mindinsight.conditionmgr.condition import Condition
  20. from mindinsight.conditionmgr.condition import OptimizePhaseEnum
  21. from mindinsight.conditionmgr.condition import ConditionParameter
  22. from mindinsight.conditionmgr.condition import ValueTypeEnum
  23. from mindinsight.conditionmgr.condition import TargetTypeEnum
  24. from mindinsight.conditionmgr.condition import PlatformEnum
  25. from mindinsight.conditionmgr.condition import check_initialization_available
  26. CONDITION_LIST = [
  27. Condition(
  28. condition_id="weight_initialization",
  29. abbr="WI",
  30. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_initialization
  31. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  32. parameters=[
  33. ConditionParameter(
  34. name="zero_percentage_ge",
  35. value_type=ValueTypeEnum.FLOAT64,
  36. default_value=100
  37. ),
  38. ConditionParameter(
  39. name="max_gt",
  40. value_type=ValueTypeEnum.FLOAT64
  41. ),
  42. ConditionParameter(
  43. name="min_lt",
  44. value_type=ValueTypeEnum.FLOAT64
  45. )
  46. ],
  47. supported_target_type=TargetTypeEnum.WEIGHT,
  48. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  49. minimum_debugger_capability=(1, 1),
  50. available_test_func=check_initialization_available
  51. ),
  52. Condition(
  53. condition_id="weight_overflow",
  54. abbr="WO",
  55. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_general_overflow
  56. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  57. parameters=[],
  58. supported_target_type=TargetTypeEnum.TENSOR,
  59. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  60. minimum_debugger_capability=(1, 1)
  61. ),
  62. Condition(
  63. condition_id="weight_too_large",
  64. abbr="WL",
  65. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_large
  66. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  67. parameters=[
  68. ConditionParameter(
  69. name="abs_mean_gt",
  70. value_type=ValueTypeEnum.FLOAT64
  71. ),
  72. ConditionParameter(
  73. name="max_gt",
  74. value_type=ValueTypeEnum.FLOAT64
  75. ),
  76. ConditionParameter(
  77. name="min_gt",
  78. value_type=ValueTypeEnum.FLOAT64
  79. ),
  80. ConditionParameter(
  81. name="mean_gt",
  82. value_type=ValueTypeEnum.FLOAT64
  83. )
  84. ],
  85. supported_target_type=TargetTypeEnum.WEIGHT,
  86. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  87. minimum_debugger_capability=(1, 1)
  88. ),
  89. Condition(
  90. condition_id="weight_too_small",
  91. abbr="WS",
  92. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_small
  93. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  94. parameters=[
  95. ConditionParameter(
  96. name="abs_mean_lt",
  97. value_type=ValueTypeEnum.FLOAT64
  98. ),
  99. ConditionParameter(
  100. name="max_lt",
  101. value_type=ValueTypeEnum.FLOAT64
  102. ),
  103. ConditionParameter(
  104. name="min_lt",
  105. value_type=ValueTypeEnum.FLOAT64
  106. ),
  107. ConditionParameter(
  108. name="mean_lt",
  109. value_type=ValueTypeEnum.FLOAT64
  110. )
  111. ],
  112. supported_target_type=TargetTypeEnum.WEIGHT,
  113. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  114. minimum_debugger_capability=(1, 1)
  115. ),
  116. Condition(
  117. condition_id="gradient_vanishing",
  118. abbr="GV",
  119. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_small
  120. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  121. parameters=[
  122. ConditionParameter(
  123. name="abs_mean_lt",
  124. value_type=ValueTypeEnum.FLOAT64
  125. ),
  126. ConditionParameter(
  127. name="max_lt",
  128. value_type=ValueTypeEnum.FLOAT64
  129. ),
  130. ConditionParameter(
  131. name="min_lt",
  132. value_type=ValueTypeEnum.FLOAT64
  133. ),
  134. ConditionParameter(
  135. name="mean_lt",
  136. value_type=ValueTypeEnum.FLOAT64
  137. )
  138. ],
  139. supported_target_type=TargetTypeEnum.GRADIENT,
  140. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  141. minimum_debugger_capability=(1, 1)
  142. ),
  143. Condition(
  144. condition_id="gradient_too_large",
  145. abbr="GL",
  146. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_large
  147. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  148. parameters=[
  149. ConditionParameter(
  150. name="abs_mean_gt",
  151. value_type=ValueTypeEnum.FLOAT64
  152. ),
  153. ConditionParameter(
  154. name="max_gt",
  155. value_type=ValueTypeEnum.FLOAT64
  156. ),
  157. ConditionParameter(
  158. name="min_gt",
  159. value_type=ValueTypeEnum.FLOAT64
  160. ),
  161. ConditionParameter(
  162. name="mean_gt",
  163. value_type=ValueTypeEnum.FLOAT64
  164. )
  165. ],
  166. supported_target_type=TargetTypeEnum.GRADIENT,
  167. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  168. minimum_debugger_capability=(1, 1)
  169. ),
  170. Condition(
  171. condition_id="gradient_exploding",
  172. abbr="GE",
  173. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_general_overflow
  174. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  175. parameters=[],
  176. supported_target_type=TargetTypeEnum.GRADIENT,
  177. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  178. minimum_debugger_capability=(1, 1)
  179. ),
  180. Condition(
  181. condition_id="tensor_overflow",
  182. abbr="TO",
  183. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_general_overflow
  184. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  185. parameters=[],
  186. supported_target_type=TargetTypeEnum.TENSOR,
  187. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  188. minimum_debugger_capability=(1, 1)
  189. ),
  190. Condition(
  191. condition_id="operator_overflow",
  192. abbr="OO",
  193. # Send this condition to MindSpore will use WatchCondition.Condition.overflow
  194. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  195. parameters=[],
  196. supported_target_type=TargetTypeEnum.TENSOR,
  197. supported_platforms=(PlatformEnum.ASCEND,),
  198. minimum_debugger_capability=(1, 1)
  199. ),
  200. Condition(
  201. condition_id="nan",
  202. abbr="NAN",
  203. # Send this condition to MindSpore will use WatchCondition.Condition.nan
  204. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  205. parameters=[],
  206. supported_target_type=TargetTypeEnum.TENSOR,
  207. supported_platforms=(PlatformEnum.GPU,),
  208. minimum_debugger_capability=(1, 0)
  209. ),
  210. Condition(
  211. condition_id="overflow",
  212. abbr="OVERFLOW",
  213. # Send this condition to MindSpore will use WatchCondition.Condition.overflow
  214. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  215. parameters=[],
  216. supported_target_type=TargetTypeEnum.TENSOR,
  217. supported_platforms=(PlatformEnum.ASCEND,),
  218. minimum_debugger_capability=(1, 0)
  219. ),
  220. Condition(
  221. condition_id="inf",
  222. abbr="INF",
  223. # Send this condition to MindSpore will use WatchCondition.Condition.inf
  224. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  225. parameters=[],
  226. supported_target_type=TargetTypeEnum.TENSOR,
  227. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  228. minimum_debugger_capability=(1, 0)
  229. ),
  230. Condition(
  231. condition_id="max_gt",
  232. abbr="MAX>",
  233. # Send this condition to MindSpore will use WatchCondition.Condition.max_gt
  234. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  235. parameters=[
  236. ConditionParameter(
  237. name="param",
  238. value_type=ValueTypeEnum.FLOAT64
  239. )
  240. ],
  241. supported_target_type=TargetTypeEnum.TENSOR,
  242. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  243. minimum_debugger_capability=(1, 0)
  244. ),
  245. Condition(
  246. condition_id="max_lt",
  247. abbr="MAX<",
  248. # Send this condition to MindSpore will use WatchCondition.Condition.max_lt
  249. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  250. parameters=[
  251. ConditionParameter(
  252. name="param",
  253. value_type=ValueTypeEnum.FLOAT64
  254. )
  255. ],
  256. supported_target_type=TargetTypeEnum.TENSOR,
  257. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  258. minimum_debugger_capability=(1, 0)
  259. ),
  260. Condition(
  261. condition_id="min_gt",
  262. abbr="MIN>",
  263. # Send this condition to MindSpore will use WatchCondition.Condition.min_gt
  264. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  265. parameters=[
  266. ConditionParameter(
  267. name="param",
  268. value_type=ValueTypeEnum.FLOAT64
  269. )
  270. ],
  271. supported_target_type=TargetTypeEnum.TENSOR,
  272. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  273. minimum_debugger_capability=(1, 0)
  274. ),
  275. Condition(
  276. condition_id="min_lt",
  277. abbr="MIN<",
  278. # Send this condition to MindSpore will use WatchCondition.Condition.min_lt
  279. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  280. parameters=[
  281. ConditionParameter(
  282. name="param",
  283. value_type=ValueTypeEnum.FLOAT64
  284. )
  285. ],
  286. supported_target_type=TargetTypeEnum.TENSOR,
  287. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  288. minimum_debugger_capability=(1, 0)
  289. ),
  290. Condition(
  291. condition_id="max_min_gt",
  292. abbr="MAX-MIN>",
  293. # Send this condition to MindSpore will use WatchCondition.Condition.max_min_gt
  294. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  295. parameters=[
  296. ConditionParameter(
  297. name="param",
  298. value_type=ValueTypeEnum.FLOAT64
  299. )
  300. ],
  301. supported_target_type=TargetTypeEnum.TENSOR,
  302. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  303. minimum_debugger_capability=(1, 0)
  304. ),
  305. Condition(
  306. condition_id="max_min_lt",
  307. abbr="MAX-Min<",
  308. # Send this condition to MindSpore will use WatchCondition.Condition.max_min_lt
  309. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  310. parameters=[
  311. ConditionParameter(
  312. name="param",
  313. value_type=ValueTypeEnum.FLOAT64
  314. )
  315. ],
  316. supported_target_type=TargetTypeEnum.TENSOR,
  317. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  318. minimum_debugger_capability=(1, 0)
  319. ),
  320. Condition(
  321. condition_id="mean_gt",
  322. abbr="MEAN>",
  323. # Send this condition to MindSpore will use WatchCondition.Condition.mean_gt
  324. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  325. parameters=[
  326. ConditionParameter(
  327. name="param",
  328. value_type=ValueTypeEnum.FLOAT64
  329. )
  330. ],
  331. supported_target_type=TargetTypeEnum.TENSOR,
  332. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  333. minimum_debugger_capability=(1, 0)
  334. ),
  335. Condition(
  336. condition_id="mean_lt",
  337. abbr="MEAN<",
  338. # Send this condition to MindSpore will use WatchCondition.Condition.mean_lt
  339. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  340. parameters=[
  341. ConditionParameter(
  342. name="param",
  343. value_type=ValueTypeEnum.FLOAT64
  344. )
  345. ],
  346. supported_target_type=TargetTypeEnum.TENSOR,
  347. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  348. minimum_debugger_capability=(1, 0)
  349. ),
  350. Condition(
  351. condition_id="tensor_initialization",
  352. abbr="TI",
  353. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_initialization
  354. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  355. parameters=[
  356. ConditionParameter(
  357. name="zero_percentage_ge",
  358. value_type=ValueTypeEnum.FLOAT64,
  359. default_value=100
  360. ),
  361. ConditionParameter(
  362. name="max_gt",
  363. value_type=ValueTypeEnum.FLOAT64
  364. ),
  365. ConditionParameter(
  366. name="min_lt",
  367. value_type=ValueTypeEnum.FLOAT64
  368. )
  369. ],
  370. supported_target_type=TargetTypeEnum.TENSOR,
  371. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  372. minimum_debugger_capability=(1, 1),
  373. available_test_func=check_initialization_available
  374. ),
  375. Condition(
  376. condition_id="tensor_too_large",
  377. abbr="TL",
  378. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_large
  379. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  380. parameters=[
  381. ConditionParameter(
  382. name="abs_mean_gt",
  383. value_type=ValueTypeEnum.FLOAT64
  384. ),
  385. ConditionParameter(
  386. name="max_gt",
  387. value_type=ValueTypeEnum.FLOAT64
  388. ),
  389. ConditionParameter(
  390. name="min_gt",
  391. value_type=ValueTypeEnum.FLOAT64
  392. ),
  393. ConditionParameter(
  394. name="mean_gt",
  395. value_type=ValueTypeEnum.FLOAT64
  396. )
  397. ],
  398. supported_target_type=TargetTypeEnum.TENSOR,
  399. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  400. minimum_debugger_capability=(1, 1)
  401. ),
  402. Condition(
  403. condition_id="tensor_too_small",
  404. abbr="TS",
  405. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_too_small
  406. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  407. parameters=[
  408. ConditionParameter(
  409. name="abs_mean_lt",
  410. value_type=ValueTypeEnum.FLOAT64
  411. ),
  412. ConditionParameter(
  413. name="max_lt",
  414. value_type=ValueTypeEnum.FLOAT64
  415. ),
  416. ConditionParameter(
  417. name="min_lt",
  418. value_type=ValueTypeEnum.FLOAT64
  419. ),
  420. ConditionParameter(
  421. name="mean_lt",
  422. value_type=ValueTypeEnum.FLOAT64
  423. )
  424. ],
  425. supported_target_type=TargetTypeEnum.TENSOR,
  426. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  427. minimum_debugger_capability=(1, 1)
  428. ),
  429. Condition(
  430. condition_id="tensor_all_zero",
  431. abbr="TZ",
  432. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_all_zero
  433. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  434. parameters=[
  435. ConditionParameter(
  436. name="zero_percentage_ge",
  437. value_type=ValueTypeEnum.FLOAT64,
  438. default_value=100
  439. )
  440. ],
  441. supported_target_type=TargetTypeEnum.TENSOR,
  442. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  443. minimum_debugger_capability=(1, 1)
  444. ),
  445. Condition(
  446. condition_id="weight_not_changed",
  447. abbr="WNC",
  448. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_not_changed
  449. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  450. parameters=[
  451. ConditionParameter(
  452. name="rtol",
  453. value_type=ValueTypeEnum.FLOAT64,
  454. default_value=1e-5
  455. ),
  456. ConditionParameter(
  457. name="atol",
  458. value_type=ValueTypeEnum.FLOAT64,
  459. support_disable=False,
  460. default_value=1e-8,
  461. visible_on_ui=False
  462. ),
  463. ConditionParameter(
  464. name="equal_nan",
  465. value_type=ValueTypeEnum.BOOL,
  466. support_disable=False,
  467. default_value=False,
  468. visible_on_ui=False
  469. )
  470. ],
  471. supported_target_type=TargetTypeEnum.WEIGHT,
  472. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  473. minimum_debugger_capability=(1, 1)
  474. ),
  475. Condition(
  476. condition_id="weight_change_too_large",
  477. abbr="WCL",
  478. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_change_too_large
  479. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  480. parameters=[
  481. ConditionParameter(
  482. name="abs_update_ratio_mean_gt",
  483. value_type=ValueTypeEnum.FLOAT64,
  484. default_value=1e-1
  485. ),
  486. ConditionParameter(
  487. name="epsilon",
  488. value_type=ValueTypeEnum.FLOAT64,
  489. support_disable=False,
  490. default_value=1e-9,
  491. visible_on_ui=False
  492. )
  493. ],
  494. supported_target_type=TargetTypeEnum.WEIGHT,
  495. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  496. minimum_debugger_capability=(1, 1)
  497. ),
  498. Condition(
  499. condition_id="weight_change_too_small",
  500. abbr="WCS",
  501. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_change_too_small
  502. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  503. parameters=[
  504. ConditionParameter(
  505. name="abs_update_ratio_mean_lt",
  506. value_type=ValueTypeEnum.FLOAT64,
  507. default_value=1e-4
  508. ),
  509. ConditionParameter(
  510. name="epsilon",
  511. value_type=ValueTypeEnum.FLOAT64,
  512. support_disable=False,
  513. default_value=1e-9,
  514. visible_on_ui=False
  515. )
  516. ],
  517. supported_target_type=TargetTypeEnum.WEIGHT,
  518. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  519. minimum_debugger_capability=(1, 1)
  520. ),
  521. Condition(
  522. condition_id="tensor_change_too_large",
  523. abbr="TCL",
  524. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_change_too_large
  525. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  526. parameters=[
  527. ConditionParameter(
  528. name="abs_update_ratio_mean_gt",
  529. value_type=ValueTypeEnum.FLOAT64,
  530. default_value=1e-1
  531. ),
  532. ConditionParameter(
  533. name="epsilon",
  534. value_type=ValueTypeEnum.FLOAT64,
  535. support_disable=False,
  536. default_value=1e-9,
  537. visible_on_ui=False
  538. )
  539. ],
  540. supported_target_type=TargetTypeEnum.TENSOR,
  541. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  542. minimum_debugger_capability=(1, 1)
  543. ),
  544. Condition(
  545. condition_id="tensor_change_too_small",
  546. abbr="TCS",
  547. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_change_too_small
  548. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  549. parameters=[
  550. ConditionParameter(
  551. name="abs_update_ratio_mean_lt",
  552. value_type=ValueTypeEnum.FLOAT64,
  553. default_value=1e-4
  554. ),
  555. ConditionParameter(
  556. name="epsilon",
  557. value_type=ValueTypeEnum.FLOAT64,
  558. support_disable=False,
  559. default_value=1e-9,
  560. visible_on_ui=False
  561. )
  562. ],
  563. supported_target_type=TargetTypeEnum.TENSOR,
  564. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  565. minimum_debugger_capability=(1, 1)
  566. ),
  567. Condition(
  568. condition_id="tensor_not_changed",
  569. abbr="TNC",
  570. # Send this condition to MindSpore will use WatchCondition.Condition.tensor_not_changed
  571. optimize_phase=OptimizePhaseEnum.TENSOR_CHECK,
  572. parameters=[
  573. ConditionParameter(
  574. name="rtol",
  575. value_type=ValueTypeEnum.FLOAT64,
  576. default_value=1e-5
  577. ),
  578. ConditionParameter(
  579. name="atol",
  580. value_type=ValueTypeEnum.FLOAT64,
  581. support_disable=False,
  582. default_value=1e-8,
  583. visible_on_ui=False
  584. ),
  585. ConditionParameter(
  586. name="equal_nan",
  587. value_type=ValueTypeEnum.BOOL,
  588. support_disable=False,
  589. default_value=False,
  590. visible_on_ui=False
  591. )
  592. ],
  593. supported_target_type=TargetTypeEnum.TENSOR,
  594. supported_platforms=(PlatformEnum.ASCEND, PlatformEnum.GPU),
  595. minimum_debugger_capability=(1, 1)
  596. )
  597. ]