Развертывание модели Keras с помощью cloudml на RStudio завершается неудачно - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь развернуть мою обученную модель керас в Google Cloud ML.Модель отлично работает на моей локальной машине, но не может быть развернута в облаке.Я работаю с библиотекой cloudml в RStudio на MacOS High Sierra (10.13.4).

Вот игрушечный пример:

model <- keras_model_sequential()

model %>%
  layer_dense(units = 78, activation = "sigmoid", input_shape = c(39)) %>%
  layer_dense(units = 39, activation = "sigmoid") %>%
  layer_dense(units = 20, activation = "sigmoid") %>%
  layer_dense(units = 1, activation = "sigmoid") %>% 
  compile(
    loss = 'mean_squared_error',
    optimizer = optimizer_rmsprop(),
    metrics = c('mean_squared_error')
  )

history <- model %>% fit(
  x_train, y_train,
  epochs = 1000,
  validation_split = 0.2
)

# deploy
export_savedmodel(model, "model")
cloudml_deploy("model", name = "keras_model")

Вот моя информация о версии:

> R.Version()
$platform
[1] "x86_64-apple-darwin15.6.0"

$arch
[1] "x86_64"

$os
[1] "darwin15.6.0"

$system
[1] "x86_64, darwin15.6.0"   

$status
[1] ""

$major
[1] "3"

$minor
[1] "4.1"

$year
[1] "2017"

$month
[1] "06"

$day
[1] "30"

$`svn rev`
[1] "72865" 

$language
[1] "R"

$version.string
[1] "R version 3.4.1 (2017-06-30)"

$nickname
[1] "Single Candle"

Мой RStudio - версия 1.1.423.Версии локальных библиотек R:

cloudml: 0.5
keras: 2.1.6.9001
tensorflow: 1.5.0.9001

Я получаю сообщение об ошибке:

Creating version (this might take a few minutes)
..............................................
..............................................
..............................................
..............................................
..............................................
...........................failed.
ERROR: (gcloud.ml-engine.versions.create) Bad model 
detected with error:  "Failed to load model: Loading 
servable: {name: default version: 1} failed: Not found: 
Op type not registered 'ClipByValue' in binary running 
on localhost. Make sure the Op and Kernel are registered 
in the binary running in this process.\n\n (Error code: 0

Есть идеи, что случилось?

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

При создании версии укажите флаг --runtime-version=1.8

0 голосов
/ 12 сентября 2018

В пакете cloudml R, чтобы использовать TensorFlow 1.8, вы можете установить для cloudml.yml значение:

trainingInput: runtimeVersion: 1.8

Затем разверните как обычно cloudml_deploy("model", name = "keras_model") для развертывания с использованиемвремя работы TensorFlow 1.8.

0 голосов
/ 12 июня 2018

Похоже, что график создается в более новой версии TensorFlow, которая включает в себя ClipByValue op (1.8+), но используется в более старой версии, которая этого не делает.Самым простым решением было бы использовать более новую версию TensorFlow для развертывания, но потенциально вы могли бы сгенерировать график с более старой версией TensorFlow (до 1.8).

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