class_docstr: Interpreter interface for running TensorFlow Lite models.
  
  Models obtained from `TfLiteConverter` can be run in Python with
  `Interpreter`.
  
  As an example, lets generate a simple Keras model and convert it to TFLite
  (`TfLiteConverter` also supports other input formats with `from_saved_model`
  and `from_concrete_function`)
  
  >>> x = np.array([[1.], [2.]])
  >>> y = np.array([[2.], [4.]])
  >>> model = tf.keras.models.Sequential([
  ...           tf.keras.layers.Dropout(0.2),
  ...           tf.keras.layers.Dense(units=1, input_shape=[1])
  ...         ])
  >>> model.compile(optimizer='sgd', loss='mean_squared_error')
  >>> model.fit(x, y, epochs=1)
  >>> converter = tf.lite.TFLiteConverter.from_keras_model(model)
  >>> tflite_model = converter.convert()
  
  `tflite_model` can be saved to a file and loaded later, or directly into the
  `Interpreter`. Since TensorFlow Lite pre-plans tensor allocations to optimize
  inference, the user needs to call `allocate_tensors()` before any inference.
  
  >>> interpreter = tf.lite.Interpreter(model_content=tflite_model)
  >>> interpreter.allocate_tensors()  # Needed before execution!
  
  Sample execution:
  
  >>> output = interpreter.get_output_details()[0]  # Model has single output.
  >>> input = interpreter.get_input_details()[0]  # Model has single input.
  >>> input_data = tf.constant(1., shape=[1, 1])
  >>> interpreter.set_tensor(input['index'], input_data)
  >>> interpreter.invoke()
  >>> interpreter.get_tensor(output['index']).shape
  (1, 1)
  
  Use `get_signature_runner()` for a more user-friendly inference API.
class_docstr_tok: ["Interpreter","interface","for","running","TensorFlow","Lite","models",".","Models","obtained","from","`","TfLiteConverter","`","can","be","run","in","Python","with","`","Interpreter","`",".","As","an","example",",","lets","generate","a","simple","Keras","model","and","convert","it","to","TFLite","(","`","TfLiteConverter","`","also","supports","other","input","formats","with","`","from_saved_model","`","and","`","from_concrete_function","`",")",">",">",">","x","=","np.array","(","[","[","1",".","]",",","[","2",".","]","]",")",">",">",">","y","=","np.array","(","[","[","2",".","]",",","[","4",".","]","]",")",">",">",">","model","=","tf.keras.models.Sequential","(","[","...","tf.keras.layers.Dropout","(","0.2",")",",","...","tf.keras.layers.Dense","(","units=1",",","input_shape=","[","1","]",")","...","]",")",">",">",">","model.compile","(","optimizer='sgd","'",",","loss='mean_squared_error","'",")",">",">",">","model.fit","(","x",",","y",",","epochs=1",")",">",">",">","converter","=","tf.lite.TFLiteConverter.from_keras_model","(","model",")",">",">",">","tflite_model","=","converter.convert","(",")","`","tflite_model","`","can","be","saved","to","a","file","and","loaded","later",",","or","directly","into","the","`","Interpreter","`",".","Since","TensorFlow","Lite","pre-plans","tensor","allocations","to","optimize","inference",",","the","user","needs","to","call","`","allocate_tensors","(",")","`","before","any","inference",".",">",">",">","interpreter","=","tf.lite.Interpreter","(","model_content=tflite_model",")",">",">",">","interpreter.allocate_tensors","(",")","#","Needed","before","execution","!","Sample","execution",":",">",">",">","output","=","interpreter.get_output_details","(",")","[","0","]","#","Model","has","single","output",".",">",">",">","input","=","interpreter.get_input_details","(",")","[","0","]","#","Model","has","single","input",".",">",">",">","input_data","=","tf.constant","(","1.",",","shape=","[","1",",","1","]",")",">",">",">","interpreter.set_tensor","(","input","[","'index","'","]",",","input_data",")",">",">",">","interpreter.invoke","(",")",">",">",">","interpreter.get_tensor","(","output","[","'index","'","]",")",".shape","(","1",",","1",")","Use","`","get_signature_runner","(",")","`","for","a","more","user-friendly","inference","API","."]
docstr: Gets tensor details for every tensor with valid tensor details.
  
  Tensors where required information about the tensor is not found are not
  added to the list. This includes temporary tensors without a name.
  
  Returns:
    A list of dictionaries containing tensor information.
code: def get_tensor_details(self):
      """Gets tensor details for every tensor with valid tensor details.
  
      Tensors where required information about the tensor is not found are not
      added to the list. This includes temporary tensors without a name.
  
      Returns:
        A list of dictionaries containing tensor information.
      """
      tensor_details = []
      for idx in range(self._interpreter.NumTensors(0)):
          try:
              tensor_details.append(
                  self._get_tensor_details(idx, subgraph_index=0)
              )
          except ValueError:
              pass
      return tensor_details
  
imports: import ctypes
  import enum
  import os
  import platform
  import sys
  import numpy
label_desc: Use image node_id 9 for calling the Interpreter obj's underlying member method code with example usage: obj.get_tensor_details() and returns: tensor_details