我依赖于一个开源库,Detectron,它在SciPy中初始化压缩的稀疏行(CSR)矩阵,形状为(0,N),like so(链接到GitHu repo中的相关行): / p>
entry['gt_overlaps'] = scipy.sparse.csr_matrix(
np.empty((0, self.num_classes),
dtype=np.float32))
然而,我可用的SciPy版本(0.12.1)不支持此(0,N)形状,并给出ValueError:
文件 “/mnt/nfs/work1/elm/arunirc/Tools/detectron/lib/datasets/json_dataset.py” 第150行,在_prep_roidb_entry中 np.empty((0,self.num_classes),dtype = np.float32)文件“/usr/lib64/python2.7/site-packages/scipy/sparse/compressed.py”,行 66,在 init 中 self._set_self(self。 class (coo_matrix(arg1,dtype = dtype)))文件“/usr/lib64/python2.7/site-packages/scipy/sparse/coo.py”,行 184,在 init 中 self.shape = M.shape文件“/usr/lib64/python2.7/site-packages/scipy/sparse/base.py”,第74行,in set_shape 提高ValueError('无效形状')ValueError:无效形状
是否有任何版本的SciPy确实支持创建此类CSR阵列?谢谢!
答案 0 :(得分:0)
最新情况还可以:
In [286]: scipy.sparse.csr_matrix(
...: np.empty((0, 3),
...: dtype=np.float32))
...:
Out[286]:
<0x3 sparse matrix of type '<class 'numpy.float32'>'
with 0 stored elements in Compressed Sparse Row format>
In [287]: scipy.__version__
Out[287]: '1.0.0'
它不是一个非常有用的形状,但我无法想到它为什么会无效的概念性原因。