簡體   English   中英

當使用 sckit-image 分割並使用退出代碼 139(被信號 11:SIGSEGV 中斷)完成進程時,我該如何解決它

[英]When using sckit-image segmentation and get Process finished with exit code 139 (interrupted by signal 11: SIGSEGV), how do I resolve it

我將一個大數組(1143, 1252, 365) skimage.segmentation.slic (1143, 1252, 365)傳遞給skimage.segmentation.slic

它會殺死 jupyter notebook 內核,所以我被 pycharm 中的代碼困住了,我得到:

Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)

我試過數組(1143,1252, 100)並旋轉了 365 的所有數據,它工作正常。

我讀過這是一個分段錯誤,可以用 gdb 進行跟蹤,所以我有一個回溯,但它並沒有真正幫助我

Program received signal SIGSEGV, Segmentation fault.
0x00007fffce88f745 in ?? () from /xxxxxxxxxxpath-removedxxxxxxxxx/_slic.cpython-37m-x86_64-linux-gnu.so

        #0  0x00007fffce88f745 in ?? () from /xxxxxxxxxxpath-removedxxxxxxxxx/python/lib/python3.7/site-packages/skimage/segmentation/_slic.cpython-37m-x86_64-linux-gnu.so
    #1  0x000000000043d587 in _PyMethodDef_RawFastCallKeywords (kwnames=0x0, nargs=0, args=0x8, self=0x0, method=0x7fffcea9f980) at Objects/call.c:694
    #2  _PyCFunction_FastCallKeywords (func=0x7fffcf1c9eb0, args=args@entry=0x224ea80, nargs=nargs@entry=6, kwnames=kwnames@entry=0x0) at Objects/call.c:734
    #3  0x0000000000429681 in call_function (kwnames=0x0, oparg=6, pp_stack=<synthetic pointer>) at Python/ceval.c:4568
    #4  _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3124
    #5  0x00000000004ead18 in PyEval_EvalFrameEx (throwflag=0, f=0x224e800) at Python/ceval.c:547
    #6  _PyEval_EvalCodeWithName (_co=0x7fffcf1c4b70, globals=<optimized out>, locals=locals@entry=0x0, args=<optimized out>, argcount=1, kwnames=0x7ffff7f16a68, kwargs=0x7fffcc562f08, kwcount=3, 
        kwstep=1, defs=0x7fffcf1b7728, defcount=11, kwdefs=0x0, closure=0x0, name=0x7ffff6e05130, qualname=0x7ffff6e05130) at Python/ceval.c:3930
    #7  0x000000000043c9c6 in _PyFunction_FastCallKeywords (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Objects/call.c:433
    #8  0x000000000042880b in call_function (kwnames=0x7ffff7f16a50, oparg=<optimized out>, pp_stack=<synthetic pointer>) at Python/ceval.c:4616
    #9  _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3139
    #10 0x0000000000420668 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=3, globals=<optimized out>) at Objects/call.c:283
    #11 0x000000000043ca9f in _PyFunction_FastCallKeywords (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Objects/call.c:415
    #12 0x000000000042997c in call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>) at Python/ceval.c:4616
    #13 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3124
    #14 0x0000000000420668 in function_code_fastcall (co=<optimized out>, args=<optimized out>, nargs=0, globals=<optimized out>) at Objects/call.c:283
    #15 0x000000000043ca9f in _PyFunction_FastCallKeywords (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Objects/call.c:415
    #16 0x000000000042997c in call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>) at Python/ceval.c:4616
    #17 _PyEval_EvalFrameDefault (f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3124
    #18 0x00000000004ead18 in PyEval_EvalFrameEx (throwflag=0, f=0x7ffff7ee6450) at Python/ceval.c:547
    #19 _PyEval_EvalCodeWithName (_co=_co@entry=0x7ffff6da3ed0, globals=globals@entry=0x7ffff7f65390, locals=locals@entry=0x7ffff6da3ed0, args=args@entry=0x0, argcount=argcount@entry=0, 
        kwnames=kwnames@entry=0x0, kwargs=0x0, kwcount=0, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:3930
    #20 0x00000000004eae03 in PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=locals@entry=0x7ffff6da3ed0, 
        globals=globals@entry=0x7ffff7f65390, _co=_co@entry=0x7ffff6da3ed0) at Python/ceval.c:3959
    #21 PyEval_EvalCode (co=co@entry=0x7ffff6da3ed0, globals=globals@entry=0x7ffff7f4ff00, locals=locals@entry=0x7ffff7f4ff00) at Python/ceval.c:524
    #22 0x00000000005220bf in run_mod (arena=0x7ffff7f65390, flags=0x7fffffffd800, locals=0x7ffff7f4ff00, globals=0x7ffff7f4ff00, filename=0x7ffff7f15f30, mod=0x9c34e0) at Python/pythonrun.c:1035
    #23 PyRun_FileExFlags (fp=0x975850, filename_str=<optimized out>, start=<optimized out>, globals=0x7ffff7f4ff00, locals=0x7ffff7f4ff00, closeit=1, flags=0x7fffffffd800)
        at Python/pythonrun.c:988
    #24 0x00000000005222ec in PyRun_SimpleFileExFlags (fp=0x975850, filename=<optimized out>, closeit=1, flags=0x7fffffffd800) at Python/pythonrun.c:429
    #25 0x0000000000430221 in pymain_run_file (p_cf=0x7fffffffd800, filename=0x91d470 L"tvr.py", fp=0x975850) at Modules/main.c:427
    #26 pymain_run_filename (cf=0x7fffffffd800, pymain=0x7fffffffd910) at Modules/main.c:1606
    #27 pymain_run_python (pymain=0x7fffffffd910) at Modules/main.c:2867
    #28 pymain_main (pymain=pymain@entry=0x7fffffffd910) at Modules/main.c:3028
    #29 0x00000000004304b9 in _Py_UnixMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:3063
    #30 0x00007ffff7100830 in __libc_start_main (main=0x4205f0 <main>, argc=2, argv=0x7fffffffda68, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffda58)
        at ../csu/libc-start.c:291
    #31 0x000000000042a089 in _start ()

