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). Может быть нулевым Tensor тензором, если требуется только переназначение строк (например, порядок столбцов остаётся таким же). |
initializing_values | Tensor типа float32. Вещественный Tensor содержащий значения для заполнения ячеек в выходной матрице, которые не загружаются из контрольной точки. Длина должна быть точно такой же, как количество отсутствующих/новых ячеек. |
num_rows | int, который является >= 0. Количество строк (длина первого измерения) в выходной матрице. |
num_cols | int, который является >= 1. Количество столбцов (длина второго измерения) в выходной матрице. |
max_rows_in_memory | Необязательный int. По умолчанию -1. Максимальное количество строк для загрузки из контрольной точки за раз. Если меньше или равно 0, вся матрица будет загружена в память. Установка этого аргумента позволяет снизить использование памяти в обмен на увеличение чтения с диска. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor типа float32. |
© 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/r2.4/api_docs/python/tf/raw_ops/LoadAndRemapMatrix