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.

test_gather_op.py 40 kB

5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939
  1. # Copyright 2019 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. import numpy as np
  16. import pytest
  17. import mindspore.context as context
  18. import mindspore.nn as nn
  19. from mindspore import Tensor
  20. from mindspore.ops import operations as P
  21. class GatherNet(nn.Cell):
  22. def __init__(self):
  23. super(GatherNet, self).__init__()
  24. self.gather = P.GatherV2()
  25. def construct(self, x, indices):
  26. return self.gather(x, indices, 1)
  27. @pytest.mark.level0
  28. @pytest.mark.platform_x86_gpu_training
  29. @pytest.mark.env_onecard
  30. def test_gather0():
  31. x = Tensor(np.arange(2 * 3 * 4 * 5, dtype=np.float32).reshape(2, 3, 4, 5))
  32. indices = Tensor(np.ones((2, 2, 4, 5), dtype='i4'))
  33. expect = np.array([[[[[[[20., 21., 22., 23., 24.],
  34. [25., 26., 27., 28., 29.],
  35. [30., 31., 32., 33., 34.],
  36. [35., 36., 37., 38., 39.]],
  37. [[20., 21., 22., 23., 24.],
  38. [25., 26., 27., 28., 29.],
  39. [30., 31., 32., 33., 34.],
  40. [35., 36., 37., 38., 39.]],
  41. [[20., 21., 22., 23., 24.],
  42. [25., 26., 27., 28., 29.],
  43. [30., 31., 32., 33., 34.],
  44. [35., 36., 37., 38., 39.]],
  45. [[20., 21., 22., 23., 24.],
  46. [25., 26., 27., 28., 29.],
  47. [30., 31., 32., 33., 34.],
  48. [35., 36., 37., 38., 39.]],
  49. [[20., 21., 22., 23., 24.],
  50. [25., 26., 27., 28., 29.],
  51. [30., 31., 32., 33., 34.],
  52. [35., 36., 37., 38., 39.]]],
  53. [[[20., 21., 22., 23., 24.],
  54. [25., 26., 27., 28., 29.],
  55. [30., 31., 32., 33., 34.],
  56. [35., 36., 37., 38., 39.]],
  57. [[20., 21., 22., 23., 24.],
  58. [25., 26., 27., 28., 29.],
  59. [30., 31., 32., 33., 34.],
  60. [35., 36., 37., 38., 39.]],
  61. [[20., 21., 22., 23., 24.],
  62. [25., 26., 27., 28., 29.],
  63. [30., 31., 32., 33., 34.],
  64. [35., 36., 37., 38., 39.]],
  65. [[20., 21., 22., 23., 24.],
  66. [25., 26., 27., 28., 29.],
  67. [30., 31., 32., 33., 34.],
  68. [35., 36., 37., 38., 39.]],
  69. [[20., 21., 22., 23., 24.],
  70. [25., 26., 27., 28., 29.],
  71. [30., 31., 32., 33., 34.],
  72. [35., 36., 37., 38., 39.]]],
  73. [[[20., 21., 22., 23., 24.],
  74. [25., 26., 27., 28., 29.],
  75. [30., 31., 32., 33., 34.],
  76. [35., 36., 37., 38., 39.]],
  77. [[20., 21., 22., 23., 24.],
  78. [25., 26., 27., 28., 29.],
  79. [30., 31., 32., 33., 34.],
  80. [35., 36., 37., 38., 39.]],
  81. [[20., 21., 22., 23., 24.],
  82. [25., 26., 27., 28., 29.],
  83. [30., 31., 32., 33., 34.],
  84. [35., 36., 37., 38., 39.]],
  85. [[20., 21., 22., 23., 24.],
  86. [25., 26., 27., 28., 29.],
  87. [30., 31., 32., 33., 34.],
  88. [35., 36., 37., 38., 39.]],
  89. [[20., 21., 22., 23., 24.],
  90. [25., 26., 27., 28., 29.],
  91. [30., 31., 32., 33., 34.],
  92. [35., 36., 37., 38., 39.]]],
  93. [[[20., 21., 22., 23., 24.],
  94. [25., 26., 27., 28., 29.],
  95. [30., 31., 32., 33., 34.],
  96. [35., 36., 37., 38., 39.]],
  97. [[20., 21., 22., 23., 24.],
  98. [25., 26., 27., 28., 29.],
  99. [30., 31., 32., 33., 34.],
  100. [35., 36., 37., 38., 39.]],
  101. [[20., 21., 22., 23., 24.],
  102. [25., 26., 27., 28., 29.],
  103. [30., 31., 32., 33., 34.],
  104. [35., 36., 37., 38., 39.]],
  105. [[20., 21., 22., 23., 24.],
  106. [25., 26., 27., 28., 29.],
  107. [30., 31., 32., 33., 34.],
  108. [35., 36., 37., 38., 39.]],
  109. [[20., 21., 22., 23., 24.],
  110. [25., 26., 27., 28., 29.],
  111. [30., 31., 32., 33., 34.],
  112. [35., 36., 37., 38., 39.]]]],
  113. [[[[20., 21., 22., 23., 24.],
  114. [25., 26., 27., 28., 29.],
  115. [30., 31., 32., 33., 34.],
  116. [35., 36., 37., 38., 39.]],
  117. [[20., 21., 22., 23., 24.],
  118. [25., 26., 27., 28., 29.],
  119. [30., 31., 32., 33., 34.],
  120. [35., 36., 37., 38., 39.]],
  121. [[20., 21., 22., 23., 24.],
  122. [25., 26., 27., 28., 29.],
  123. [30., 31., 32., 33., 34.],
  124. [35., 36., 37., 38., 39.]],
  125. [[20., 21., 22., 23., 24.],
  126. [25., 26., 27., 28., 29.],
  127. [30., 31., 32., 33., 34.],
  128. [35., 36., 37., 38., 39.]],
  129. [[20., 21., 22., 23., 24.],
  130. [25., 26., 27., 28., 29.],
  131. [30., 31., 32., 33., 34.],
  132. [35., 36., 37., 38., 39.]]],
  133. [[[20., 21., 22., 23., 24.],
  134. [25., 26., 27., 28., 29.],
  135. [30., 31., 32., 33., 34.],
  136. [35., 36., 37., 38., 39.]],
  137. [[20., 21., 22., 23., 24.],
  138. [25., 26., 27., 28., 29.],
  139. [30., 31., 32., 33., 34.],
  140. [35., 36., 37., 38., 39.]],
  141. [[20., 21., 22., 23., 24.],
  142. [25., 26., 27., 28., 29.],
  143. [30., 31., 32., 33., 34.],
  144. [35., 36., 37., 38., 39.]],
  145. [[20., 21., 22., 23., 24.],
  146. [25., 26., 27., 28., 29.],
  147. [30., 31., 32., 33., 34.],
  148. [35., 36., 37., 38., 39.]],
  149. [[20., 21., 22., 23., 24.],
  150. [25., 26., 27., 28., 29.],
  151. [30., 31., 32., 33., 34.],
  152. [35., 36., 37., 38., 39.]]],
  153. [[[20., 21., 22., 23., 24.],
  154. [25., 26., 27., 28., 29.],
  155. [30., 31., 32., 33., 34.],
  156. [35., 36., 37., 38., 39.]],
  157. [[20., 21., 22., 23., 24.],
  158. [25., 26., 27., 28., 29.],
  159. [30., 31., 32., 33., 34.],
  160. [35., 36., 37., 38., 39.]],
  161. [[20., 21., 22., 23., 24.],
  162. [25., 26., 27., 28., 29.],
  163. [30., 31., 32., 33., 34.],
  164. [35., 36., 37., 38., 39.]],
  165. [[20., 21., 22., 23., 24.],
  166. [25., 26., 27., 28., 29.],
  167. [30., 31., 32., 33., 34.],
  168. [35., 36., 37., 38., 39.]],
  169. [[20., 21., 22., 23., 24.],
  170. [25., 26., 27., 28., 29.],
  171. [30., 31., 32., 33., 34.],
  172. [35., 36., 37., 38., 39.]]],
  173. [[[20., 21., 22., 23., 24.],
  174. [25., 26., 27., 28., 29.],
  175. [30., 31., 32., 33., 34.],
  176. [35., 36., 37., 38., 39.]],
  177. [[20., 21., 22., 23., 24.],
  178. [25., 26., 27., 28., 29.],
  179. [30., 31., 32., 33., 34.],
  180. [35., 36., 37., 38., 39.]],
  181. [[20., 21., 22., 23., 24.],
  182. [25., 26., 27., 28., 29.],
  183. [30., 31., 32., 33., 34.],
  184. [35., 36., 37., 38., 39.]],
  185. [[20., 21., 22., 23., 24.],
  186. [25., 26., 27., 28., 29.],
  187. [30., 31., 32., 33., 34.],
  188. [35., 36., 37., 38., 39.]],
  189. [[20., 21., 22., 23., 24.],
  190. [25., 26., 27., 28., 29.],
  191. [30., 31., 32., 33., 34.],
  192. [35., 36., 37., 38., 39.]]]]],
  193. [[[[[20., 21., 22., 23., 24.],
  194. [25., 26., 27., 28., 29.],
  195. [30., 31., 32., 33., 34.],
  196. [35., 36., 37., 38., 39.]],
  197. [[20., 21., 22., 23., 24.],
  198. [25., 26., 27., 28., 29.],
  199. [30., 31., 32., 33., 34.],
  200. [35., 36., 37., 38., 39.]],
  201. [[20., 21., 22., 23., 24.],
  202. [25., 26., 27., 28., 29.],
  203. [30., 31., 32., 33., 34.],
  204. [35., 36., 37., 38., 39.]],
  205. [[20., 21., 22., 23., 24.],
  206. [25., 26., 27., 28., 29.],
  207. [30., 31., 32., 33., 34.],
  208. [35., 36., 37., 38., 39.]],
  209. [[20., 21., 22., 23., 24.],
  210. [25., 26., 27., 28., 29.],
  211. [30., 31., 32., 33., 34.],
  212. [35., 36., 37., 38., 39.]]],
  213. [[[20., 21., 22., 23., 24.],
  214. [25., 26., 27., 28., 29.],
  215. [30., 31., 32., 33., 34.],
  216. [35., 36., 37., 38., 39.]],
  217. [[20., 21., 22., 23., 24.],
  218. [25., 26., 27., 28., 29.],
  219. [30., 31., 32., 33., 34.],
  220. [35., 36., 37., 38., 39.]],
  221. [[20., 21., 22., 23., 24.],
  222. [25., 26., 27., 28., 29.],
  223. [30., 31., 32., 33., 34.],
  224. [35., 36., 37., 38., 39.]],
  225. [[20., 21., 22., 23., 24.],
  226. [25., 26., 27., 28., 29.],
  227. [30., 31., 32., 33., 34.],
  228. [35., 36., 37., 38., 39.]],
  229. [[20., 21., 22., 23., 24.],
  230. [25., 26., 27., 28., 29.],
  231. [30., 31., 32., 33., 34.],
  232. [35., 36., 37., 38., 39.]]],
  233. [[[20., 21., 22., 23., 24.],
  234. [25., 26., 27., 28., 29.],
  235. [30., 31., 32., 33., 34.],
  236. [35., 36., 37., 38., 39.]],
  237. [[20., 21., 22., 23., 24.],
  238. [25., 26., 27., 28., 29.],
  239. [30., 31., 32., 33., 34.],
  240. [35., 36., 37., 38., 39.]],
  241. [[20., 21., 22., 23., 24.],
  242. [25., 26., 27., 28., 29.],
  243. [30., 31., 32., 33., 34.],
  244. [35., 36., 37., 38., 39.]],
  245. [[20., 21., 22., 23., 24.],
  246. [25., 26., 27., 28., 29.],
  247. [30., 31., 32., 33., 34.],
  248. [35., 36., 37., 38., 39.]],
  249. [[20., 21., 22., 23., 24.],
  250. [25., 26., 27., 28., 29.],
  251. [30., 31., 32., 33., 34.],
  252. [35., 36., 37., 38., 39.]]],
  253. [[[20., 21., 22., 23., 24.],
  254. [25., 26., 27., 28., 29.],
  255. [30., 31., 32., 33., 34.],
  256. [35., 36., 37., 38., 39.]],
  257. [[20., 21., 22., 23., 24.],
  258. [25., 26., 27., 28., 29.],
  259. [30., 31., 32., 33., 34.],
  260. [35., 36., 37., 38., 39.]],
  261. [[20., 21., 22., 23., 24.],
  262. [25., 26., 27., 28., 29.],
  263. [30., 31., 32., 33., 34.],
  264. [35., 36., 37., 38., 39.]],
  265. [[20., 21., 22., 23., 24.],
  266. [25., 26., 27., 28., 29.],
  267. [30., 31., 32., 33., 34.],
  268. [35., 36., 37., 38., 39.]],
  269. [[20., 21., 22., 23., 24.],
  270. [25., 26., 27., 28., 29.],
  271. [30., 31., 32., 33., 34.],
  272. [35., 36., 37., 38., 39.]]]],
  273. [[[[20., 21., 22., 23., 24.],
  274. [25., 26., 27., 28., 29.],
  275. [30., 31., 32., 33., 34.],
  276. [35., 36., 37., 38., 39.]],
  277. [[20., 21., 22., 23., 24.],
  278. [25., 26., 27., 28., 29.],
  279. [30., 31., 32., 33., 34.],
  280. [35., 36., 37., 38., 39.]],
  281. [[20., 21., 22., 23., 24.],
  282. [25., 26., 27., 28., 29.],
  283. [30., 31., 32., 33., 34.],
  284. [35., 36., 37., 38., 39.]],
  285. [[20., 21., 22., 23., 24.],
  286. [25., 26., 27., 28., 29.],
  287. [30., 31., 32., 33., 34.],
  288. [35., 36., 37., 38., 39.]],
  289. [[20., 21., 22., 23., 24.],
  290. [25., 26., 27., 28., 29.],
  291. [30., 31., 32., 33., 34.],
  292. [35., 36., 37., 38., 39.]]],
  293. [[[20., 21., 22., 23., 24.],
  294. [25., 26., 27., 28., 29.],
  295. [30., 31., 32., 33., 34.],
  296. [35., 36., 37., 38., 39.]],
  297. [[20., 21., 22., 23., 24.],
  298. [25., 26., 27., 28., 29.],
  299. [30., 31., 32., 33., 34.],
  300. [35., 36., 37., 38., 39.]],
  301. [[20., 21., 22., 23., 24.],
  302. [25., 26., 27., 28., 29.],
  303. [30., 31., 32., 33., 34.],
  304. [35., 36., 37., 38., 39.]],
  305. [[20., 21., 22., 23., 24.],
  306. [25., 26., 27., 28., 29.],
  307. [30., 31., 32., 33., 34.],
  308. [35., 36., 37., 38., 39.]],
  309. [[20., 21., 22., 23., 24.],
  310. [25., 26., 27., 28., 29.],
  311. [30., 31., 32., 33., 34.],
  312. [35., 36., 37., 38., 39.]]],
  313. [[[20., 21., 22., 23., 24.],
  314. [25., 26., 27., 28., 29.],
  315. [30., 31., 32., 33., 34.],
  316. [35., 36., 37., 38., 39.]],
  317. [[20., 21., 22., 23., 24.],
  318. [25., 26., 27., 28., 29.],
  319. [30., 31., 32., 33., 34.],
  320. [35., 36., 37., 38., 39.]],
  321. [[20., 21., 22., 23., 24.],
  322. [25., 26., 27., 28., 29.],
  323. [30., 31., 32., 33., 34.],
  324. [35., 36., 37., 38., 39.]],
  325. [[20., 21., 22., 23., 24.],
  326. [25., 26., 27., 28., 29.],
  327. [30., 31., 32., 33., 34.],
  328. [35., 36., 37., 38., 39.]],
  329. [[20., 21., 22., 23., 24.],
  330. [25., 26., 27., 28., 29.],
  331. [30., 31., 32., 33., 34.],
  332. [35., 36., 37., 38., 39.]]],
  333. [[[20., 21., 22., 23., 24.],
  334. [25., 26., 27., 28., 29.],
  335. [30., 31., 32., 33., 34.],
  336. [35., 36., 37., 38., 39.]],
  337. [[20., 21., 22., 23., 24.],
  338. [25., 26., 27., 28., 29.],
  339. [30., 31., 32., 33., 34.],
  340. [35., 36., 37., 38., 39.]],
  341. [[20., 21., 22., 23., 24.],
  342. [25., 26., 27., 28., 29.],
  343. [30., 31., 32., 33., 34.],
  344. [35., 36., 37., 38., 39.]],
  345. [[20., 21., 22., 23., 24.],
  346. [25., 26., 27., 28., 29.],
  347. [30., 31., 32., 33., 34.],
  348. [35., 36., 37., 38., 39.]],
  349. [[20., 21., 22., 23., 24.],
  350. [25., 26., 27., 28., 29.],
  351. [30., 31., 32., 33., 34.],
  352. [35., 36., 37., 38., 39.]]]]]],
  353. [[[[[[80., 81., 82., 83., 84.],
  354. [85., 86., 87., 88., 89.],
  355. [90., 91., 92., 93., 94.],
  356. [95., 96., 97., 98., 99.]],
  357. [[80., 81., 82., 83., 84.],
  358. [85., 86., 87., 88., 89.],
  359. [90., 91., 92., 93., 94.],
  360. [95., 96., 97., 98., 99.]],
  361. [[80., 81., 82., 83., 84.],
  362. [85., 86., 87., 88., 89.],
  363. [90., 91., 92., 93., 94.],
  364. [95., 96., 97., 98., 99.]],
  365. [[80., 81., 82., 83., 84.],
  366. [85., 86., 87., 88., 89.],
  367. [90., 91., 92., 93., 94.],
  368. [95., 96., 97., 98., 99.]],
  369. [[80., 81., 82., 83., 84.],
  370. [85., 86., 87., 88., 89.],
  371. [90., 91., 92., 93., 94.],
  372. [95., 96., 97., 98., 99.]]],
  373. [[[80., 81., 82., 83., 84.],
  374. [85., 86., 87., 88., 89.],
  375. [90., 91., 92., 93., 94.],
  376. [95., 96., 97., 98., 99.]],
  377. [[80., 81., 82., 83., 84.],
  378. [85., 86., 87., 88., 89.],
  379. [90., 91., 92., 93., 94.],
  380. [95., 96., 97., 98., 99.]],
  381. [[80., 81., 82., 83., 84.],
  382. [85., 86., 87., 88., 89.],
  383. [90., 91., 92., 93., 94.],
  384. [95., 96., 97., 98., 99.]],
  385. [[80., 81., 82., 83., 84.],
  386. [85., 86., 87., 88., 89.],
  387. [90., 91., 92., 93., 94.],
  388. [95., 96., 97., 98., 99.]],
  389. [[80., 81., 82., 83., 84.],
  390. [85., 86., 87., 88., 89.],
  391. [90., 91., 92., 93., 94.],
  392. [95., 96., 97., 98., 99.]]],
  393. [[[80., 81., 82., 83., 84.],
  394. [85., 86., 87., 88., 89.],
  395. [90., 91., 92., 93., 94.],
  396. [95., 96., 97., 98., 99.]],
  397. [[80., 81., 82., 83., 84.],
  398. [85., 86., 87., 88., 89.],
  399. [90., 91., 92., 93., 94.],
  400. [95., 96., 97., 98., 99.]],
  401. [[80., 81., 82., 83., 84.],
  402. [85., 86., 87., 88., 89.],
  403. [90., 91., 92., 93., 94.],
  404. [95., 96., 97., 98., 99.]],
  405. [[80., 81., 82., 83., 84.],
  406. [85., 86., 87., 88., 89.],
  407. [90., 91., 92., 93., 94.],
  408. [95., 96., 97., 98., 99.]],
  409. [[80., 81., 82., 83., 84.],
  410. [85., 86., 87., 88., 89.],
  411. [90., 91., 92., 93., 94.],
  412. [95., 96., 97., 98., 99.]]],
  413. [[[80., 81., 82., 83., 84.],
  414. [85., 86., 87., 88., 89.],
  415. [90., 91., 92., 93., 94.],
  416. [95., 96., 97., 98., 99.]],
  417. [[80., 81., 82., 83., 84.],
  418. [85., 86., 87., 88., 89.],
  419. [90., 91., 92., 93., 94.],
  420. [95., 96., 97., 98., 99.]],
  421. [[80., 81., 82., 83., 84.],
  422. [85., 86., 87., 88., 89.],
  423. [90., 91., 92., 93., 94.],
  424. [95., 96., 97., 98., 99.]],
  425. [[80., 81., 82., 83., 84.],
  426. [85., 86., 87., 88., 89.],
  427. [90., 91., 92., 93., 94.],
  428. [95., 96., 97., 98., 99.]],
  429. [[80., 81., 82., 83., 84.],
  430. [85., 86., 87., 88., 89.],
  431. [90., 91., 92., 93., 94.],
  432. [95., 96., 97., 98., 99.]]]],
  433. [[[[80., 81., 82., 83., 84.],
  434. [85., 86., 87., 88., 89.],
  435. [90., 91., 92., 93., 94.],
  436. [95., 96., 97., 98., 99.]],
  437. [[80., 81., 82., 83., 84.],
  438. [85., 86., 87., 88., 89.],
  439. [90., 91., 92., 93., 94.],
  440. [95., 96., 97., 98., 99.]],
  441. [[80., 81., 82., 83., 84.],
  442. [85., 86., 87., 88., 89.],
  443. [90., 91., 92., 93., 94.],
  444. [95., 96., 97., 98., 99.]],
  445. [[80., 81., 82., 83., 84.],
  446. [85., 86., 87., 88., 89.],
  447. [90., 91., 92., 93., 94.],
  448. [95., 96., 97., 98., 99.]],
  449. [[80., 81., 82., 83., 84.],
  450. [85., 86., 87., 88., 89.],
  451. [90., 91., 92., 93., 94.],
  452. [95., 96., 97., 98., 99.]]],
  453. [[[80., 81., 82., 83., 84.],
  454. [85., 86., 87., 88., 89.],
  455. [90., 91., 92., 93., 94.],
  456. [95., 96., 97., 98., 99.]],
  457. [[80., 81., 82., 83., 84.],
  458. [85., 86., 87., 88., 89.],
  459. [90., 91., 92., 93., 94.],
  460. [95., 96., 97., 98., 99.]],
  461. [[80., 81., 82., 83., 84.],
  462. [85., 86., 87., 88., 89.],
  463. [90., 91., 92., 93., 94.],
  464. [95., 96., 97., 98., 99.]],
  465. [[80., 81., 82., 83., 84.],
  466. [85., 86., 87., 88., 89.],
  467. [90., 91., 92., 93., 94.],
  468. [95., 96., 97., 98., 99.]],
  469. [[80., 81., 82., 83., 84.],
  470. [85., 86., 87., 88., 89.],
  471. [90., 91., 92., 93., 94.],
  472. [95., 96., 97., 98., 99.]]],
  473. [[[80., 81., 82., 83., 84.],
  474. [85., 86., 87., 88., 89.],
  475. [90., 91., 92., 93., 94.],
  476. [95., 96., 97., 98., 99.]],
  477. [[80., 81., 82., 83., 84.],
  478. [85., 86., 87., 88., 89.],
  479. [90., 91., 92., 93., 94.],
  480. [95., 96., 97., 98., 99.]],
  481. [[80., 81., 82., 83., 84.],
  482. [85., 86., 87., 88., 89.],
  483. [90., 91., 92., 93., 94.],
  484. [95., 96., 97., 98., 99.]],
  485. [[80., 81., 82., 83., 84.],
  486. [85., 86., 87., 88., 89.],
  487. [90., 91., 92., 93., 94.],
  488. [95., 96., 97., 98., 99.]],
  489. [[80., 81., 82., 83., 84.],
  490. [85., 86., 87., 88., 89.],
  491. [90., 91., 92., 93., 94.],
  492. [95., 96., 97., 98., 99.]]],
  493. [[[80., 81., 82., 83., 84.],
  494. [85., 86., 87., 88., 89.],
  495. [90., 91., 92., 93., 94.],
  496. [95., 96., 97., 98., 99.]],
  497. [[80., 81., 82., 83., 84.],
  498. [85., 86., 87., 88., 89.],
  499. [90., 91., 92., 93., 94.],
  500. [95., 96., 97., 98., 99.]],
  501. [[80., 81., 82., 83., 84.],
  502. [85., 86., 87., 88., 89.],
  503. [90., 91., 92., 93., 94.],
  504. [95., 96., 97., 98., 99.]],
  505. [[80., 81., 82., 83., 84.],
  506. [85., 86., 87., 88., 89.],
  507. [90., 91., 92., 93., 94.],
  508. [95., 96., 97., 98., 99.]],
  509. [[80., 81., 82., 83., 84.],
  510. [85., 86., 87., 88., 89.],
  511. [90., 91., 92., 93., 94.],
  512. [95., 96., 97., 98., 99.]]]]],
  513. [[[[[80., 81., 82., 83., 84.],
  514. [85., 86., 87., 88., 89.],
  515. [90., 91., 92., 93., 94.],
  516. [95., 96., 97., 98., 99.]],
  517. [[80., 81., 82., 83., 84.],
  518. [85., 86., 87., 88., 89.],
  519. [90., 91., 92., 93., 94.],
  520. [95., 96., 97., 98., 99.]],
  521. [[80., 81., 82., 83., 84.],
  522. [85., 86., 87., 88., 89.],
  523. [90., 91., 92., 93., 94.],
  524. [95., 96., 97., 98., 99.]],
  525. [[80., 81., 82., 83., 84.],
  526. [85., 86., 87., 88., 89.],
  527. [90., 91., 92., 93., 94.],
  528. [95., 96., 97., 98., 99.]],
  529. [[80., 81., 82., 83., 84.],
  530. [85., 86., 87., 88., 89.],
  531. [90., 91., 92., 93., 94.],
  532. [95., 96., 97., 98., 99.]]],
  533. [[[80., 81., 82., 83., 84.],
  534. [85., 86., 87., 88., 89.],
  535. [90., 91., 92., 93., 94.],
  536. [95., 96., 97., 98., 99.]],
  537. [[80., 81., 82., 83., 84.],
  538. [85., 86., 87., 88., 89.],
  539. [90., 91., 92., 93., 94.],
  540. [95., 96., 97., 98., 99.]],
  541. [[80., 81., 82., 83., 84.],
  542. [85., 86., 87., 88., 89.],
  543. [90., 91., 92., 93., 94.],
  544. [95., 96., 97., 98., 99.]],
  545. [[80., 81., 82., 83., 84.],
  546. [85., 86., 87., 88., 89.],
  547. [90., 91., 92., 93., 94.],
  548. [95., 96., 97., 98., 99.]],
  549. [[80., 81., 82., 83., 84.],
  550. [85., 86., 87., 88., 89.],
  551. [90., 91., 92., 93., 94.],
  552. [95., 96., 97., 98., 99.]]],
  553. [[[80., 81., 82., 83., 84.],
  554. [85., 86., 87., 88., 89.],
  555. [90., 91., 92., 93., 94.],
  556. [95., 96., 97., 98., 99.]],
  557. [[80., 81., 82., 83., 84.],
  558. [85., 86., 87., 88., 89.],
  559. [90., 91., 92., 93., 94.],
  560. [95., 96., 97., 98., 99.]],
  561. [[80., 81., 82., 83., 84.],
  562. [85., 86., 87., 88., 89.],
  563. [90., 91., 92., 93., 94.],
  564. [95., 96., 97., 98., 99.]],
  565. [[80., 81., 82., 83., 84.],
  566. [85., 86., 87., 88., 89.],
  567. [90., 91., 92., 93., 94.],
  568. [95., 96., 97., 98., 99.]],
  569. [[80., 81., 82., 83., 84.],
  570. [85., 86., 87., 88., 89.],
  571. [90., 91., 92., 93., 94.],
  572. [95., 96., 97., 98., 99.]]],
  573. [[[80., 81., 82., 83., 84.],
  574. [85., 86., 87., 88., 89.],
  575. [90., 91., 92., 93., 94.],
  576. [95., 96., 97., 98., 99.]],
  577. [[80., 81., 82., 83., 84.],
  578. [85., 86., 87., 88., 89.],
  579. [90., 91., 92., 93., 94.],
  580. [95., 96., 97., 98., 99.]],
  581. [[80., 81., 82., 83., 84.],
  582. [85., 86., 87., 88., 89.],
  583. [90., 91., 92., 93., 94.],
  584. [95., 96., 97., 98., 99.]],
  585. [[80., 81., 82., 83., 84.],
  586. [85., 86., 87., 88., 89.],
  587. [90., 91., 92., 93., 94.],
  588. [95., 96., 97., 98., 99.]],
  589. [[80., 81., 82., 83., 84.],
  590. [85., 86., 87., 88., 89.],
  591. [90., 91., 92., 93., 94.],
  592. [95., 96., 97., 98., 99.]]]],
  593. [[[[80., 81., 82., 83., 84.],
  594. [85., 86., 87., 88., 89.],
  595. [90., 91., 92., 93., 94.],
  596. [95., 96., 97., 98., 99.]],
  597. [[80., 81., 82., 83., 84.],
  598. [85., 86., 87., 88., 89.],
  599. [90., 91., 92., 93., 94.],
  600. [95., 96., 97., 98., 99.]],
  601. [[80., 81., 82., 83., 84.],
  602. [85., 86., 87., 88., 89.],
  603. [90., 91., 92., 93., 94.],
  604. [95., 96., 97., 98., 99.]],
  605. [[80., 81., 82., 83., 84.],
  606. [85., 86., 87., 88., 89.],
  607. [90., 91., 92., 93., 94.],
  608. [95., 96., 97., 98., 99.]],
  609. [[80., 81., 82., 83., 84.],
  610. [85., 86., 87., 88., 89.],
  611. [90., 91., 92., 93., 94.],
  612. [95., 96., 97., 98., 99.]]],
  613. [[[80., 81., 82., 83., 84.],
  614. [85., 86., 87., 88., 89.],
  615. [90., 91., 92., 93., 94.],
  616. [95., 96., 97., 98., 99.]],
  617. [[80., 81., 82., 83., 84.],
  618. [85., 86., 87., 88., 89.],
  619. [90., 91., 92., 93., 94.],
  620. [95., 96., 97., 98., 99.]],
  621. [[80., 81., 82., 83., 84.],
  622. [85., 86., 87., 88., 89.],
  623. [90., 91., 92., 93., 94.],
  624. [95., 96., 97., 98., 99.]],
  625. [[80., 81., 82., 83., 84.],
  626. [85., 86., 87., 88., 89.],
  627. [90., 91., 92., 93., 94.],
  628. [95., 96., 97., 98., 99.]],
  629. [[80., 81., 82., 83., 84.],
  630. [85., 86., 87., 88., 89.],
  631. [90., 91., 92., 93., 94.],
  632. [95., 96., 97., 98., 99.]]],
  633. [[[80., 81., 82., 83., 84.],
  634. [85., 86., 87., 88., 89.],
  635. [90., 91., 92., 93., 94.],
  636. [95., 96., 97., 98., 99.]],
  637. [[80., 81., 82., 83., 84.],
  638. [85., 86., 87., 88., 89.],
  639. [90., 91., 92., 93., 94.],
  640. [95., 96., 97., 98., 99.]],
  641. [[80., 81., 82., 83., 84.],
  642. [85., 86., 87., 88., 89.],
  643. [90., 91., 92., 93., 94.],
  644. [95., 96., 97., 98., 99.]],
  645. [[80., 81., 82., 83., 84.],
  646. [85., 86., 87., 88., 89.],
  647. [90., 91., 92., 93., 94.],
  648. [95., 96., 97., 98., 99.]],
  649. [[80., 81., 82., 83., 84.],
  650. [85., 86., 87., 88., 89.],
  651. [90., 91., 92., 93., 94.],
  652. [95., 96., 97., 98., 99.]]],
  653. [[[80., 81., 82., 83., 84.],
  654. [85., 86., 87., 88., 89.],
  655. [90., 91., 92., 93., 94.],
  656. [95., 96., 97., 98., 99.]],
  657. [[80., 81., 82., 83., 84.],
  658. [85., 86., 87., 88., 89.],
  659. [90., 91., 92., 93., 94.],
  660. [95., 96., 97., 98., 99.]],
  661. [[80., 81., 82., 83., 84.],
  662. [85., 86., 87., 88., 89.],
  663. [90., 91., 92., 93., 94.],
  664. [95., 96., 97., 98., 99.]],
  665. [[80., 81., 82., 83., 84.],
  666. [85., 86., 87., 88., 89.],
  667. [90., 91., 92., 93., 94.],
  668. [95., 96., 97., 98., 99.]],
  669. [[80., 81., 82., 83., 84.],
  670. [85., 86., 87., 88., 89.],
  671. [90., 91., 92., 93., 94.],
  672. [95., 96., 97., 98., 99.]]]]]]])
  673. context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
  674. gather = GatherNet()
  675. output = gather(x, indices)
  676. error = np.ones(shape=output.asnumpy().shape) * 1.0e-6
  677. diff = output.asnumpy() - expect
  678. assert np.all(diff < error)
  679. assert np.all(-diff < error)
  680. class GatherNet1(nn.Cell):
  681. def __init__(self):
  682. super(GatherNet1, self).__init__()
  683. self.gather = P.GatherV2()
  684. def construct(self, x, indices):
  685. return self.gather(x, indices, -1)
  686. @pytest.mark.level0
  687. @pytest.mark.platform_x86_gpu_training
  688. @pytest.mark.env_onecard
  689. def test_gather1():
  690. x = Tensor(np.arange(2 * 3 * 4 * 5, dtype=np.float32).reshape(2, 3, 4, 5))
  691. indices = Tensor(np.array([1, 3, 4], dtype='i4'))
  692. expect = np.array([[[[1., 3., 4.],
  693. [6., 8., 9.],
  694. [11., 13., 14.],
  695. [16., 18., 19.]],
  696. [[21., 23., 24.],
  697. [26., 28., 29.],
  698. [31., 33., 34.],
  699. [36., 38., 39.]],
  700. [[41., 43., 44.],
  701. [46., 48., 49.],
  702. [51., 53., 54.],
  703. [56., 58., 59.]]],
  704. [[[61., 63., 64.],
  705. [66., 68., 69.],
  706. [71., 73., 74.],
  707. [76., 78., 79.]],
  708. [[81., 83., 84.],
  709. [86., 88., 89.],
  710. [91., 93., 94.],
  711. [96., 98., 99.]],
  712. [[101., 103., 104.],
  713. [106., 108., 109.],
  714. [111., 113., 114.],
  715. [116., 118., 119.]]]])
  716. context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
  717. gather = GatherNet1()
  718. output = gather(x, indices)
  719. error = np.ones(shape=output.asnumpy().shape) * 1.0e-6
  720. diff = output.asnumpy() - expect
  721. assert np.all(diff < error)
  722. assert np.all(-diff < error)
  723. class GatherNet2(nn.Cell):
  724. def __init__(self):
  725. super(GatherNet2, self).__init__()
  726. self.gather = P.GatherV2()
  727. def construct(self, x, indices):
  728. return self.gather(x, indices, 0)
  729. @pytest.mark.level0
  730. @pytest.mark.platform_x86_gpu_training
  731. @pytest.mark.env_onecard
  732. def test_gather2():
  733. x = Tensor(np.array([[4., 5., 4., 1., 5.,],
  734. [4., 9., 5., 6., 4.,],
  735. [9., 8., 4., 3., 6.,],
  736. [0., 4., 2., 2., 8.,],
  737. [1., 8., 6., 2., 8.,],
  738. [8., 1., 9., 7., 3.,],
  739. [7., 9., 2., 5., 7.,],
  740. [9., 8., 6., 8., 5.,],
  741. [3., 7., 2., 7., 4.,],
  742. [4., 2., 8., 2., 9.,]]
  743. ).astype(np.float32))
  744. indices = Tensor(np.array([[4000, 1, 300000]]).astype(np.int32))
  745. expect = np.array([[[0., 0., 0., 0., 0.],
  746. [4., 9., 5., 6., 4.],
  747. [0., 0., 0., 0., 0.]]])
  748. context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
  749. gather = GatherNet2()
  750. output = gather(x, indices)
  751. error = np.ones(shape=output.asnumpy().shape) * 1.0e-6
  752. diff = output.asnumpy() - expect
  753. assert np.all(diff < error)
  754. assert np.all(-diff < error)