Skip to content

长度为 1 的 Tensor 无法用 bool 取值 #36940

@yt605155624

Description

@yt605155624
>>> import paddle
>>> y = paddle.to_tensor([1,2])
>>> temp = paddle.to_tensor([True,False])
>>> y[temp]
Tensor(shape=[1], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
       [1])
>>> y = paddle.to_tensor([1])
>>> temp = paddle.to_tensor([True])
>>> y[temp]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/yuantian01/yt_py37/lib/python3.7/site-packages/paddle/fluid/dygraph/varbase_patch_methods.py", line 594, in __getitem__
    return _getitem_impl_(self, item)
  File "/home/yuantian01/yt_py37/lib/python3.7/site-packages/paddle/fluid/variable_index.py", line 463, in _getitem_impl_
    attrs=attrs)
  File "/home/yuantian01/yt_py37/lib/python3.7/site-packages/paddle/fluid/framework.py", line 3249, in append_op
    kwargs.get("stop_gradient", False))
  File "/home/yuantian01/yt_py37/lib/python3.7/site-packages/paddle/fluid/dygraph/tracer.py", line 45, in trace_op
    not stop_gradient)
ValueError: (InvalidArgument) The dtype of Tensor in list must be int32 or int64, but received: 0 (at /paddle/paddle/fluid/operators/utils.h:85)
  [operator < slice > error]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions