* Doc Migration from Gitlab (#1289) * doc migration * fix * Update FakeQuantize_1.md * Update performance_benchmarks.md * Updates graphs for FPGA * Update performance_benchmarks.md * Change DL Workbench structure (#1) * Changed DL Workbench structure * Fixed tags * fixes * Update ie_docs.xml * Update performance_benchmarks_faq.md * Fixes in DL Workbench layout * Fixes for CVS-31290 * [DL Workbench] Minor correction * Fix for CVS-30955 * Added nGraph deprecation notice as requested by Zoe * fix broken links in api doxy layouts * CVS-31131 fixes * Additional fixes * Fixed POT TOC * Update PAC_Configure.md PAC DCP 1.2.1 install guide. * Update inference_engine_intro.md * fix broken link * Update opset.md * fix * added opset4 to layout * added new opsets to layout, set labels for them * Update VisionAcceleratorFPGA_Configure.md Updated from 2020.3 to 2020.4 Co-authored-by: domi2000 <domi2000@users.noreply.github.com>
3.2 KiB
ScatterUpdate
Versioned name: ScatterUpdate-3
Category: Data movement operations
Short description: ScatterUpdate creates a copy of the first input tensor with updated elements specified with second and third input tensors.
Detailed description: ScatterUpdate creates a copy of the first input tensor with updated elements in positions specified with indices input
and values specified with updates tensor starting from the dimension with index axis. For the data tensor of shape [d_0, d_1, ..., d_n],
indices tensor of shape [i_0, i_1, ..., i_k] and updates tensor of shape
[d_0, d_1, ... d_(axis - 1), i_0, i_1, ..., i_k, d_(axis + 1), ..., d_n] the operation computes
for each m, n, ..., p of the indices tensor indices:
data[..., indices[m, n, ..., p], ...] = updates[..., m, n, ..., p, ...]
where first ... in the data corresponds to first axis dimensions, last ... in the data corresponds to the
rank(data) - (axis + 1) dimensions.
Several examples for case when axis = 0:
indicesis a 0D tensor:data[indices, ...] = updates[...]indicesis a 1D tensor (for eachi):data[indices[i], ...] = updates[i, ...]indicesis a ND tensor (for eachi, ..., j):data[indices[i, ..., j], ...] = updates[i, ..., j, ...]
This operation is similar to TensorFlow* operation ScatterUpdate but allows scattering for the arbitrary axis.
Attributes: ScatterUpdate does not have attributes.
Inputs:
-
1:
datatensor of arbitrary rankrand of type T. Required. -
2:
indicestensor with indices of type T_IND. All index values are expected to be within bounds[0, s - 1]along axis of sizes. If multiple indices point to the same output location then the order of updating the values is undefined. If an index points to non-existing output tensor element or is negative then an exception is raised. Required. -
3:
updatestensor of type T. Required. -
4:
axistensor with scalar or 1D tensor with one element of type T_AXIS specifying axis for scatter. The value can be in range[-r, r - 1]whereris the rank ofdata. Required.
Outputs:
- 1: tensor with shape equal to
datatensor of the type T.
Types
-
T: any numeric type.
-
T_IND: any supported integer types.
-
T_AXIS: any supported integer types.
Example
<layer ... type="ScatterUpdate">
<input>
<port id="0">
<dim>1000</dim>
<dim>256</dim>
<dim>10</dim>
<dim>15</dim>
</port>
<port id="1">
<dim>125</dim>
<dim>20</dim>
</port>
<port id="2">
<dim>1000</dim>
<dim>125</dim>
<dim>20</dim>
<dim>10</dim>
<dim>15</dim>
</port>
<port id="3"> <!-- value [1] -->
<dim>1</dim>
</port>
</input>
<output>
<port id="4" precision="FP32">
<dim>1000</dim>
<dim>256</dim>
<dim>10</dim>
<dim>15</dim>
</port>
</output>
</layer>