【发布时间】:2019-03-18 16:49:48
【问题描述】:
我有一个用于运行 tensorflow 模型的 python 脚本,我需要使用 PHP shell_exec 函数从 PHP 文件(出于复杂原因)运行此脚本。当我使用以下代码运行 python 文件时:
$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 脚本:
import tensorflow
print('Hello!')
它仍然给出相同的错误,所以我知道当我所做的只是导入 tensorflow 并使用 shell_exec 运行脚本时会出现问题。
可能是什么问题?
【问题讨论】:
-
你能运行任何其他的shell命令吗?以
ls -la为例 -
我可以毫无问题地运行其他 shell 命令。我只在运行使用 tensorflow/keras 的脚本时遇到错误。
-
例如,在带有 print(Hello) 的最小化脚本中,如果我注释掉“import tensorflow”行,一切正常。
-
您的
testModels文件夹在哪里?它属于你的 php 项目吗?尝试用文件的完整路径替换该部分 -
我的PHP文件,名为
crosswalkPredict.php,位于/home/user01/Desktop/transportation,我的testModels文件夹位于同一目录下(/home/user01/Desktop/transportation)。
标签: php python ubuntu tensorflow