_Tíquete original http://projects.scipy.org/numpy/ticket/1803 em 2011-04-19 pelo usuário trac meawoppl, atribuído a desconhecido._
a = zeros ((300000, 1000))
f = aberto ("test.pkl", "w")
SystemError Traceback (última chamada mais recente)
/ home / kddcup / code / matt / svd-projection / take5 /
SystemError: retorno de erro sem conjunto de exceção
Ou usando a função .dump:
SystemError Traceback (última chamada mais recente)
/ home / kddcup / code / matt / svd-projection / take5 /
SystemError: resultado NULL sem erro em PyObject_Call
Não tenho certeza se esta é uma falha numpy ou Pickle / cPickle. Em qualquer dos casos, uma mensagem de erro mais instrutiva certamente ajudaria. Acho que o problema só acontece com matrizes maiores que 2 ** (32-1) bytes, mas eu teria que experimentar mais para ter certeza.
Eu também estou enfrentando esse problema.
@zhlsk não tentou mais ou investigou se há uma correção no python, mas acho que isso não é um problema, mas sim um python, pois: cPickle.dump(a.tostring(), f)
também falha para mim da mesma forma e isso é apenas um grande string então e não tem nada a ver com numpy. Usar as funções do numpy save não deve ter esse tipo de problema.
@seberg Obrigado pela sua resposta. Você está certo. É um problema de python: http://bugs.python.org/issue11564
Em princípio, provavelmente poderíamos contornar o bug de qualquer maneira passando grandes
matrizes para o selecionador como uma série de objetos, cada um deles se encaixando no
limites e reconstruir a matriz no tempo de remoção. Soa como o
o limite está no tamanho de uma única matriz de bytes.
Em 14 de dezembro de 2012, às 22h11, "zhlsk" [email protected] escreveu:
@seberg https://github.com/seberg Obrigado pela sua resposta. Você está certo.
É um problema de python: http://bugs.python.org/issue11564-
Responda a este e-mail diretamente ou visualize-o em Gi tHubhttps: //github.com/numpy/numpy/issues/2396#issuecomment -11394338.
Algum progresso nisso? Parece que numpy.save
e numpy.savetxt
são afetados por este problema. Alguma solução alternativa?
É um bug no Python, a correção é atualizar para uma versão mais recente (corrigida no Python 3.3) e a solução alternativa é separar seu array em partes menores ou usar algum outro formato de arquivo que não seja o pickles do Python.
np.savetxt não é afetado por isso, e np.save é afetado apenas para matrizes de objetos.
Fechando.
Estou recebendo isso ao tentar cPickle uma matriz esparsa 11.314 x 8.463.980.778 com 352.451.719 elementos armazenados no formato scipy.sparse.csr_matrix. Versão do Python: Python 2.7.10 | Anaconda 2.3.0 (x86_64) | (padrão, 28 de maio de 2015, 17:04:42)