工具/软件:
我计划针对 AM62Ax 进行开发、现在我将运行模型分析器。
我尝试编译自定义模型。 我当前使用的模型是“face_detection_front_128_integer_quant.tflite",“,可、可从以下 URL 获取:
https://s3.ap-northeast-2.wasabisys.com/pinto-model-zoo/030_BlazeFace/resources.tar.gz
我已经检查了这个模型在 CPU 上工作正常。 我已经根据示例笔记本多次尝试编译它、但编译失败、并出现以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[3], line 1
----> 1 interpreter = tflite.Interpreter(model_path=tflite_model_path, experimental_delegates=tidl_delegate)
2 #interpreter = tflite.Interpreter(model_path=tflite_model_path)
File /usr/local/lib/python3.10/dist-packages/tflite_runtime/interpreter.py:489, in Interpreter.__init__(self, model_path, model_content, experimental_delegates, num_threads, experimental_op_resolver_type, experimental_preserve_all_tensors)
487 self._delegates = experimental_delegates
488 for delegate in self._delegates:
--> 489 self._interpreter.ModifyGraphWithDelegate(
490 delegate._get_native_delegate_pointer()) # pylint: disable=protected-access
491 #self._signature_defs = self.get_signature_list() #PC-- commented for now. Workaround. Needs to be added to interpreter_wrapper2
493 self._metrics = metrics.TFLiteMetrics()
ValueError: basic_string::_M_create
或
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
Cell In[6], line 1
----> 1 interpreter = tflite.Interpreter(model_path=tflite_model_path, experimental_delegates=tidl_delegate)
2 #interpreter = tflite.Interpreter(model_path=tflite_model_path)
File /usr/local/lib/python3.10/dist-packages/tflite_runtime/interpreter.py:489, in Interpreter.__init__(self, model_path, model_content, experimental_delegates, num_threads, experimental_op_resolver_type, experimental_preserve_all_tensors)
487 self._delegates = experimental_delegates
488 for delegate in self._delegates:
--> 489 self._interpreter.ModifyGraphWithDelegate(
490 delegate._get_native_delegate_pointer()) # pylint: disable=protected-access
491 #self._signature_defs = self.get_signature_list() #PC-- commented for now. Workaround. Needs to be added to interpreter_wrapper2
493 self._metrics = metrics.TFLiteMetrics()
MemoryError: std::bad_alloc
日志:e2e.ti.com/.../74862.custon_2D00_model_2D00_tfl_5F00_out.log
另一方面、我能够在 Ubuntu 22.04 上使用 EdgeAI-TIDLP-TOOLS 10_01 编译和运行该模型。
为什么将 EdgeAI 工具更改为较新的工具会使编译成功? (我认识到,模型分析器使用 EdgeAI-tools 09_02 或 10_00、因为是 SDK 版本。 是 9.2)
是否有办法在模型分析器上成功编译此模型?
Python 代码:
import sys
import time
import os
import cv2
import numpy as np
import tflite_runtime.interpreter as tflite
from utils import loggerWriter, plot_TI_performance_data, get_benchmark_output
from PIL import Image
import matplotlib.pyplot as plt
output_dir = 'face_detection_quant'
tflite_model_path = './face_detection_front_128_integer_quant.tflite'
debug_level = 0
num_bits = 8
accuracy = 1
compile_options = {
'tidl_tools_path' : os.environ['TIDL_TOOLS_PATH'],
'artifacts_folder' : output_dir,
'tensor_bits' : num_bits,
'accuracy_level' : accuracy,
'debug_level' : debug_level,
'advanced_options:calibration_frames' : 1,
'advanced_options:calibration_iterations' : 3,
'advanced_options:add_data_convert_ops' : 1,
}
os.makedirs(output_dir, exist_ok=True)
for root, dirs, files in os.walk(output_dir, topdown=False):
[os.remove(os.path.join(root, f)) for f in files]
[os.rmdir(os.path.join(root, d)) for d in dirs]
tidl_delegate = [tflite.load_delegate(os.path.join(os.environ['TIDL_TOOLS_PATH'], 'tidl_model_import_tflite.so'), compile_options)]
interpreter = tflite.Interpreter(model_path=tflite_model_path, experimental_delegates=tidl_delegate)
谢谢
Fumiya