Spec-Zone.ru › TensorFlow

tf.compat.v1.train.import_meta_graph

Восстанавливает граф, сохранённый в протоколе MetaGraphDef.

tf.compat.v1.train.import_meta_graph(
    meta_graph_or_file, clear_devices=False, import_scope=None, **kwargs
)

Используется в блокнотах

Используется в руководстве
  • Перенос рабочего процесса SavedModel

Эта функция принимает на вход буфер протокола MetaGraphDef. Если аргумент — файл, содержащий буфер протокола MetaGraphDef, функция создаёт буфер протокола из содержимого файла. Затем функция добавляет все узлы из поля graph_def в текущий граф, восстанавливает все коллекции и возвращает объект saver, созданный из поля saver_def.

В сочетании с export_meta_graph() эту функцию можно использовать, чтобы

  • Сериализовать граф вместе с другими объектами Python, такими как QueueRunner, Variable, в MetaGraphDef.

  • Возобновить обучение на основе сохранённого графа и контрольных точек.

  • Выполнить инференс на основе сохранённого графа и контрольных точек.

...
# Create a saver.
saver = tf.compat.v1.train.Saver(...variables...)
# Remember the training_op we want to run by adding it to a collection.
tf.compat.v1.add_to_collection('train_op', train_op)
sess = tf.compat.v1.Session()
for step in range(1000000):
    sess.run(train_op)
    if step % 1000 == 0:
        # Saves checkpoint, which by default also exports a meta_graph
        # named 'my-model-global_step.meta'.
        saver.save(sess, 'my-model', global_step=step)

Позже мы сможем продолжить обучение на основе этой сохранённой meta_graph, не создавая модель с нуля.

with tf.Session() as sess:
  new_saver =
  tf.train.import_meta_graph('my-save-dir/my-model-10000.meta')
  new_saver.restore(sess, 'my-save-dir/my-model-10000')
  # tf.get_collection() returns a list. In this example we only want
  # the first one.
  train_op = tf.get_collection('train_op')[0]
  for step in range(1000000):
    sess.run(train_op)
Примечание: Возобновить обучение на основе сохранённой meta_graph можно, только если назначения устройств не изменились.

Пример:

Переменные, заполнители и независимые операции также можно сохранить, как показано в следующем примере.

# Saving contents and operations.
v1 = tf.placeholder(tf.float32, name="v1")
v2 = tf.placeholder(tf.float32, name="v2")
v3 = tf.math.multiply(v1, v2)
vx = tf.Variable(10.0, name="vx")
v4 = tf.add(v3, vx, name="v4")
saver = tf.train.Saver([vx])
sess = tf.Session()
sess.run(tf.global_variables_initializer())
sess.run(vx.assign(tf.add(vx, vx)))
result = sess.run(v4, feed_dict={v1:12.0, v2:3.3})
print(result)
saver.save(sess, "./model_ex1")

Позже эту модель можно восстановить и загрузить её содержимое.

# Restoring variables and running operations.
saver = tf.train.import_meta_graph("./model_ex1.meta")
sess = tf.Session()
saver.restore(sess, "./model_ex1")
result = sess.run("v4:0", feed_dict={"v1:0": 12.0, "v2:0": 3.3})
print(result)
Аргументы
meta_graph_or_file Буфер протокола MetaGraphDef или имя файла (включая путь), содержащего MetaGraphDef.
clear_devices Следует ли очищать поле устройства для Operation или Tensor при импорте.
import_scope Необязательная string. Пространство имён, которое нужно добавить. Используется только при инициализации из буфера протокола.
**kwargs Необязательные именованные аргументы.
Возвращает
Объект saver, созданный из saver_def в MetaGraphDef, или None.

Возвращается значение None, если в MetaGraphDef нет переменных (то есть нечего восстанавливать).

Вызывает исключение
RuntimeError Если функция вызвана при включённом eager execution.

совместимость с eager execution

Экспорт и импорт метаграфов не поддерживаются. При включённом eager execution граф отсутствует.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/import_meta_graph

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API