!3284 eager mode enable sparse

Merge pull request !3284 from riemann_penn/eager_mode_enable_sparse
This commit is contained in:
mindspore-ci-bot 2020-07-25 22:16:19 +08:00 committed by Gitee
commit ce6cc4a04e
2 changed files with 12 additions and 7 deletions

View File

@ -150,7 +150,8 @@ PrimitiveEvalImplMap &GetPrimitiveToEvalImplMap() {
using mindspore::parse::PyObjectWrapper;
EvalResultPtr StandardPrimEvaluator::EvalPrim(const AnalysisEnginePtr &engine, const AbstractBasePtrList &args) {
if (prim_ != prim::kPrimMakeTuple && prim_ != prim::kPrimSwitch) {
if (prim_ != prim::kPrimMakeTuple && prim_ != prim::kPrimSwitch && prim_ != prim::kPrimEnvSetItem &&
prim_ != prim::kPrimEnvGetItem) {
auto ret_abstract = AbstractEval(args);
if (ret_abstract != nullptr) {
MS_LOG(DEBUG) << "StandardPrimEvaluator eval Undetermined";

View File

@ -217,17 +217,20 @@ class IndexedSlices:
A sparse representation of a set of tensor slices at given indices.
An IndexedSlices is typically used to represent a subset of a larger
tensor dense of shape [LARGE0, D1, .. , DN] where LARGE0 >> D0.
tensor dense of shape [L0, D1, .. , DN] where L0 >> D0.
The values in indices are the indices in the first dimension of the slices
that have been extracted from the larger tensor.
that have been extracted from the larger tensor.
The dense tensor dense represented by an IndexedSlices slices has
`dense[slices.indices[i], :, :, :, ...] = slices.values[i, :, :, :, ...]`.
`dense[slices.indices[i], :, :, :, ...] = slices.values[i, :, :, :, ...]`.
IndexedSlices can only be used in `Cell`'s contruct method.
Args:
indices (Tensor): A 1-D integer Tensor of shape [D0].
values (Tensor): A Tensor of any dtype of shape [D0, D1, ..., Dn].
dense_shape: (tuple): A integer tuple containing the shape
dense_shape (tuple): A integer tuple containing the shape
of the corresponding dense tensor.
Returns:
@ -254,8 +257,9 @@ class SparseTensor:
A sparse representation of a set of nonzero elememts from a tensor at given indices.
SparseTensor can only be used in `Cell`'s contruct method.
For a tensor dense, its SparseTensor(indices, values, dense_shape) has
`dense[indices[i]] = values[i]`.
`dense[indices[i]] = values[i]`.
Args:
indices (Tensor): A 2-D integer Tensor of shape `[N, ndims]`,
@ -263,7 +267,7 @@ class SparseTensor:
the SparseTensor, respectively.
values (Tensor): A 1-D tensor of any type and shape `[N]`, which
supplies the values for each element in indices.
dense_shape: (tuple): A integer tuple of size `ndims`,
dense_shape (tuple): A integer tuple of size `ndims`,
which specifies the dense_shape of the sparse tensor.
Returns: