tensorflow - como guardar variables en labview
¿Cómo encuentro los nombres y valores de las variables que se guardan en un punto de control? (4)
Agregando más detalles de parámetros a print_tensors_in_checkpoint_file
file_name
: no es un archivo físico, solo el prefijo de los nombres de archivo
Si no se proporciona tensor_name
, imprime los nombres y las formas del tensor en el archivo de punto de control. Si se proporciona tensor_name
, imprime el contenido del tensor. ( inspect_checkpoint.py )
Si all_tensor_names
es True
, imprime todos los nombres de tensor
Si all_tensor
es ''Verdadero'', imprime todos los nombres de tensor y el contenido correspondiente.
NB all_tensor
y all_tensor_names
tensor_name
Quiero ver las variables que se guardan en un punto de control TensorFlow junto con sus valores. ¿Cómo puedo encontrar los nombres de las variables que se guardan en un punto de control TensorFlow?
tf.train.NewCheckpointReader
que se explica here . Pero, no se encuentra en la documentación de TensorFlow. ¿Hay alguna otra manera?
Algunos detalles más.
Si su modelo se guarda en formato V2, por ejemplo, si tenemos los siguientes archivos en el directorio /my/dir/
model-10000.data-00000-of-00001
model-10000.index
model-10000.meta
entonces el parámetro file_name
solo debe ser el prefijo, es decir
print_tensors_in_checkpoint_file(file_name=''/my/dir/model_10000'', tensor_name='''', all_tensors=True)
Vea https://github.com/tensorflow/tensorflow/issues/7696 para una discusión.
Puede utilizar la herramienta inspect_checkpoint.py
.
Por ejemplo, si almacenó el punto de control en el directorio actual, puede imprimir las variables y sus valores de la siguiente manera:
import tensorflow as tf
from tensorflow.python.tools.inspect_checkpoint import print_tensors_in_checkpoint_file
latest_ckp = tf.train.latest_checkpoint(''./'')
print_tensors_in_checkpoint_file(latest_ckp, all_tensors=True, tensor_name='''')
Ejemplo de uso:
from tensorflow.python.tools.inspect_checkpoint import print_tensors_in_checkpoint_file
import os
checkpoint_path = os.path.join(model_dir, "model.ckpt")
# List ALL tensors example output: v0/Adam (DT_FLOAT) [3,3,1,80]
print_tensors_in_checkpoint_file(file_name=checkpoint_path, tensor_name='''')
# List contents of v0 tensor.
# Example output: tensor_name: v0 [[[[ 9.27958265e-02 7.40226209e-02 4.52989563e-02 3.15700471e-02
print_tensors_in_checkpoint_file(file_name=checkpoint_path, tensor_name=''v0'')
# List contents of v1 tensor.
print_tensors_in_checkpoint_file(file_name=checkpoint_path, tensor_name=''v1'')
Actualización: el argumento all_tensors
se agregó a print_tensors_in_checkpoint_file
desde Tensorflow 0.12.0-rc0, por lo que es posible que deba agregar all_tensors=False
o all_tensors=True
si es necesario.
Método alternativo:
from tensorflow.python import pywrap_tensorflow
import os
checkpoint_path = os.path.join(model_dir, "model.ckpt")
reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path)
var_to_shape_map = reader.get_variable_to_shape_map()
for key in var_to_shape_map:
print("tensor_name: ", key)
print(reader.get_tensor(key)) # Remove this is you want to print only variable names
Espero eso ayude.