我的目标是在google引擎上做出预测。
我在谷歌指令之后的Linuxubuntu16.04LT上安装了gcloud。我已经有了一个机器学习训练的模型。我使用python版本anacondapython3.5。
我跑:
gcloud ml-engine local predict --model-dir={MY_MODEL_DIR} --json-instances={MY_INPUT_JSON_INSTANCE}
我收到消息:错误:
(gCloud.ml-Engin.local.预测性) 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**
发布于 2018-02-16 10:24:56
事实上,我自己发这个问题是为了帮助那些有同样问题的人,因为我找不到一个简单明了的答案。
还有其他的解决办法,在我看来甚至比我的更好,但这才是我的解决办法。
我的解决方案是google不适用于python 3,至少在我的配置中是这样。解决:
如果您的导出ml模型和输入没有问题,那就可以了。
简单的问题,但给我带来了很大的痛苦,仅仅是因为我很难找到这个预先要求,或者我只是错过了它。
我希望能帮上忙。
发布于 2018-05-04 16:24:56
实际上,它适用于python3,您只需要删除google文件夹中的pyc文件,这样预测调用就可以用python3编译它们。
为了知道pyc文件的位置,我在预测调用中启用了标志--详细调试:
gcloud ml-engine local predict --model-dir=${MODEL_LOCATION} --json-instances=data/new-data2.json --verbosity debug
trackback将为您提供关于gcloud ml引擎文件的路径的信息,在我的机器中是:
/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/
转到该目录并删除pyc文件。
发布于 2019-07-18 04:08:21
查找并删除google中的所有pyc文件。它们是用错误的python环境编译的。它们将在下一个需要时自动重新编译。
%%bash
find "/tools/google-cloud-sdk/lib/" -name '*.pyc' -delete
https://stackoverflow.com/questions/48824381
复制相似问题