2016-10-11 1 views
3

Мне удалось переучивать мою конкретную классификационную модель, используя общую начальную модель, следующую за этим tutorial. Я хотел бы сейчас развернуть его на Google Cloud Learning Learning после этого steps.Развертывание Модель переобучения в обучении на основе Google для облачных вычислений

Мне уже удалось экспортировать его как MetaGraph, но я не могу получить правильные входы и выходы.

Используя его локально, моя точка входа в график: DecodeJpeg/contents:0, которая загружается с jpeg-изображением в двоичном формате. Результат - мои прогнозы.

код я использую локально (который работает) является:

softmax_tensor = sess.graph.get_tensor_by_name('final_result:0') 
predictions = sess.run(softmax_tensor,{'DecodeJpeg/contents:0': image_data}) 

Если тензор вход будет DecodeJpeg? Какие были бы изменения, которые мне нужно внести, если я хочу, чтобы в качестве входных данных был вход base64 image?

Я определил выход как:

outputs = {'prediction':softmax_tensor.name} 

Любая помощь высоко ценится.

ответ

1

В вашем примере, тензор вход «DecodeJpeg/содержание: 0», так что вы бы иметь что-то вроде:

inputs = {'image': 'DecodeJpeg/contents:0') 
outputs = {'prediction': 'final_result:0') 

(Обязательно соблюдайте все инструкции для preparing от модели).

каталог модель вы собираетесь экспортировать должны иметь файлы, такие как:

gs://my_bucket/path/to/model/export.meta 
gs://my_bucket/path/to/model/checkpoint* 

При развертывании модели, не забудьте установить gs://my_bucket/path/to/model как deployment_uri.

Чтобы отправить изображение в службу, как вы предлагаете, вам необходимо будет base64 кодировать байты изображения. В теле запроса должен выглядеть следующим образом (обратите внимание на «тэг», «B64», с указанием данных является основанием 64 кодированный):

{'instances': [{'b64': base64.b64encode(image)}]} 
+0

Здравствуйте, обратите внимание, что я понимаю, как моя просьба Шоул выглядеть. – KlezFromSpace

+0

Я использую gcloud beta ml predict --model inception --instances = file.json, а в json-файле у меня есть {'экземпляры': [{'b64': b64_image (длинная строка))}]}. Ответ api. Входы ввода должны быть в формате JSON. – KlezFromSpace

+0

Если вы используете gcloud, то вы хотите, чтобы ваш файл содержал просто [{"b64": "really_long_base_64_encoded_string"}]. Другими словами, (1) gcloud добавляет бит «экземпляров» и (2) вы сами должны сделать кодировку base64. – rhaertel80