与numpy四元数库一起使用时,Tensorflow segfault

2024-03-29 02:16:36 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码段在最后第二行崩溃,因此调用tf.train.latest_checkpoint)的位置:

import tensorflow as tf
from tensorflow.contrib.layers.python.layers import batch_norm as batch_norm
import quaternion

latest_checkpoint = tf.train.latest_checkpoint('checkpoints/default_model/run_000')
print(latest_checkpoint)

输出是:

^{pr2}$

我在conda虚拟环境中使用python3.5.2,tensorflowgpuversion0.12,ubuntu14.04。import quaternion语句引用名为^{}的外部库。在

如果省略了batch_norm或{}导入,则不会发生错误(因此上面代码段中的第二行或第三行)。有人知道为什么会发生这种情况,以及如何解决它吗?在


Tags: fromimportnormlayerstftensorflowas代码段
1条回答
网友
1楼 · 发布于 2024-03-29 02:16:36

有两种可能的方法来解决/修复错误:

不导入批量标准

只要总是在代码中直接使用tf.contrib.layers.python.layers.batch_norm,这样就省略了import语句(诚然,这会造成很多混乱)。在

设置环境变量LD_PRELOAD

dennybritz于2月10日在this github issue中发布的以下修复有助于:

sudo apt-get install libtcmalloc-minimal4
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"

请注意,如果您使用PyCharm,您要么必须在运行配置中指定这个环境变量(请参见this post),要么-如果您将上面的export语句放入.bashrc中,那么您必须从命令行启动PyCharm,以便它继承环境变量(如in this post)一样。在

然而,虽然这修复了这个问题,但我不知道为什么会出现这个错误,以及它是否应该被视为一个bug,应该报告给tensorflow或numpy四元数devs。在

相关问题 更多 >