Fix nonzero for scalars on cuda, to_sparse for scalars on cpu/cuda. (#17406)
authorGregory Chanan <gchanan@fb.com>
Mon, 25 Feb 2019 16:08:15 +0000 (08:08 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Mon, 25 Feb 2019 16:23:40 +0000 (08:23 -0800)
commit15a55b86ed7407467d799e058883521a5ab7e7a4
treeb777413e4ab735b8dee5340e5f6fa3e469df319e
parent65ecef1509b3e56a1c5e89f02119859bd2e6e514
Fix nonzero for scalars on cuda, to_sparse for scalars on cpu/cuda. (#17406)

Summary:
I originally set out to fix to_sparse for scalars, which had some overly restrictive checking (sparse_dim > 0, which is impossible for a scalar).

This fix uncovered an issue with nonzero: it didn't properly return a size (z, 0) tensor for an input scalar, where z is the number of nonzero elements (i.e. 0 or 1).
Pull Request resolved: https://github.com/pytorch/pytorch/pull/17406

Differential Revision: D14185393

Pulled By: gchanan

fbshipit-source-id: f37a6e1e3773fd9cbf69eeca7fdebb3caa192a19
aten/src/ATen/native/sparse/SparseTensor.cpp
aten/src/THC/generic/THCTensorMath.cu
test/test_sparse.py
test/test_torch.py