admin 管理员组

文章数量: 887006

深度学习 段错误(Segment Core/ Exit code 139)情况记录

前言

使用python搞深度学习经常会遇到抽风的段错误,但一直未找到原因在哪,都是玄学发生,玄学修复,现在终于发现了一些“线索”,发布此文用于记录积累导致段错误的原因及解决方法。

线索发现

>>> import tensorflow as tf
>>> tf.ones([3,4]).numpy()  # 测试tensorflow是否正确安装,成功执行并得到正确结果
>>> exit()  # 距离上一行之间无任何执行代码,按理说应该正常退出,但Segment Core(即段错误exit code 139)

注:个人的环境中几个主要的库是tensorflow-gpu 2.3.0 numpy scikit-learn

分析

深度学习往往涉及相关库(numpy、scikit-learn、tensorflow等)较多,并且每个库又有各种版本,我在很早前就了解到这些库有时看上去是顺利安装了,但实际上仍存在一定的“兼容”问题,比如曾遇到sklearn的import必须在tensorflow之前,否则就会报错退出-_-||。

通过短短3行代码分析,想到这样一点:虽然没有显式import numpy,但是tensorflow一定依赖numpy吧?(毕竟.numpy()都出来了= =)。那么是不是跟上面提到的情况类似?难道也是因为库之间的依赖兼容性的问题?于是我做了如下尝试:

>>>

本文标签: 深度学习 段错误(Segment Core Exit code 139)情况记录