rstudio / cloudml

R interface to Google Cloud Machine Learning Engine
https://tensorflow.rstudio.com/tools/cloudml/
65 stars 24 forks source link

export_savedmodel #212

Open philipus opened 4 years ago

philipus commented 4 years ago

export_savedmodel using cloudml did not work properly (see below) on google AI Platform.

How do you save and download the model for further steps (applying model on new data) on local computer?!

Error: ValueError: Attempted to save a function __inference_lstm_layer_call_fn_8346 which references a symbolic Tensor Tensor("dropout/mul_1:0", shape=(?, 1), dtype=float32) that is not a simple constant. This is not supported. Detailed traceback: File "//usr/local/lib/python2.7/dist-packages/tensorflow_core/python/saved_model/save.py", line 860, in save meta_graph_def, saveable_view, signatures) File "//usr/local/lib/python2.7/dist-packages/tensorflow_core/python/saved_model/save.py", line 556, in _fill_meta_graph_def object_map, resource_map, asset_info = saveable_view.map_resources() File "//usr/local/lib/python2.7/dist-packages/tensorflow_core/python/saved_model/save.py", line 291, in map_resources "supported.").format(concrete_function.name, capture)) py_call_impl(callable, dots$args, dots$keywords) tensorflow::tf$saved_model$save(obj = object, export_dir = export_dir_base, ...) export_savedmodel.keras.engine.training.Model(model, "savedmodel") export_savedmodel(model, "savedmodel") eval(ei, envir) eval(ei, envir) withVisible(eval(ei, envir)) source(file = file, local = envir, echo = echo, encoding = encoding) withCallingHandlers({ source(file = file, local = envir, echo = echo, encoding = encoding) write_run_property("completed", TRUE) }, error = function(e) { write_run_metadata("error", list(message = e$message, traceback = capture_stacktrace(sys.calls()))) stop(e) }) force(expr) tryCatch({ tfruns::training_run(file = deploy$entrypoint, context = deploy$context, config = "cloudml", flags = deploy$overlay, encoding = "UTF-8", echo = TRUE, view = FALSE, run_dir = run_dir) }, error = function(e) { training_error <<- e })

philipus commented 4 years ago

very strange habit... with train.R form https://cran.r-project.org/web/packages/cloudml/vignettes/deployment.html

export_savedmodel works but with my code (the part below) not. Any Idea what the problem is?!


model <- keras_model( inputs = list(encoder_inputs, decoder_inputs), outputs = decoder_outputs )

Compile model

model %>% compile(optimizer='adam', loss='mean_absolute_error')

model %>% fit( list(encoder_input_data, decoder_input_data), decoder_target_data, batch_size=batch_size, epochs=epochs, validation_split=0.2)

export_savedmodel(model, "savedmodel")