Spec-Zone.ru › TensorFlow 1.15

tf.contrib.framework.load_and_remap_matrix_initializer

Возвращает инициализатор переменной для загрузки и переиндексации тензора 2-D (матрица).

tf.contrib.framework.load_and_remap_matrix_initializer(
    ckpt_path, old_tensor_name, new_row_vocab_size, new_col_vocab_size,
    old_row_vocab_size=-1, old_row_vocab_file=None, new_row_vocab_file=None,
    old_col_vocab_file=None, new_col_vocab_file=None, num_row_oov_buckets=0,
    num_col_oov_buckets=0, initializer=None, max_rows_in_memory=-1
)

Возвращаемый инициализатор загружает тензор 2-D (матрицу) Tensor с именем old_tensor_name из контрольной точки по адресу ckpt_path. Он будет переупорядочивать строки/столбцы в соответствии с указанными файлами словаря и добавлять дополнительные строки/столбцы вне словаря в соответствии с количеством ведер OOV.

Формат файла по адресу {old,new}_{row,col}_vocab_file должен быть текстовым файлом, где каждая строка содержит одно сущность из словаря. Пусть функция line_of(f, "x") возвращает нулево-индексированный номер строки сущности "x" в файле f, а функция entity_at(f, i) возвращает сущность в строке i файла f. Тогда строка i новой выходной матрицы будет взята из строки line_of(old_row_vocab_file, entity_at(new_row_vocab_file, i)) старой матрицы. Если какая-либо сущность в new_row_vocab_file не найдена в old_row_vocab_file, эта строка считается "отсутствующей" строкой, и её значения будут инициализированы с помощью аргумента initializer. Та же логика применяется и к столбцам.

Например, предположим, что:

  • old_row_vocab_file содержит "mercury\nvenus\nmars"
  • new_row_vocab_file содержит "venus\njupiter\nmercury"
  • old_col_vocab_file содержит "good\nbetter\nbest"
  • new_col_vocab_file содержит "good\nbest\nfantastic"
  • initializer возвращает натуральные числа [1, 2, 3, 4, ...]
  • w(i, j) представляет значение из строки i, столбца j старой матрицы

Тогда новая выходная матрица будет выглядеть так:

[[w(1, 0), w(1, 2), 1], [2, 3, 4], [w(0, 0), w(0, 2), 5]]

Если мы дополнительно укажем, что:

  • num_row_oov_buckets == 2
  • num_col_oov_buckets == 1

Тогда новая выходная матрица будет выглядеть так:

[[w(1, 0), w(1, 2), 1, 12], [2, 3, 4, 13], [w(0, 0), w(0, 2), 5, 14], [6, 7, 8, 15], [9, 10, 11, 16]]

Если {old,new}_row_vocab_file равны None, мы предполагаем, что файлы словаря строк старой и новой матрицы совпадают, и переиндексация строк не выполняется. Если {old,new}_col_vocab_file равны None, мы предполагаем, что файлы словаря столбцов старой и новой матрицы совпадают, и переиндексация столбцов не выполняется.

Возвращаемый инициализатор поддерживает только разбиение на части (div-partitioning) по оси строк. Он не поддерживает разбиение на части по оси столбцов (так как это не часто используется на практике) или разбиение на части по остатку (mod-partitioning).

Примечание: При использовании для начальной загрузки переменных код клиента должен использовать tf.lookup.index_table_from_tensor() как в contrib/layers/python/layers/feature_column.py, а не tf.feature_to_id(), чтобы убедиться, что лежащие в основе таблицы поиска совпадают.
Аргументы
ckpt_path Путь к контрольной точке TensorFlow (версия 2, TensorBundle) из которой будет загружена старая матрица Tensor.
old_tensor_name Имя загружаемой 2-D Tensor из контрольной точки.
new_row_vocab_size Значение, определяющее количество элементов в new_row_vocab_file. Если переиндексация строк не требуется (файл словаря строк не предоставлен), это значение должно быть равно количеству строк, загружаемых из старой матрицы (теоретически может быть меньше, чем общее количество строк в старой матрице).
new_col_vocab_size Значение, определяющее количество элементов в new_col_vocab_file. Если переиндексация столбцов не требуется (файл словаря столбцов не предоставлен), это значение должно быть равно количеству столбцов в старой матрице.
old_row_vocab_size Количество элементов для рассмотрения в старом словаре. При значении по умолчанию -1 будет использоваться весь старый файл словаря строк. В противном случае для переиндексации будут рассмотрены только первые old_row_vocab_size элементов. Должно быть меньше длины old_row_vocab_file. ПРИМЕЧАНИЕ: эквивалентный old_col_vocab_size для классов не предоставляется.
old_row_vocab_file Скалярный Tensor типа string содержащий путь к файлу словаря старых строк. Может быть None, что означает отсутствие переиндексации по оси строк.
new_row_vocab_file Скалярный Tensor типа string содержащий путь к файлу словаря новых строк. Может быть None, что означает отсутствие переиндексации по оси строк.
old_col_vocab_file Скалярный Tensor типа string содержащий путь к файлу словаря старых столбцов. Может быть None, что означает отсутствие переиндексации по оси столбцов.
new_col_vocab_file Скалярный Tensor типа string содержащий путь к файлу словаря новых столбцов. Может быть None, что означает отсутствие переиндексации по оси столбцов.
num_row_oov_buckets Значение, определяющее количество строк вне словаря для добавления. Должно быть >= 0.
num_col_oov_buckets Значение, определяющее количество столбцов вне словаря для добавления. Должно быть >= 0.
initializer Функция инициализации для инициализации отсутствующих значений. Принимает 1-мерный тензор в качестве аргумента для указания формы возвращаемого тензора. Если None, по умолчанию используется zeros_initializer().
max_rows_in_memory Значение, определяющее максимальное количество строк для загрузки из контрольной точки за один раз. Если меньше или равно 0, вся матрица будет загружена в память. Установка этого аргумента позволяет обменять увеличение дисковых чтений на меньшее использование памяти.
Возвращаемое значение
Функция инициализации переменной, которая должна быть использована для инициализации (возможно, разбиеной на части) Variable с полной формой [new_row_vocab_size + num_row_oov_buckets, new_col_vocab_size + num_col_oov_buckets].
Исключения
TypeError Если initializer указано, но не является вызываемой функцией.

© 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/contrib/framework/load_and_remap_matrix_initializer

Spec-Zone.ru

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