Spec-Zone.ru › TensorFlow 1.15

tf.estimator.WarmStartSettings

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

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

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

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

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

tf.compat.v1.estimator.WarmStartSettings, `tf.compat.v2.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/r1.15/api_docs/python/tf/estimator/WarmStartSettings

Spec-Zone.ru

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