tf.estimator.WarmStartSettings
| Просмотреть исходный код на GitHub |
Настройки для запуска с тёплым началом в tf.estimator.Estimators.
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 | [Необязательно] Один из следующих вариантов:
По умолчанию |
var_name_to_vocab_info | [Необязательно] Словарь имён переменных (строки) к tf.estimator.VocabInfo. Имена переменных должны быть "полными" переменными, а не именами разделов. Если не указано явно, переменная предполагается без (изменений в) словаря. |
var_name_to_prev_var_name | [Необязательно] Словарь имён переменных (строки) к имени предварительно обученной переменной в ckpt_to_initialize_from. Если не указано явно, имя переменной предполагается одинаковым между предыдущей контрольной точкой и текущей моделью. Обратите внимание, что это не влияет на набор переменных, которые запускаются с тёплым началом, и управляет только сопоставлением имён (используйте vars_to_warm_start для управления тем, какие переменные запускать с тёплым началом). |
© 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/versions/r2.9/api_docs/python/tf/estimator/WarmStartSettings