當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。