nGraph 'shell' implementation for GatherElements-6 and MO 'shell' implementation (#3467)

* Initial support of GatherElements in MO and nGraph

* apply_style

* added lost extractor for GatherElements

* Corrected GatherElements::validate_and_infer_types

* updated package_BOM.txt

* Type_t added

* started to implement ngraph shape_type_infer unit-tests

* finally implemented all ngraph shape_inference unit-tests

* updated Supported_Frameworks_Layers.md

* added correct handling of dynamic shapes in nGraph, added unit-tests for dynamic cases, fixed dump typos in MO, replaced axis type from int -> int64_t

* implemented shape infer for dynamic shapes with intervals

* finalized MO implementation

* applied comment from review

* style-apply

* spec correction

* removed conflict

* fixed typos

* removed obsolete comments form type_prop

* significant corrections in validate_and_infer_types

* style-apply

* data_rank check for axis
This commit is contained in:
Pavel Esir authored and GitHub committed 2020-12-21 15:45:15 +03:00
1 parent 935549035e
commit d2a23680f2
12 files changed
+772 -38

No files matched your search

@@ -338,6 +338,7 @@ Standard ONNX\* operators:
| Floor | No |
| GRU | No |
| Gather | No |
| GatherElements | Doesn't work with negative indices |
| GatherND | No |
| GatherTree | No |
| Gemm | No |
+38 -38
View File
@@ -20,53 +20,53 @@ For instance, in the 3D case (`r = 3`), the output is determined by the followin
```
Example 1 with concrete values:
```
data = [
[1, 2],
[3, 4],
]
indices = [
[0, 1],
[0, 0],
]
axis = 0
output = [
[1, 4],
[1, 2],
]
data = [
[1, 2],
[3, 4],
]
indices = [
[0, 1],
[0, 0],
]
axis = 0
output = [
[1, 4],
[1, 2],
]
```
Example 2 with `axis` = 1 and `indices` having greater (than `data`) shape:
```
data = [
[1, 7],
[4, 3],
]
indices = [
[1, 1, 0],
[1, 0, 1],
]
axis = 1
output = [
[7, 7, 1],
[3, 4, 3],
]
[1, 7],
[4, 3],
]
indices = [
[1, 1, 0],
[1, 0, 1],
]
axis = 1
output = [
[7, 7, 1],
[3, 4, 3],
]
```
Example 3 `indices` has lesser (than `data`) shape:
```
data = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
indices = [
[1, 0, 1],
[1, 2, 0],
]
axis = 0
output = [
[4, 2, 6],
[4, 8, 3],
]
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
indices = [
[1, 0, 1],
[1, 2, 0],
]
axis = 0
output = [
[4, 2, 6],
[4, 8, 3],
]
```
**Attributes**: