Loads a 2-D (matrix) Tensor with name old_tensor_name from the checkpoint
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
)
at ckpt_path and potentially reorders its rows and columns using the
specified remappings.
Most users should use one of the wrapper initializers (such as
tf.contrib.framework.load_and_remap_matrix_initializer) instead of this
function directly.
The remappings are 1-D tensors with the following properties:
row_remappingmust have exactlynum_rowsentries. Rowiof the output matrix will be initialized from the row corresponding to indexrow_remapping[i]in the oldTensorfrom the checkpoint.col_remappingmust have either 0 entries (indicating that no column reordering is needed) ornum_colsentries. If specified, columnjof the output matrix will be initialized from the column corresponding to indexcol_remapping[j]in the oldTensorfrom the checkpoint.- A value of -1 in either of the remappings signifies a "missing" entry. In that
case, values from the
initializing_valuestensor will be used to fill that missing row or column. Ifrow_remappinghasrmissing entries andcol_remappinghascmissing entries, then the following condition must be true:
(r * num_cols) + (c * num_rows) - (r * c) == len(initializing_values)
The remapping tensors can be generated using the GenerateVocabRemapping op.
As an example, with row_remapping = [1, 0, -1], col_remapping = [0, 2, -1], initializing_values = [0.5, -0.5, 0.25, -0.25, 42], and w(i, j) representing the value from row i, column j of the old tensor in the checkpoint, the output matrix will look like the following:
[[w(1, 0), w(1, 2), 0.5], [w(0, 0), w(0, 2), -0.5], [0.25, -0.25, 42]]
Args | |
|---|---|
ckpt_path
|
A Tensor of type string.
Path to the TensorFlow checkpoint (version 2, TensorBundle) from
which the old matrix Tensor will be loaded.
|
old_tensor_name
|
A Tensor of type string.
Name of the 2-D Tensor to load from checkpoint.
|
row_remapping
|
A Tensor of type int64.
An int Tensor of row remappings (generally created by
generate_vocab_remapping). Even if no row remapping is needed, this must
still be an index-valued Tensor (e.g. [0, 1, 2, ...]), or a shifted
index-valued Tensor (e.g. [8, 9, 10, ...], for partitioned Variables).
|
col_remapping
|
A Tensor of type int64.
An int Tensor of column remappings (generally created by
generate_vocab_remapping). May be a size-0 Tensor if only row remapping
is to be done (e.g. column ordering is the same).
|
initializing_values
|
A Tensor of type float32.
A float Tensor containing values to fill in for cells
in the output matrix that are not loaded from the checkpoint. Length must be
exactly the same as the number of missing / new cells.
|
num_rows
|
An int that is >= 0.
Number of rows (length of the 1st dimension) in the output matrix.
|
num_cols
|
An int that is >= 1.
Number of columns (length of the 2nd dimension) in the output matrix.
|
max_rows_in_memory
|
An optional int. Defaults to -1.
The maximum number of rows to load from the checkpoint at
once. If less than or equal to 0, the entire matrix will be loaded into
memory. Setting this arg trades increased disk reads for lower memory usage.
|
name
|
A name for the operation (optional). |
Returns | |
|---|---|
A Tensor of type float32.
|