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 | A Tensor типа string. Путь к контрольной точке TensorFlow (версия 2, TensorBundle) из которой будет загружена старая матрица Tensor. |
old_tensor_name | A Tensor типа string. Имя 2-мерного Tensor для загрузки из контрольной точки. |
row_remapping | A Tensor типа int64. Целочисленный Tensor переназначений строк (обычно создается функцией generate_vocab_remapping). Даже если переназначение строк не требуется, это должен быть тензор с индексами (например, [0, 1, 2, ...]), или сдвинутый тензор с индексами (например, [8, 9, 10, ...], для разбиения Variables). |
col_remapping | A Tensor типа int64. Целочисленный Tensor переназначений столбцов (обычно создается функцией generate_vocab_remapping). Может быть тензором размера 0, если нужно выполнить только переназначение строк (например, порядок столбцов остается неизменным). |
initializing_values | A Tensor типа float32. Вещественный Tensor тензор, содержащий значения для заполнения ячеек выходной матрицы, которые не загружаются из контрольной точки. Длина должна быть ровно такой же, как количество отсутствующих/новых ячеек. |
num_rows | An int, равный >= 0. Количество строк (размер первого измерения) в выходной матрице. |
num_cols | An int, равный >= 1. Количество столбцов (размер второго измерения) в выходной матрице. |
max_rows_in_memory | Необязательный int. По умолчанию -1. Максимальное количество строк для загрузки из контрольной точки одновременно. Если значение меньше или равно 0, вся матрица будет загружена в память. Установка этого аргумента обменивает увеличение операций чтения с диска на уменьшение использования памяти. |
name | Имя операции (необязательно). |
| Возвращает | |
|---|---|
A 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/versions/r2.9/api_docs/python/tf/raw_ops/LoadAndRemapMatrix