gpt4 book ai didi

python - 云预测和本地预测返回的结果不一样

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:15 25 4
gpt4 key购买 nike

我用 tensorflow 训练了一个图像分类器并将其部署在云中。当我在本地执行预测时,我会得到一个结果,当我使用部署的模型执行批量预测时,我会得到不同的结果。

为了在本地执行预测,我使用这个 script

要使用云执行预测,我首先调整图像大小并将其转换为 float32 数组(模型使用该类型进行训练),然后使用以下命令将其保存为 JSON 文件:

import skimage, json
from PIL import Image
from resizeimage import resizeimage


with open('xxx.jpg', 'r+b') as f:
with Image.open(f) as image:
resized_image = resizeimage.resize_cover(image, [299,299])



converted_image = skimage.img_as_float32(resized_image).tolist()

with open('request.json','w') as jsonfile:
json.dump({"image": converted_image}, jsonfile)

然后我将请求上传到我的云存储桶中并创建一个预测作业,如下所示:

gcloud ml-engine jobs submit prediction "test_batch_prediction" \
--model "xxx" \
--input-paths "gs://path/to/my/request/request.json" \
--output-path "gs://path/to/where/prediction/will/be/saved/prediction_results/" \
--region "europe-west1" \
--data-format "text"

我认为问题在于调整图像大小并将其转换为 float32,因为在执行训练或本地预测时我没有使用与 tensorflow 相同的方法。这会是问题所在吗?或者还有什么我需要担心的。

最佳答案

您使用的脚本在本地标准化了 0 到 255 之间的像素值(均值默认为 0):

归一化 = tf.divide(tf.subtract(调整大小, [input_mean]), [input_std])

您用于上传到cloudml进行在线预测的代码缺少标准化步骤。添加此:

转换后的图像 = 转换后的图像/255.0

关于python - 云预测和本地预测返回的结果不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54984698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com