使用tensorflow.contrib和cv_bridge会导致tcmalloc错误

时间:2017-03-06 23:48:25

标签: python opencv tensorflow ros

以下脚本

import tensorflow.contrib
import cv_bridge

import rospy
rospy.init_node('node')

引发以下错误:

/usr/bin/python2.7    
/home/ethan/.PyCharmCE2016.3/config/scratches/scratch_4.py
src/tcmalloc.cc:277] Attempt to free invalid pointer 0xa2e78616d5f7475 

使用退出代码134完成处理(由信号6中断:SIGABRT)

操作系统:

❯ uname -a 
Linux dos 3.13.0-76-generic #120-Ubuntu SMP Mon Jan 18 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/

我尝试重新安装cv_bridge和tensorflow。没有运气。

1 个答案:

答案 0 :(得分:1)

事实证明,解决方案是切换导入顺序:

import cv_bridge
import tensorflow.contrib

import rospy
rospy.init_node('node')

这是一个错误,我在tensorflow和opencv githubs上发布了问题。

修改 我在.zshrc

中发现了这个不幸的一行
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"

不确定我为什么添加它。评论它解决了这个问题。虽然不是错误,但我认为提供某种更具信息性的错误消息会很有帮助。

这是the issue on the Tensorflow Github page,这是the one on the OpenCV page