gcloud ml-engine local predict RuntimeError:.pyc文件中的错误幻数

Ran*_*lfo 9 python google-cloud-platform gcloud tensorflow google-cloud-ml

我的目标是在谷歌云ml引擎上做出预测.

我按照谷歌的指示在linux ubuntu 16.04LT上安装了gcloud sdk .我已经有一台机器学习训练模型.我使用python版本anaconda python 3.5.

我跑:

gcloud ml-engine local predict --model-dir={MY_MODEL_DIR} --json-instances={MY_INPUT_JSON_INSTANCE}
Run Code Online (Sandbox Code Playgroud)

我收到了消息:错误:

(gcloud.ml-engine.local.predict)RuntimeError:.pyc文件中的错误幻数

下面是所有堆栈跟踪:

DEBUG: (gcloud.ml-engine.local.predict) RuntimeError: Bad magic number in .pyc file
Traceback (most recent call last):
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 797, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 757, in Run
    resources = command_instance.Run(args)
  File "/usr/lib/google-cloud-sdk/lib/surface/ml_engine/local/predict.py", line 65, in Run
    args.text_instances)
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/local_utils.py", line 89, in RunPredict
    raise LocalPredictRuntimeError(err)
LocalPredictRuntimeError: RuntimeError: Bad magic number in .pyc file
ERROR: (gcloud.ml-engine.local.predict) RuntimeError: Bad magic number in .pyc file
Evaluation ended**
Run Code Online (Sandbox Code Playgroud)

Joh*_*nny 18

实际上它适用于python3,你只需要删除google云文件夹中的pyc文件,这样预测调用就可以用python3编译它们.

要知道pyc文件的位置,我确实在预测调用中启用了标志--verbosity debug:

gcloud ml-engine local predict --model-dir=${MODEL_LOCATION} --json-instances=data/new-data2.json --verbosity debug
Run Code Online (Sandbox Code Playgroud)

引用将为您提供有关gcloud ml引擎文件路径的信息,在我的机器中:

/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/
Run Code Online (Sandbox Code Playgroud)

转到该目录并删除pyc文件.

  • 有一个新命令:```gcloud ai-platform local预报--model-dir = $ {MODEL_LOCATION} --json-instances = data / new-data.json --verbosity debug`''行为和相同的解决方案适用 (2认同)

Ran*_*lfo 7

事实上,我自己发布这个问题是为了帮助那些有同样问题的人,因为我找不到一个简单明了的答案.

在我看来还有其他解决方案,甚至比我的更好,但这就是为我解决的问题.

我的解决方案是google cloud sdk不适用于python 3,至少在我的配置中是这样.要解决:

  1. 使用python 2安装anaconda虚拟环境(在我的例子中为2.7.14)
  2. 激活环境
  3. 再次执行gcloud命令

如果您的导出ml模型和输入都可以,那将起作用.

简单的问题,但给我带来了很多痛苦,只是因为我不能轻易找到这个预先要求,或者我只是错过了它.

我希望能帮助别人.

  • 删除pyc文件的建议看起来更好,但这对我有用 (2认同)