davidhallac / TVGL

53 stars 24 forks source link

'float' object cannot be interpreted as an index #1

Closed mikewin closed 7 years ago

mikewin commented 7 years ago

python exampleTVGL.py /mnt/work/tvgl/TVGL.py:4: SyntaxWarning: import only allowed at module level def TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty, verbose = False, eps = 3e-3, epsAbs = 1e-3, epsRel = 1e-3): /mnt/work/tvgl/TVGL.py:4: SyntaxWarning: import only allowed at module level def TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty, verbose = False, eps = 3e-3, epsAbs = 1e-3, epsRel = 1e-3): /mnt/work/tvgl/TVGL.py:4: SyntaxWarning: import only allowed at module level def TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty, verbose = False, eps = 3e-3, epsAbs = 1e-3, epsRel = 1e-3): /mnt/work/tvgl/TVGL.py:4: SyntaxWarning: import only allowed at module level def TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty, verbose = False, eps = 3e-3, epsAbs = 1e-3, epsRel = 1e-3): /mnt/work/tvgl/TVGL.py:4: SyntaxWarning: import * only allowed at module level def TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty, verbose = False, eps = 3e-3, epsAbs = 1e-3, epsRel = 1e-3): Use laplacian penalty function 3 lambda = 2.5, beta = 12 Distributed ADMM (1 processors) Iteration 1 Traceback (most recent call last): File "exampleTVGL.py", line 17, in thetaSet = tvgl.TVGL(data, lengthOfSlice, lamb, beta, indexOfPenalty = 3, verbose=True) File "/mnt/work/tvgl/TVGL.py", line 66, in TVGL gvx.Solve(EpsAbs=epsAbs, EpsRel=epsRel, Verbose = verbose) File "/mnt/work/tvgl/inferGraphLaplacian.py", line 147, in Solve Verbose) File "/mnt/work/tvgl/inferGraphLaplacian.py", line 437, in __SolveADMM pool.map(ADMM_x, node_list) File "/usr/lib/python2.7/multiprocessing/pool.py", line 251, in map return self.map_async(func, iterable, chunksize).get() File "/usr/lib/python2.7/multiprocessing/pool.py", line 558, in get raise self._value TypeError: 'float' object cannot be interpreted as an index

mikewin commented 7 years ago

know the reason: numpy.zeros(mat_shape) --> mat_shape content should be int type so, mat_shape = (int(numpymat.shape[1] * ( numpymat.shape[1]+1 )/2.0),)

davidhallac commented 7 years ago

Just fixed - thanks!