!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; using mindspore::parse::PyObjectWrapper;
EvalResultPtr StandardPrimEvaluator::EvalPrim(const AnalysisEnginePtr &engine, const AbstractBasePtrList &args) { 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); auto ret_abstract = AbstractEval(args);
if (ret_abstract != nullptr) { if (ret_abstract != nullptr) {
MS_LOG(DEBUG) << "StandardPrimEvaluator eval Undetermined"; 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. A sparse representation of a set of tensor slices at given indices.
An IndexedSlices is typically used to represent a subset of a larger 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 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 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. IndexedSlices can only be used in `Cell`'s contruct method.
Args: Args:
indices (Tensor): A 1-D integer Tensor of shape [D0]. indices (Tensor): A 1-D integer Tensor of shape [D0].
values (Tensor): A Tensor of any dtype of shape [D0, D1, ..., Dn]. 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. of the corresponding dense tensor.
Returns: Returns:
@ -254,6 +257,7 @@ class SparseTensor:
A sparse representation of a set of nonzero elememts from a tensor at given indices. 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. SparseTensor can only be used in `Cell`'s contruct method.
For a tensor dense, its SparseTensor(indices, values, dense_shape) has For a tensor dense, its SparseTensor(indices, values, dense_shape) has
`dense[indices[i]] = values[i]`. `dense[indices[i]] = values[i]`.
@ -263,7 +267,7 @@ class SparseTensor:
the SparseTensor, respectively. the SparseTensor, respectively.
values (Tensor): A 1-D tensor of any type and shape `[N]`, which values (Tensor): A 1-D tensor of any type and shape `[N]`, which
supplies the values for each element in indices. 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. which specifies the dense_shape of the sparse tensor.
Returns: Returns: