【发布时间】:2019-06-12 00:19:16
【问题描述】:
我正在尝试对部署到 GCP ML 引擎的自定义训练 TensorFlow 模型调用预测。当我尝试调用模型上的预测时,它返回以下错误消息“预期 float32 得到 base64”
- 我使用 迁移学习 和 TensorFlow 的 retrain.py 脚本在我的图像上训练我的模型,遵循 official documentation
python retrain.py --image_dir ~/training_images saved_model_dir /saved_model_directory
- 我已经使用 TensorFlow 的 label_img.py 脚本在本地测试了预测,预测在本地适用于我的图像
python label_image.py --graph=/tmp/output_graph.pb --labels=/tmp/output_labels.txt --input_layer=Placeholder --output_layer=final_result \
- 我已按照 retrain.py 脚本文档中的说明导出了我的模型以与 Tensorflow Serving 一起使用。
python retrain.py --image_dir ~/training_images --saved_model_dir /saved_model_directory
我已将模型上传到 Firebase,GCP 验证并接受了我的模型,我能够触发我的模型。
尝试调用在线预测时,我收到“Expected float32”错误。
test.json ={"image_bytes": {"b64": "/9j/4AAQSkZJ.......=="}}
gcloud ml-engine predict \
--model my_model \
--version v1 \
--json-instances ./test.json
我是否需要修改 retrain.py 以使我保存的模型接受 base64 或者是否有其他解决方案?
我已经检查了以下答案,但不幸的是它并没有解决我的问题: How to pass base64 encoded image to Tensorflow prediction?
【问题讨论】:
-
您使用的是哪个 Python 版本? 2个还是3个?
-
Python 2.7 和 TensorFlow 1.10.0
标签: python tensorflow machine-learning google-cloud-platform google-cloud-ml