heaven7
December 12, 2020, 1:59am
1
./bin/tensorzonex --action quantization
–quantized-dtype asymmetric_affine-u8
–channel-mean-value ‘128 128 128 1’
–source text --source-file dataset.txt
–model-input xxx.json – model-data xxx.data
–quantized-rebuild
文档上说在执行模型量化时, 需要提供量化的图片路径, 而且建议200张。这个图片是不是来自模型训练的数据集呢? 是否任意一张图片就可以?
还有。我看到demo的dataset 内容是
./data/space_shuttle_224.jpg, 813
813是什么意思呢?
Frank
December 12, 2020, 2:02am
2
@heaven7
可以不是训练集,但是图片的分辨率要与你的模型对应
heaven7:
813是什么意思呢?
默认的模型里面是一个1001个类的分类,这里的813是值模型的第814个分类,对应的就是图片的 space_shuttle
heaven7
December 12, 2020, 2:03am
3
Frank
December 12, 2020, 2:25am
4
@heaven7 我还没有做过姿态识别的,你们姿态识别是2D的姿态识别,还是3D的姿态识别,你们数据集是如何分类的
heaven7
December 12, 2020, 2:33am
5
2D识别。现在是用的google现成的posenet 模型。
Frank
December 12, 2020, 2:33am
6
@heaven7 那你这里可以先不设置结果,只放图片试试看.
heaven7
December 12, 2020, 2:42am
7
好的, 提供50张 和200张图片会有什么不同呢?
Frank
December 12, 2020, 2:48am
8
@heaven7 对最后的精度会有一定的影响,但是主要还是由你的模型本身决定的.
heaven7
December 13, 2020, 11:55am
9
npu的版本和固件的版本有什么样的对应关系?@Frank
heaven7
December 13, 2020, 12:04pm
10
case代码转化失败:
Traceback (most recent call last):
File “ovxgenerator.py”, line 195, in
File “ovxgenerator.py”, line 186, in main
File “acuitylib/app/exporter/ovxlib_case/casegenerator.py”, line 515, in generate
File “acuitylib/app/exporter/ovxlib_case/casegenerator.py”, line 488, in _gen_special_case
File “acuitylib/app/exporter/ovxlib_case/casegenerator.py”, line 368, in _gen_nb_file
File “acuitylib/app/exporter/ovxlib_case/casegenerator.py”, line 283, in _generate_ovxlib_case
File “acuitylib/app/exporter/ovxlib_case/vxnetgenerator.py”, line 368, in generate
File “acuitylib/app/exporter/ovxlib_case/vxnetgenerator.py”, line 66, in load_source
File “acuitylib/app/exporter/ovxlib_case/vxnetgenerator.py”, line 59, in load_file_source
FileNotFoundError: [Errno 2] No such file or directory: ‘…/bin/acuitylib/vxcode/template/vnn_NETWORK.c’
[4404] Failed to execute script ovxgenerator
环境:
tensorflow: 2.0.0
npu: 6.4.2.1
使用步骤:(在第3个步骤时,出现异常。)
#!/bin/bash
NAME=mobilenetv1_tfite
ACUITY_PATH=…/bin/
convert_caffe=${ACUITY_PATH}convertcaffe
convert_tf=${ACUITY_PATH}acuitylib/convertensorflow
convert_tflite=${ACUITY_PATH}acuitylib/convertflite
convert_darknet=${ACUITY_PATH}convertdarknet
convert_onnx=${ACUITY_PATH}convertonnx
tf_quantize=${ACUITY_PATH}acuitylib/tensorzonex
tf_gen=${ACUITY_PATH}acuitylib/ovxgenerator
vcmd_tool=${ACUITY_PATH}vcmdtools
#==========step 1 ===========
#$convert_tflite \
–tflite-mode posenet_model.tflite \
–net-output ${NAME}.json \
–data-output ${NAME}.data
#============ step 2=============
#$tf_quantize --action quantization
#–quantized-dtype asymmetric_affine-u8
#–channel-mean-value ‘128 128 128 1’
#–source text --source-file dataset.txt
#–model-input ${NAME}.json --model-data ${NAME}.data
#–quantized-rebuild
#=============== step 3==================
$tf_gen --model-input ${NAME}.json
–data-input ${NAME}.data
–channel-mean-value ‘128 128 128 1’
–reorder-channel ‘0 1 2’
–export-dtype quantized
–optimize VIPNANOQI_PID0X88
–viv-sdk $vcmd_tool
–pack-nbg-unify
@Frank
Frank
December 14, 2020, 12:55am
11
@heaven7 这里报了一个文件找不到的error,你修改了SDK么,你的SDK版本不对,你应该申请最新的6.4.3的SDK,app仓库和demo二进制文件的仓库也都有更新
heaven7
December 14, 2020, 3:05am
12
今天没把带linux系统的硬盘带过来。晚上回去试下。
Frank
December 14, 2020, 6:00am
13
@heaven7 可以正常使用了么,这种fileNotFound的错误一般都是SDK少了什么文件,或者执行的路径不对造成的
Frank
December 14, 2020, 6:01am
14
@heaven7 可以正常使用了么,这种fileNotFound的错误一般都是SDK少了什么文件,或者执行的路径不对造成
heaven7
December 14, 2020, 6:10am
15
有qq群么。或者你的qq. 到时候npu方面有问题直接问你,更方便。
Frank
December 14, 2020, 6:14am
16
@heaven7 你有空再试就行,我们这边没有测试转换tfilte的模型,所以也没有办法保证,之前碰见这种问题,一般都是转换的目录不对.
heaven7
December 18, 2020, 8:12am
17
转化case 代码已经成功了。现在有个问题就是我现在不知道怎么处理vnn tensor转化输出?
我看到case代码处理输出有个这个:
uint8_t *tensor_data = NULL;
uint32_t MaxClass[5];
float fMaxProb[5];
uint32_t topk = 5;
sz = 1;
for(i = 0; i < tensor->attr.dim_num; i++)
{
sz *= tensor->attr.size[i];
}
if(topk > sz)
topk = sz;
stride = vsi_nn_TypeGetBytes(tensor->attr.dtype.vx_type);
tensor_data = (uint8_t *)vsi_nn_ConvertTensorToData(graph, tensor);
buffer = (float *)malloc(sizeof(float) * sz);
for(i = 0; i < sz; i++)
{
status = vsi_nn_DtypeToFloat32(&tensor_data[stride * i], &buffer[i], &tensor->attr.dtype);
}
在没有使用npu之前我使用的tensorflowlite 输出的是比较复杂的map.
HashMap<Int, Array<Array<Array<float []>>>>()…
source code: https://github.com/tensorflow/examples/blob/master/lite/examples/posenet/android/posenet/src/main/java/org/tensorflow/lite/examples/posenet/lib/Posenet.kt
求教,这里如何处理??
@Frank
Frank
December 18, 2020, 8:57am
18
@heaven7 这个转换工具会做很多简化处理的,转换完的代码只有一个top5的预测,所以你看我们的代码都是不使用转换后的前处理和后处理的,这部分需要自己研究下
heaven7
December 23, 2020, 10:45am
19
我编译成动态链接库后,运行报错。 sdk里面没有libgal
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library “libGAL.so” not found
npu sdk: 6.4.2.1
@Frank