Я пытался квантовать обученную модель, используя API обнаружения объектов, и она успешно работала после документа Google. Чтобы преобразовать замороженный график в квантованный файл UINT8 tflite, я использовал команду
tflite_convert \
--output_file="${OUTPUT_DIR}/output_tflite_graph.tflite" \
--graph_def_file="${OUTPUT_DIR}/tflite_graph.pb" \
--inference_type=QUANTIZED_UINT8 \
--input_arrays="${INPUT_TENSORS}" \
--output_arrays="${OUTPUT_TENSORS}" \
--mean_values=128 \
--std_dev_values=128 \
--input_shapes=1,300,300,3 \
--change_concat_input_ranges=false \
--allow_nudging_weights_to_use_fast_gemm_kernel=true \
--allow_custom_ops
При квантовании я установил std_dev_values равным 128, а std_dev_values равным 128. Согласно другому вопросу здесь: Понимание tf.contrib. Параметры квантования lite.TFLiteConverter Этот диапазон соответствует диапазону значений входного изображения [-1,1]
Однако мой вывод будет работать только тогда, когда я использую значение входного изображения в диапазоне [0-255] ! Я снова запутался в том, что я должен установить для std_dev_values и mean_values для других обстоятельств.
Вот мой проект и код вывода: https://github.com/zye1996/edgetpu_ssd_lpr
Я подозреваю, что API обнаружения объектов имеет предварительную обработку для масштабирования входных данных, но я не могу найти ссылки и не знаю, что вызывает конфликт. Пожалуйста, помогите!