Инициализация таблицы поиска для модели R Keras, развернутой в облачном ML - PullRequest
0 голосов
/ 15 января 2019

Я создал модель в R-версии keras и развернул ее через Google Cloud ML

Модель обучена на числовых входах, которые были преобразованы из строк

Когда дело доходит до прогнозирования, я преобразую строки в числовые, используя таблицу поиска, а затем передаю числовой ввод в модель

Это просто сделать на локальной машине:

library(tidyverse)
library(cloudml)

# lookup table 
lookup <- tibble(int = c(1, 2, 3),
                 str = c('A1', 'B1', 'C1'))

# input strings
 a <- 'A1'
 b <- 'B1'

# convert to numeric 
a_ <- lookup %>% filter(str == a) %>% select(int) %>% pull()
b_ <- lookup %>% filter(str == b) %>% select(int) %>% pull()

# send to deployed model and receive predictions
cloudml_predict(
  instances = list(c(a_, b_)),
  name = "size_predictor",
  version = "a_1",
  verbose = T
)

Однако я не могу понять, где мне нужно поместить таблицу поиска в облако мл. Это несколько миллионов строк. Нужно ли добавлять новый слой в модель keras в начале, чтобы выполнить преобразование?

В качестве альтернативы, я могу сохранить таблицу поиска в BigQuery и заранее переадресовывать ввод через нее?

Ответы, которые я нашел до сих пор, применимы только к python, например: Добавить предварительную обработку Tensorflow к существующей модели Keras (для использования в обслуживании Tensorflow)

1 Ответ

0 голосов
/ 15 января 2019

В вашей функции ввода в Keras вы можете использовать tf.gather () для преобразования полученной строки в int? Тогда он является частью модели и будет работать прозрачно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...