Есть ли максимальный размер, который может обрабатывать scipy.linalg.solve
(numpy.linalg.solve
)?Scipy.linalg.solve максимальный размер массива
Я работаю над переносом некоторой MatLab коде (некоторые Пуассоны изображения клонированию, который я не писал) в Python, и в Python У меня есть код:
print M.shape
print b.shape
x = scipy.linalg.solve(M,b)
который держит возвращение выхода (и ошибка):
(2550, 2550)
(2550, 1)
Traceback (most recent call last):
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\test_runner.py", line 19, in <module>
ibgFaceManipulator.main(testOut,pathName,ptsFile,subjectId,'2','0')
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\ibgFaceManipulator.py", line 70, in main
ManipulateFaceWrapper.main(outDir,subjectId,retry,attempts,listchoice,NewImageData,AllBlend,Patchizer)
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\ManipulateFaceWrapper.py", line 31, in main
ManipulateFace.main(outdir,newImageData,3,filename,patchizer,blendParam,eyeDistortionParams,mouthDistortionParams,[])
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\ManipulateFace.py", line 38, in main
FaceTex = PatchOverFaceWithSelectionPre.main(TexLib,FaceTex,OperationMaskNew,M,0)
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\PatchOverFaceWithSelectionPre.py", line 104, in main
tex = poissonImageCloneColor.main(tex,source_tex,imgProc.imerode(imMask,imgProc.strel('disk',1)))
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\poissonImageCloneColor.py", line 22, in main
imr = poissonImageClone.main(imir, imr,imMask)
File "D:\Other\WB_Lab\PythonPort\FaceManip\Code\poissonImageClone.py", line 81, in main
x = scipy.linalg.solve(np.squeeze(M),b)
File "C:\Python27\lib\site-packages\scipy\linalg\basic.py", line 78, in solve
raise ValueError('expected square matrix')
ValueError: expected square matrix
Но я точно знаю, что M является квадратным (размер). Оба M и b имеют тип dtype float64, а M - это отформатированная матрица csc.
С кем-либо видели подобные ошибки раньше?
Я нашел, что numpy.linalg.cond(M)
также терпит неудачу. На этот раз, говоря, что матрица M является 0-мерной (это та же ошибка numpy.linalg.solve
дает мне).
Можете ли вы напечатать 'тип' и' dtype' 'M' и показать полную трассировку? – user2357112
На самом деле, вы можете показать [пример минимального запуска, демонстрирующий ошибку при запуске] (http://stackoverflow.com/help/mcve)? – user2357112
Оба M и b имеют dtype float64, а M - это отформатированная матрица csc. Я буду работать над созданием минимального примерного примера, но, как и код, это может быть сложно. – wbest