Я пытался создать файл saved_model.pb
(из файлов .ckpt
, .meta
), который необходим для того, чтобы сделать вывод.Я могу успешно создать файл, который содержит saved_model.pb
и переменные, однако при развертывании моего скрипта я получаю KeyError
на ожидаемых тензорах:
y_probs = [my_predictor._fetch_tensors['y_prob_{}'.format(p)] for p in protocols]
KeyError: 'y_prob_protocol1'
Проблема, вероятно, заключается в том, как яопределили мои входы / выходы (см. код в конце), потому что тензоры подачи и выборки пусты, как вы можете видеть ниже:
my_predictor = predictor.from_saved_model('export')
SavedModelPredictor with feed tensors {} and fetch_tensors {}
saver = tf.train.import_meta_graph(opts.model)
builder = tf.saved_model.builder.SavedModelBuilder(opts.out_path)
with tf.Session() as sess:
# Restore variables from disk.
saver.restore(sess, opts.checkpoint)
print("Model restored.")
input_tensor = tf.placeholder(tf.float32, shape=(None,128,128,128,1), name='tensors/component_0')
tensor_1 = tf.placeholder(tf.float32, shape=(None,128,128,128,2), name='pred/Reshape')
tensor_2 = tf.placeholder(tf.float32, shape=(None,128,128,128,3), name='pred1/Reshape')
tensor_info_input = tf.saved_model.utils.build_tensor_info(input_tensor)
tensor_info_1 = tf.saved_model.utils.build_tensor_info(tensor_1)
tensor_info_2 = tf.saved_model.utils.build_tensor_info(tensor_2)
prediction_signature = (
tf.saved_model.signature_def_utils.build_signature_def(
inputs={'x': tensor_info_input},
outputs={'y_prob_protocol1': tensor_info_1, 'y_prob_protocol2':tensor_info_2},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME))
builder.add_meta_graph_and_variables(
sess, [tf.saved_model.tag_constants.SERVING],
signature_def_map={
'predict_images':
prediction_signature,
})
builder.save()
Спасибо за вашу помощь!