Папка с пустыми переменными после создания переустановленного создания SavedModel

87
11

Я пытаюсь экспортировать мою переобученную начальную модель. Я прочитал это почти подобный вопрос здесь и там упоминались ресурсы, а также. Но после экспорта графика папка variables пуста, которая должна содержать файлы, содержащие сериализованные переменные графов (save_model.pb создается правильно, я бы сказал).

Я использую TensorFlow 1.2.1 и Python 3.5.2.

На самом деле я поставил простую print(tf.trainable_variables()) внутри сеанса, но это пустой список.

Здесь моя функция для экспорта графика:

def export_tf_model(graph_path, export_dir):    
builder = tf.saved_model.builder.SavedModelBuilder(export_dir)

with tf.gfile.FastGFile(graph_path, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
tf.import_graph_def(graph_def, name='')

with tf.Session() as sess:
g = sess.graph

# print variables
print(tf.trainable_variables())

in_image = g.get_tensor_by_name('DecodeJpeg/contents:0')
inputs = {'images': tf.saved_model.utils.build_tensor_info(in_image)}

out_classes = g.get_tensor_by_name('final_result:0')
outputs = {'scores': tf.saved_model.utils.build_tensor_info(out_classes)}

signature = tf.saved_model.signature_def_utils.build_signature_def(
inputs=inputs,
outputs=outputs,
method_name=signature_constants.PREDICT_METHOD_NAME
)

builder.add_meta_graph_and_variables(
sess,
[tag_constants.SERVING],
signature_def_map={
signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature},
)

builder.save()

Я не могу понять, где может быть проблема?

Я пробовал mnist_saved_model.py из официального учебника, и он отлично работает, экспортируя как граф, так и переменные. Но я вижу, что это обучение и экспорт. Нужно ли тренироваться перед экспортом графика? Если да, как мне это сделать?

спросил(а) 2021-01-19T16:11:17+03:00 2 месяца, 3 недели назад
1
Решение
130

Я думаю, что эта проблема связана с замороженной моделью pb, поскольку переменные были преобразованы в константы во время замораживания графа (см. Документ здесь). ckpt этого используйте исходный ckpt модели ckpt и, возможно, эти темы помогут: # 1938, # 2045

ответил(а) 2021-01-19T16:11:17+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема