NNUNet Windows环境推理配置与问题总结
NNUnet 的 Windows 推理环境配置其实不算太麻烦,但多线程和 lambda 的坑还是挺典型的。多线程报错主要是 Python 在序列化匿名函数(lambda)时不太给力,直接导致推理阶段卡壳。你只要把原来用lambda
的地方改成普通函数,比如def func(x): return x+1
这种,问题就了。嗯,别问我怎么知道的……踩过坑的才知道多线程真不太好惹。
推理阶段会自动调用multiprocessing
,这块在 Windows 下和 Linux 方式不同,Windows 更严格点,尤其是你用的主进程里还有类的匿名方法,那就更容易炸。所以推荐你检查下哪些代码在多线程里用到了 lambda 或者局部函数,换成可序列化的就行。
哦对了,如果你想更深入了解多线程,可以去看看Windows 多线程编程那篇文章,讲得挺系统的;另外关于序列化的问题,iOS JSON 序列化及反序列化指南虽然是 iOS 的,但概念上通用,看看也有启发。
,NNUnet 在 Windows 上搞定推理是完全没问题的,只要你绕开这些多线程+lambda 的组合。建议你开发时就注意这个点,后面省多事。
如果你用的是 PyTorch 环境,那版本兼容也要注意下,推荐 Python 3.8 左右,PyTorch 1.10 左右,稳定一些。
2.88MB
文件大小:
评论区