当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.lite.Interpreter.tensor用法及代码示例


用法

tensor(
    tensor_index
)

参数

  • tensor_index 要获取的张量的张量 index 。该值可以从get_output_details 中的'index' 字段中获取。

返回

  • 一个函数,它可以在任何时候返回一个指向内部 TFLite 张量状态的新 numpy 数组。永远持有函数是安全的,但永远持有 numpy 数组并不安全。

返回提供当前张量缓冲区的 numpy 视图的函数。

这允许在没有副本的情况下读取和写入该张量。这更接近于 C++ 解释器类接口的tensor() 成员,因此得名。注意不要通过调用 allocate_tensors()invoke() 来保留这些输出引用。此函数不能用于读取中间结果。

用法:

interpreter.allocate_tensors()
input = interpreter.tensor(interpreter.get_input_details()[0]["index"])
output = interpreter.tensor(interpreter.get_output_details()[0]["index"])
for i in range(10):
  input().fill(3.)
  interpreter.invoke()
  print("inference %s" % output())

请注意此函数如何避免直接创建一个 numpy 数组。这是因为重要的是不要将数据的实际 numpy 视图保存得比必要的时间长。如果这样做,则无法再调用解释器,因为解释器可能会调整大小并使引用的张量无效。 NumPy API 不允许底层缓冲区的任何可变性。

错误的:

input = interpreter.tensor(interpreter.get_input_details()[0]["index"])()
output = interpreter.tensor(interpreter.get_output_details()[0]["index"])()
interpreter.allocate_tensors()  # This will throw RuntimeError
for i in range(10):
  input.fill(3.)
  interpreter.invoke()  # this will throw RuntimeError since input,output

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.lite.Interpreter.tensor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。