Obtenga los elementos input_array y output_array para convertir el modelo al formato tflite

PD. Por favor, no me apuntes a convertir el modelo de Keras directamente a tflite ya que mi archivo .h5 no se convertiría a .tflite directamente. De alguna manera logré convertir mi archivo .h5 a .pb

He seguido este cuaderno de Jupyter para el reconocimiento facial con Keras. Luego model.h5 mi modelo en un archivo model.h5 , luego lo convertí en un gráfico congelado, model.pb usando esto .

Ahora quiero usar mi archivo tensorflow en Android. Para esto necesitaré tener Tensorflow Lite, que requiere que convierta mi modelo en un formato .tflite .

Para esto, estoy tratando de seguir las pautas oficiales para ello aquí . Como puede ver, requiere matrices input_array y output_array . ¿Cómo model.pb detalles de estas cosas de mi archivo model.pb ?

    input arrays y output arrays son las matrices que almacenan los tensores de entrada y salida respectivamente.

    Tienen la intención de informar al TFLiteConverter sobre los tensores de entrada y salida que se utilizarán en el momento de la inferencia.

    Para un modelo de Keras,

    El tensor de entrada es el tensor de posición de la primera capa.

     input_tensor = model.layers[0].input 

    El tensor de salida puede relacionarse con una función de activación.

     output_tensor = model.layers[ LAST_LAYER_INDEX ].output 

    Para un gráfico congelado,

     import tensorflow as tf gf = tf.GraphDef() m_file = open('model.pb','rb') gf.ParseFromString(m_file.read()) 

    Obtenemos los nombres de los nodos,

     for n in gf.node: print( n.name ) 

    Para obtener el tensor,

     tensor = n.op 

    El tensor de entrada puede ser un tensor de marcador de posición. El tensor de salida es el tensor que se ejecuta con session.run()

    Para la conversión, obtenemos,

     input_array =[ input_tensor ] output_array = [ output_tensor ]