Я обучил классификатор изображений с помощью тензорного потока и развернул его в облаке.Когда я выполняю прогноз локально, я получаю результат, и когда я выполняю пакетное прогнозирование, используя мою развернутую модель, я получаю другой результат.
, чтобы выполнить прогноз локально, я использую этот скрипт
Чтобы выполнить прогнозирование с помощью облака, я сначала изменил размер своего изображения и преобразовал его в массив 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, так как я неиспользуя те же методы, что и tenorflow, при выполнении обучения или локального прогнозирования.Может ли это быть проблемой?или есть что-то еще, о чем мне нужно беспокоиться.