首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow 1.5中的非法指令(核心转储)

问Tensorflow 1.5中的非法指令(核心转储)
EN

Stack Overflow用户
提问于 2019-03-19 00:49:49
回答 2查看 2.7K关注 0票数 1

我有一个运行tensorflow模型的python脚本,并且我需要使用PHP shell_exec函数从一个PHP文件(由于复杂的原因)运行这个脚本。当我使用以下代码运行python文件时:

代码语言:javascript
复制
$command = 'cd testModels/crosswalkPredict && . activate keras && python test_script.py';
$output = shell_exec($command);

我得到以下错误:Illegal instruction (core dumped)

我读到这个问题通常发生在CPU不支持更新版本的Tensorflow中的指令时。所以我降级到了Tensorflow 1.5。

但是,当我直接从终端运行cd testModels/crosswalkPredict && . activate keras && python test_script.py时,不会出现这个错误;只有当我从PHP shell_exec函数中运行它时,才会出现这个错误。

我已经尝试了python脚本,只用了以下几行:

代码语言:javascript
复制
import tensorflow
print('Hello!')

它仍然给出相同的错误,所以我知道当我所做的一切都是导入tensorflow并使用shell_exec运行脚本时,问题就会发生。

可能的问题是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-01 08:07:03

我发现了问题所在。正如我在一些评论中提到的,我使用的是python虚拟环境。当我从命令行执行python脚本时,正在使用python虚拟环境中的python解释器,一切正常。每当我执行rom shell_exec脚本时,就会使用python解释器的默认安装,这就是错误发生的地方。

我在使用python虚拟环境方面经验不是很丰富,所以这可能是我花了这么长时间才理解这个问题的原因。幸运的是,MohammedAyoubBENJELLOUN关于使用默认python安装的shell_exec的评论让我走上了正确的道路,我从那里找到了答案。

为了解决这个问题,我简单地在python虚拟环境中的解释器路径调用了python解释器,而不是试图激活虚拟环境然后执行。

例如,我使用:

代码语言:javascript
复制
/home/user01/anaconda3/envs/keras/bin/python test_script.py

而不是:

代码语言:javascript
复制
. activate keras && python test_script.py
票数 0
EN

Stack Overflow用户

发布于 2019-03-19 06:13:52

这是一个已知的TensorFlow兼容性问题,如果你从源代码中编译TensorFlow,这个问题可能会被修复:

https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-386888244

https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-420157421

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55226284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档