tf.raw_ops.LoadAndRemapMatrix
Загружает 2-мерную (матрицу) Tensor с именем old_tensor_name из контрольной точки
tf.raw_ops.LoadAndRemapMatrix(
ckpt_path,
old_tensor_name,
row_remapping,
col_remapping,
initializing_values,
num_rows,
num_cols,
max_rows_in_memory=-1,
name=None
)
по адресу ckpt_path и, возможно, переупорядочивает её строки и столбцы с использованием указанных преобразований.
Большинству пользователей следует использовать один из оберток-инициализаторов (например, tf.contrib.framework.load_and_remap_matrix_initializer), а не эту функцию напрямую.
Преобразования — это одномерные тензоры со следующими свойствами:
-
row_remappingдолжно содержать ровноnum_rowsэлементов. Строкаiвыходной матрицы будет инициализирована из строки, соответствующей индексуrow_remapping[i]в старойTensorиз контрольной точки. -
col_remappingдолжно содержать либо 0 элементов (что указывает на то, что переупорядочивание столбцов не требуется), либоnum_colsэлементов. Если указано, столбецjвыходной матрицы будет инициализирован из столбца, соответствующего индексуcol_remapping[j]в старойTensorиз контрольной точки. - Значение -1 в любом из преобразований обозначает «отсутствующий» элемент. В этом случае значения из тензора
initializing_valuesбудут использованы для заполнения этой отсутствующей строки или столбца. Если вrow_remappingестьrотсутствующих элементов, а вcol_remappingестьcотсутствующих элементов, то должно выполняться следующее условие:
(r * num_cols) + (c * num_rows) - (r * c) == len(initializing_values)
Массивы преобразований можно создать с помощью операции GenerateVocabRemapping.
Например, при row_remapping = [1, 0, -1], col_remapping = [0, 2, -1], initializing_values = [0.5, -0.5, 0.25, -0.25, 42] и w(i, j) представляющем значение из строки i, столбца j старого тензора в контрольной точке, выходная матрица будет выглядеть следующим образом:
[[w(1, 0), w(1, 2), 0.5], [w(0, 0), w(0, 2), -0.5], [0.25, -0.25, 42]]
| Аргументы | |
|---|---|
ckpt_path | Tensor типа string. Путь к контрольной точке TensorFlow (версия 2, TensorBundle), из которой будет загружена старая матрица Tensor. |
old_tensor_name | Tensor типа string. Имя 2-мерной Tensor для загрузки из контрольной точки. |
row_remapping | Tensor типа int64. Целочисленный Tensor преобразований строк (обычно создается с помощью generate_vocab_remapping). Даже если переупорядочивание строк не требуется, это всё равно должен быть тензор со значениями индексов (например, [0, 1, 2, ...]), или смещенный тензор со значениями индексов (например, [8, 9, 10, ...], для разбиения Variables). |
col_remapping | Tensor типа int64. Целочисленный Tensor преобразований столбцов (обычно создается с помощью generate_vocab_remapping). Может быть тензором размера 0, если нужно выполнить только преобразование строк (например, порядок столбцов не изменяется). |
initializing_values | Tensor типа float32. Вещественный Tensor, содержащий значения для заполнения ячеек выходной матрицы, которые не загружаются из контрольной точки. Длина должна быть точно такой же, как количество отсутствующих/новых ячеек. |
num_rows | int, являющийся >= 0. Количество строк (длина первого измерения) в выходной матрице. |
num_cols | int, являющийся >= 1. Количество столбцов (длина второго измерения) в выходной матрице. |
max_rows_in_memory | Необязательный int. По умолчанию равен -1. Максимальное количество строк для загрузки из контрольной точки за раз. Если меньше или равно 0, вся матрица загрузится в память. Установка этого аргумента обменивает увеличение дисковых чтений на меньшее использование памяти. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
Tensor типа float32. |
© 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/api_docs/python/tf/raw_ops/LoadAndRemapMatrix