当前位置:网站首页>深度学习 段错误(Segment Core/ Exit code 139)情况记录
深度学习 段错误(Segment Core/ Exit code 139)情况记录
2022-07-25 09:23:00 【Tobi_Obito】
前言
使用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()都出来了= =)。那么是不是跟上面提到的情况类似?难道也是因为库之间的依赖兼容性的问题?于是我做了如下尝试:
>>> import numpy as np
>>> import tensorflow as tf
>>> tf.ones([3,4]).numpy()
>>> exit() # exit with code 0,成功结束了!果不其然,在显式import numpy之后段错误就消失了。似乎是这个原因,然后再联想到之前在项目中遇到的创建keras自带的EarlyStop callback时报段错误的问题:首先,我之前是顺利使用过Early Stop callback的;第二,import时并未报错。那么就可能是在创建callback时“隐式涉及”到相关库,从而因为上述原因出现段错误。
思考
这一点确实很可能是段错误的很大一部分原因,因为正是由于这种复杂的“隐式”的库间关联,才导致发生段错误的“玄学”性。
边栏推荐
猜你喜欢

matlab如何导入大量数据

初识Opencv4.X----图像卷积

缺陷检测网络--混合监督(kolektor缺陷数据集复现)

单目深度估计自监督模型Featdepth解读(上)——论文理解和核心源码分析

First knowledge of opencv4.x --- image histogram equalization

*6-2 CCF 2015-03-3 Festival

OC--包装类和处理对象

How to install pytorch—— A most simple and effective method!

UI - infinite rotation chart and column controller

cf #785(div2) C. Palindrome Basis
随机推荐
*6-3 save small experts
初识Opencv4.X----方框滤波
Mixed supervision for surface-defect detection: from weakly to fully supervised learning:表面缺陷检测的混合监督
初识Opencv4.X----图像卷积
[deep learning] self encoder
First knowledge of opencv4.x --- image convolution
微信小程序实现轮播图(自动切换&手动切换)
Sort out personal technology selection in 2022
*7-1 CCF 2015-09-1 sequence segmentation
基于PackNet的演进——丰田研究院(TRI)深度估计文章盘点(上)
单目深度估计模型Featdepth实战中的问题和拓展
十进制整数转换为其它进制的数
*7-2 CCF 2015-09-2 date calculation
CDA LEVELⅠ2021新版模拟题一(附答案)
Dream set sail (the first blog)
[code source] a prime number of fun every day (BFS)
Kotlin realizes file download
卷积神经网络发展历程(部分)
Kotlin协程:协程的基础与使用
@2-1 safety index predicted by CCF at the end of December 1, 2020