如果我用數據切片一個區域,我的數據非常稀疏,它看起來像這樣

array_stack[90:110,920:930,1]

array([[       nan,        nan,        nan,        nan,        nan,
        0.02228103, 0.02228103, 0.02228103, 0.02228103, 0.02228103],
       [       nan,        nan,        nan,        nan,        nan,
        0.02240379, 0.02240379, 0.02240379, 0.02240379, 0.02240379],
       [       nan,        nan,        nan,        nan, 0.02252662,
        0.02252662, 0.02252662, 0.02252662, 0.02252662, 0.02252662],
       [       nan,        nan,        nan, 0.02264952, 0.02264952,
        0.02264952, 0.02264952, 0.02264952, 0.02264952, 0.02264952],
       [       nan,        nan,        nan, 0.0227725 , 0.0227725 ,
        0.0227725 , 0.0227725 , 0.0227725 , 0.0227725 , 0.0227725 ],
       [       nan,        nan, 0.02289555, 0.02289555, 0.02289555,
        0.02289555, 0.02289555, 0.02289555, 0.02289555, 0.02289555],
       [       nan,        nan, 0.02301868, 0.02301868, 0.02301868,
        0.02301868, 0.02301868, 0.02301868, 0.02301868, 0.02301868],
       [       nan,        nan, 0.02314188, 0.02314188, 0.02314188,
        0.02314188, 0.02314188, 0.02314188, 0.02314188, 0.02314188],
       [       nan,        nan, 0.02326516, 0.02326516, 0.02326516,
        0.02326516, 0.02326516, 0.02326516, 0.02326516, 0.02326516],
       [       nan,        nan,        nan, 0.02338851, 0.02338851,
        0.02338851, 0.02338851, 0.02338851, 0.02338851, 0.02338851],
       [       nan,        nan,        nan, 0.02351194, 0.02351194,
        0.02351194, 0.02351194, 0.02351194, 0.02351194, 0.02351194],
       [       nan,        nan,        nan,        nan, 0.02363544,
        0.02363544, 0.02363544, 0.02363544, 0.02363544, 0.02363544],
       [       nan,        nan,        nan,        nan,        nan,
               nan, 0.02375902, 0.02375902, 0.02375902, 0.02375902],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan, 0.02388267],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan],
       [       nan,        nan,        nan,        nan,        nan,
               nan,        nan,        nan,        nan,        nan]])

我像這樣調用分段

from skimage import segmentation as seg

array = seg.slic(array_stack, n_segments = 10000, compactness=0.001, multichannel=True)

我讀到這可能是我正在使用的包中的錯誤,我可能需要記錄一個錯誤,但我不確定如何從回溯中確定原因。

問題是由數據集中的 NaN 引起的,對於具有 nan 的較小數組似乎沒問題,但超過一定大小時會出現分段錯誤。

用一個值替換了我所有的 nans 以表示沒有數據並且它起作用了。 似乎是 Scikit 圖像中的一個錯誤,因為它只發生在較大的數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM