Spec-Zone.ru › TensorFlow 2.3

tf.estimator.WarmStartSettings

Просмотреть исходный код на GitHub

Настройки для теплого старта в tf.estimator.Estimators.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.estimator.WarmStartSettings

tf.estimator.WarmStartSettings(
    ckpt_to_initialize_from, vars_to_warm_start='.*', var_name_to_vocab_info=None,
    var_name_to_prev_var_name=None
)

Пример использования с предопределённым tf.estimator.DNNEstimator:

emb_vocab_file = tf.feature_column.embedding_column(
    tf.feature_column.categorical_column_with_vocabulary_file(
        "sc_vocab_file", "new_vocab.txt", vocab_size=100),
    dimension=8)
emb_vocab_list = tf.feature_column.embedding_column(
    tf.feature_column.categorical_column_with_vocabulary_list(
        "sc_vocab_list", vocabulary_list=["a", "b"]),
    dimension=8)
estimator = tf.estimator.DNNClassifier(
  hidden_units=[128, 64], feature_columns=[emb_vocab_file, emb_vocab_list],
  warm_start_from=ws)

где ws можно определить как:

Теплый запуск всех весов в модели (слой ввода и скрытые веса). Можно указать либо каталог, либо конкретный контрольный пункт (в первом случае будет использоваться последний контрольный пункт):

ws = WarmStartSettings(ckpt_to_initialize_from="/tmp")
ws = WarmStartSettings(ckpt_to_initialize_from="/tmp/model-1000")

Теплый запуск только вложений (слой ввода):

ws = WarmStartSettings(ckpt_to_initialize_from="/tmp",
                       vars_to_warm_start=".*input_layer.*")

Теплый запуск всех весов, но параметров вложений, соответствующих sc_vocab_file имеет другой словарь, чем тот, который используется в текущей модели:

vocab_info = tf.estimator.VocabInfo(
    new_vocab=sc_vocab_file.vocabulary_file,
    new_vocab_size=sc_vocab_file.vocabulary_size,
    num_oov_buckets=sc_vocab_file.num_oov_buckets,
    old_vocab="old_vocab.txt"
)
ws = WarmStartSettings(
    ckpt_to_initialize_from="/tmp",
    var_name_to_vocab_info={
        "input_layer/sc_vocab_file_embedding/embedding_weights": vocab_info
    })

Теплый запуск только sc_vocab_file вложений (и никаких других переменных), которые имеют другой словарь, чем тот, который используется в текущей модели:

vocab_info = tf.estimator.VocabInfo(
    new_vocab=sc_vocab_file.vocabulary_file,
    new_vocab_size=sc_vocab_file.vocabulary_size,
    num_oov_buckets=sc_vocab_file.num_oov_buckets,
    old_vocab="old_vocab.txt"
)
ws = WarmStartSettings(
    ckpt_to_initialize_from="/tmp",
    vars_to_warm_start=None,
    var_name_to_vocab_info={
        "input_layer/sc_vocab_file_embedding/embedding_weights": vocab_info
    })

Теплый запуск всех весов, но параметров, соответствующих sc_vocab_file имеют другой словарь, чем тот, который используется в текущем контрольном пункте, и только 100 из этих элементов были использованы:

vocab_info = tf.estimator.VocabInfo(
    new_vocab=sc_vocab_file.vocabulary_file,
    new_vocab_size=sc_vocab_file.vocabulary_size,
    num_oov_buckets=sc_vocab_file.num_oov_buckets,
    old_vocab="old_vocab.txt",
    old_vocab_size=100
)
ws = WarmStartSettings(
    ckpt_to_initialize_from="/tmp",
    var_name_to_vocab_info={
        "input_layer/sc_vocab_file_embedding/embedding_weights": vocab_info
    })

Теплый запуск всех весов, но параметров, соответствующих sc_vocab_file имеют другой словарь, чем тот, который используется в текущем контрольном пункте, и параметров, соответствующих sc_vocab_list имеют другое имя, чем в текущем контрольном пункте:

vocab_info = tf.estimator.VocabInfo(
    new_vocab=sc_vocab_file.vocabulary_file,
    new_vocab_size=sc_vocab_file.vocabulary_size,
    num_oov_buckets=sc_vocab_file.num_oov_buckets,
    old_vocab="old_vocab.txt",
    old_vocab_size=100
)
ws = WarmStartSettings(
    ckpt_to_initialize_from="/tmp",
    var_name_to_vocab_info={
        "input_layer/sc_vocab_file_embedding/embedding_weights": vocab_info
    },
    var_name_to_prev_var_name={
        "input_layer/sc_vocab_list_embedding/embedding_weights":
            "old_tensor_name"
    })

Теплый запуск всех обучаемых переменных:

ws = WarmStartSettings(ckpt_to_initialize_from="/tmp",
                       vars_to_warm_start=".*")

Теплый запуск всех переменных (включая не обучаемые):

ws = WarmStartSettings(ckpt_to_initialize_from="/tmp",
                       vars_to_warm_start=[".*"])

Теплый запуск не обучаемых переменных "v1", "v1/Momentum" и "v2", но не "v2/momentum":

ws = WarmStartSettings(ckpt_to_initialize_from="/tmp",
                       vars_to_warm_start=["v1", "v2[^/]"])
Атрибуты
ckpt_to_initialize_from [Обязательно] Строка, указывающая каталог с файлом(ами) контрольного пункта или путь к контрольному пункту, с которого нужно выполнить теплый запуск параметров модели.
vars_to_warm_start [Необязательно] Одно из следующего:
  • Регулярное выражение (строка), которое захватывает переменные, которые нужно запустить с теплым запуском (см. tf.compat.v1.get_collection). Это выражение будет учитывать только переменные в коллекции TRAINABLE_VARIABLES — если вам нужно запустить не обучаемые переменные (например, накопители оптимизатора или статистику пакетной нормализации), используйте приведенный ниже вариант.
  • Список строк, каждая из которых является регулярным выражением, предоставляемым tf.compat.v1.get_collection с GLOBAL_VARIABLES (см. tf.compat.v1.get_collection). По соображениям обратной совместимости, это отдельный тип аргумента со строкой.
  • Список переменных для теплого запуска. Если у вас нет доступа к объектам Variable в месте вызова, используйте вышеупомянутый вариант.
  • None, в этом случае будут запущены только обучаемые переменные, указанные в var_name_to_vocab_info.

По умолчанию '.*', что запускает теплый запуск всех переменных в коллекции TRAINABLE_VARIABLES. Обратите внимание, что это исключает переменные, такие как накопители и подвижные статистики из пакетной нормализации.

var_name_to_vocab_info [Необязательно] Словарь имён переменных (строки) к tf.estimator.VocabInfo. Имена переменных должны быть «полными» переменными, а не именами разделов. Если явно не указано, предполагается, что переменная не имеет (изменений в) словаре.
var_name_to_prev_var_name [Необязательно] Словарь имён переменных (строки) к имени предварительно обученной переменной в ckpt_to_initialize_from. Если явно не указано, предполагается, что имя переменной одинаково между предыдущим контрольным пунктом и текущей моделью. Обратите внимание, что это не влияет на набор переменных, которые запускаются с теплым запуском, и управляет только сопоставлением имён (используйте vars_to_warm_start для управления тем, какие переменные запускать с теплым запуском).

© 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/estimator/WarmStartSettings

Spec-Zone.ru

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