Я следовал следующему руководству по распознаванию рукописных цифр: https://www.youtube.com/watch?v=Gcn7l37Qhng. Однако в нем ничего не говорится о развертывании, поэтому я сам развернул WebService, основываясь на других руководствах и примерах IBM.
Я правильно заполнил учетные данные и попытался преобразовать мои самодельные изображения размером 28x28 в соответствующие полезные данные, используя следующий фрагмент кода:
import urllib3, requests, json
from PIL import Image
import numpy as np
img = Image.open(filepath)
img = np.array(img.getdata())
img=img[:,1]
img_to_predict = 1.0 - (img.reshape(28, 28, 1)/255)
img_to_predict = img_to_predict.astype("float32").tolist()
scoring_payload = {"values": [img_to_predict]}
Полезная нагрузка создается с помощью следующего фрагмента кода:
payload_scoring = scoring_payload
response_scoring = requests.post('https://us-south.ml.cloud.ibm.com/v3/wml_instances/****/deployments/****/online', json=payload_scoring, headers=header)
print("Scoring response")
print(json.loads(response_scoring.text))
Я ожидал получить вероятности с самыми высокими значениями, соответствующими классам правильных чисел.Я нарисовал 0 и 1 в краске и отправил изображения в веб-сервис.Вместо ожидаемых значений высокой вероятности при индексах 0 и 1, я получаю, что эти json отвечает практически без различий (пробовал и с другими числами, но с теми же результатами).
Оценка ответа {'fields': ['предсказание'], 'значения': [[0,024692464619874954, 0,251592218875885, 0,1783675253391266, 0,07483808696269989, 0,10192563384771347, 0,09394937008619308 * 0,06621485930 * 1010) 1010391) 1010291010291321321482514825132132148251321481011011481011481011481011302705705251705291305291481705251705251705251705705705255251481481481481481481481481481481481481481481481485251485256255256255256255256255256255255255255305255255255255255258379279372)))))))>))) *1015* {'fields': ['Forecast'], 'values'{'fields': ['предсказание'], 'значения': [[0,024196961894631386, 0,2504081130027771, 0,18672968447208405, 0,078950896859169, 0,09495671093463898, 0,09053520858287811, 0,06100 * 101 * 210 * 1010) 1010282 028 = 1010,130 * 028% (2130))))).попытался развернуть другую модель из примера потока потока машинного обучения, но я получил те же бессмысленные результаты.Ответы службы не соответствуют классам отправленных изображений должным образом.
Я пытался использовать готовую модель нейронной сети с заданным значением ввода https://github.com/pmservice/wml-sample-models/blob/master/scikit-learn/hand-written-digits-recognition/test-data/mnist-scikit-learn-test-payload.json,, но это единственные рабочие данные, которые ямог бы взять меня за руку.
Я пытался использовать тестовые данные набора данных mnist, но те же результаты ( Deep Learning - Как проверить модель учебника MNIST на WML? ).
Я понятия не имею, где я все испортил, любая помощь будет высоко ценится.Заранее спасибо!