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
)
Эта функция принимает в качестве входных данных MetaGraphDef протокол-буфер. Если аргумент представляет собой файл, содержащий MetaGraphDef протокол-буфер, функция создаёт протокол-буфер из содержимого файла. Затем функция добавляет все узлы из поля graph_def в текущий граф, восстанавливает все коллекции и возвращает сохраняемый объект, созданный из поля 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 xrange(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 xrange(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_def в MetaGraphDef или None. Значение None возвращается, если переменные отсутствуют в |
| Возбуждает | |
|---|---|
RuntimeError | Если вызвана с включённым режимом eager execution. |
Совместимость с режимом Eager
Экспорт/импорт мета-графов не поддерживается. Графа нет, когда включен режим eager execution.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/compat/v1/train/import_meta_graph