Which Khadas SBC do you use?
VIM3
Which system do you use? Android, Ubuntu, OOWOW or others?
UBUNTU
Which version of system do you use? Khadas official images, self built images, or others?
vim3-ubuntu-20.04-server-linux-4.9-fenix-1.5-230425-emmc, official images
Please describe your issue below:
我们在之前的版本中VIM3_Ubuntu-server-focal_Linux-4.9_arm64_EMMC_V1.0.7-210625中模型都适配好了,一切正常。但是在升级到vim3-ubuntu-20.04-server-linux-4.9-fenix-1.5-230425-emmc,发现使用新版本的模型转换工具pegasus转出来的模型输出都是错误的,请问这会是什么导致。
Post a console log of your issue below:
旧版本转换脚本:
#!/bin/bash
NAME=source_vim3
ACUITY_PATH=../bin/
convert_caffe=${ACUITY_PATH}convertcaffe
convert_tf=${ACUITY_PATH}convertensorflow
convert_tflite=${ACUITY_PATH}convertflit
convert_darknet=${ACUITY_PATH}convertdarknet
convert_onnx=${ACUITY_PATH}convertonnx
convert_keras=${ACUITY_PATH}convertkeras
convert_pytorch=${ACUITY_PATH}convertpytorch
$convert_onnx \
--onnx-model source.onnx \
--net-output ${NAME}.json \
--data-output ${NAME}.data
tensorzone=${ACUITY_PATH}tensorzonex
#dynamic_fixed_point-i8 asymmetric_affine-u8 dynamic_fixed_point-i16(s905d3 not support point-i16)
$tensorzone \
--action quantization \
--source text \
--source-file dataset.txt \
--channel-mean-value '0 0 0 255' \
--reorder-channel '2 1 0' \
--model-input ${NAME}.json \
--model-data ${NAME}.data \
--model-quantize ${NAME}.quantize \
--quantized-dtype asymmetric_affine-u8 \
--quantized-rebuild \
# --batch-size 2 \
# --epochs 5
#Note: default batch-size(100),epochs(1) ,the numbers of pictures in data/validation_tf.txt must equal to batch-size*epochs,if you set the epochs >1
export_ovxlib=${ACUITY_PATH}ovxgenerator
$export_ovxlib \
--model-input ${NAME}.json \
--data-input ${NAME}.data \
--reorder-channel '2 1 0' \
--channel-mean-value '0 0 0 255' \
--export-dtype quantized \
--model-quantize ${NAME}.quantize \
--optimize VIPNANOQI_PID0X88 \
--viv-sdk ${ACUITY_PATH}vcmdtools \
--pack-nbg-unify \
rm *.h *.c .project .cproject *.vcxproj *.lib BUILD *.linux *.data *.quantize *.json
mv ../*_nbg_unify nbg_unify_${NAME}
cd nbg_unify_${NAME}
mv network_binary.nb ${NAME}.nb
新版本转换:
#!/bin/bash
NAME=source
ACUITY_PATH=../bin/
pegasus=${ACUITY_PATH}pegasus
if [ ! -e "$pegasus" ]; then
pegasus=${ACUITY_PATH}pegasus.py
fi
$pegasus import onnx\
--model source.onnx \
--output-model ${NAME}.json \
--input-dtype-list 'uint8' \
--inputs 'input_0' \
--input-size-list '384,512,3' \
--output-data ${NAME}.data
$pegasus generate inputmeta \
--model ${NAME}.json \
--input-meta-output ${NAME}_inputmeta.yml \
--channel-mean-value "0 0 0 255" \
--source-file dataset.txt
$pegasus quantize \
--quantizer asymmetric_affine \
--qtype uint8 \
--with-input-meta ${NAME}_inputmeta.yml \
--model ${NAME}.json \
--model-data ${NAME}.data \
--model-quantize ${NAME}.quantize \
--rebuild
$pegasus export ovxlib\
--model ${NAME}.json \
--model-data ${NAME}.data \
--model-quantize ${NAME}.quantize \
--with-input-meta ${NAME}_inputmeta.yml \
--optimize VIPNANOQI_PID0X88 \
--viv-sdk ${ACUITY_PATH}vcmdtools \
--pack-nbg-unify
rm *.h *.c .project .cproject *.vcxproj *.lib BUILD *.linux *.data *.quantize *.json
mv ../*_nbg_unify nbg_unify_${NAME}
cd nbg_unify_${NAME}
mv network_binary.nb ${NAME}.nb