我使用的脚本内容略有不同,
文件 1_quantize_model_yolov3.sh 内容如下:
#!/bin/bash
NAME=yolov3
ACUITY_PATH=../bin/
tensorzone=${ACUITY_PATH}tensorzonex
#asymmetric_quantized-u8 dynamic_fixed_point-8 dynamic_fixed_point-16
$tensorzone \
--action quantization \
--source text \
--source-file ./data/validation_yolov3.txt \
--channel-mean-value '0 0 0 256' \
--model-input ${NAME}.json \
--model-data ${NAME}.data \
--quantized-dtype asymmetric_quantized-u8 \
--quantized-rebuild
其输出内容如下:
xin@DESKTOP-GV1O2QJ:conversion_scripts$ ./1_quantize_model_yolov3.sh
I Namespace(action='quantization', batch_size=100, caffe_mean_file=None, capture_format='nchw', capture_quantized=False, channel_mean_value='0 0 0 256', config=None, data_output=None, debug=False, device=None, dtype='float32', epochs=1, epochs_per_decay=100, force_gray=False, fpfs_delta0=1, fpfs_epochs=0, fpfs_reduce_target=0, input_fitting='scale', input_normalization=None, lr=0.1, mean_file=None, model_data='yolov3.data', model_data_format='zone', model_input='yolov3.json', model_quantize=None, optimizer='momentum', output_dir=None, output_num=5, pb_name=None, prune_epochs=10, prune_loss=1, quantized_algorithm='normal', quantized_divergence_nbins=1024, quantized_dtype='asymmetric_quantized-u8', quantized_hybrid=False, quantized_moving_alpha=0.0, quantized_rebuild=True, quantized_rebuild_all=False, random_brightness=None, random_contrast=None, random_crop=False, random_flip=False, random_mirror=False, reorder_channel=None, restart=False, samples=-1, source='text', source_file='./data/validation_yolov3.txt', task='classification', validation_output='validation.csv', without_update_masked_grad=False)2020-03-04 15:54:22.717727: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
I Load net in yolov3.json
D Load layer input_0 ...
D Load layer convolution_1 ...
D Load layer leakyrelu_3 ...
D Load layer convolution_4 ...
D Load layer leakyrelu_6 ...
D Load layer convolution_7 ...
D Load layer leakyrelu_9 ...
D Load layer convolution_10 ...
D Load layer leakyrelu_12 ...
D Load layer add_13 ...
(此处省去一部分)
D Load layer leakyrelu_246 ...
D Load layer convolution_247 ...
D Load layer leakyrelu_249 ...
D Load layer convolution_250 ...
D Load layer output_251 ...
I Load yolov3.json complete.
I Load data in yolov3.data
I Fitting image with scale.
I Channel mean value [0.0, 0.0, 0.0, 256.0]
I Quantization start...
I Init validate tensor provider.
I Enqueue samples 8
I Init provider with 8 samples.
D set up a quantize net
D Process input_0 ...
D Acuity output shape(input): (8 608 608 3)
D Real output shape: (8, 608, 608, 3)
D Process convolution_1 ...
D Acuity output shape(convolution): (8 608 608 32)
D Real output shape: (8, 608, 608, 32)
D Process leakyrelu_3 ...
D Acuity output shape(leakyrelu): (8 608 608 32)
D Real output shape: (8, 608, 608, 32)
D Process convolution_4 ...
D Acuity output shape(convolution): (8 304 304 64)
D Real output shape: (8, 304, 304, 64)
(此处省去一部分)
D Process convolution_250 ...
D Acuity output shape(convolution): (8 76 76 255)
D Real output shape: (8, 76, 76, 255)
D Process output_251 ...
D Acuity output shape(output): (8 76 76 255)
D Real output shape: (8, 76, 76, 255)
I Build yolov3 complete.
I Generated network graph with 3 outputs.
I @output_199:out0: (8, 19, 19, 255)
I @output_225:out0: (8, 38, 38, 255)
I @output_251:out0: (8, 76, 76, 255)
D Init coefficients ...
I Start tensor porvider ...
I Runing 1 epochs, algorithm: normal
I iterations: 0
2020-03-04 15:55:58.225621: W tensorflow/core/framework/allocator.cc:108] Allocation of 378535936 exceeds 10% of system memory.
2020-03-04 15:55:59.468026: W tensorflow/core/framework/allocator.cc:108] Allocation of 378535936 exceeds 10% of system memory.
2020-03-04 15:56:00.311111: W tensorflow/core/framework/allocator.cc:108] Allocation of 381030400 exceeds 10% of system memory.
D Quantize tensor @input_0:out0.
D Quantize tensor @convolution_1:out0.
D Quantize tensor @leakyrelu_3:out0.
D Quantize tensor @convolution_4:out0.
D Quantize tensor @leakyrelu_6:out0.
D Quantize tensor @convolution_7:out0.
D Quantize tensor @leakyrelu_9:out0.
D Quantize tensor @convolution_10:out0.
D Quantize tensor @leakyrelu_12:out0.
D Quantize tensor @add_13:out0.
D Quantize tensor @convolution_14:out0.
D Quantize tensor @leakyrelu_16:out0.
D Quantize tensor @convolution_17:out0.
D Quantize tensor @leakyrelu_19:out0.
D Quantize tensor @convolution_20:out0.
D Quantize tensor @leakyrelu_22:out0.
D Quantize tensor @add_23:out0.
D Quantize tensor @convolution_24:out0.
D Quantize tensor @leakyrelu_26:out0.
D Quantize tensor @convolution_27:out0.
D Quantize tensor @leakyrelu_29:out0.
D Quantize tensor @add_30:out0.
D Quantize tensor @convolution_31:out0.
D Quantize tensor @leakyrelu_33:out0.
D Quantize tensor @convolution_34:out0.
D Quantize tensor @leakyrelu_36:out0.
D Quantize tensor @convolution_37:out0.
D Quantize tensor @leakyrelu_39:out0.
(此处省去一部分)
D Quantize tensor @convolution_244:out0.
D Quantize tensor @leakyrelu_246:out0.
D Quantize tensor @convolution_247:out0.
D Quantize tensor @leakyrelu_249:out0.
D Quantize tensor @convolution_250:out0.
D Quantize tensor @convolution_1:weight.
D Quantize tensor @convolution_4:weight.
D Quantize tensor @convolution_7:weight.
D Quantize tensor @convolution_10:weight.
D Quantize tensor @convolution_14:weight.
D Quantize tensor @convolution_17:weight.
D Quantize tensor @convolution_20:weight.
(此处省去一部分)
D Quantize tensor @convolution_235:weight.
D Quantize tensor @convolution_238:weight.
D Quantize tensor @convolution_241:weight.
D Quantize tensor @convolution_244:weight.
D Quantize tensor @convolution_247:weight.
D Quantize tensor @convolution_250:weight.
D Quantize tensor @convolution_1:bias.
D Quantize tensor @convolution_4:bias.
D Quantize tensor @convolution_7:bias.
D Quantize tensor @convolution_10:bias.
D Quantize tensor @convolution_14:bias.
D Quantize tensor @convolution_17:bias.
D Quantize tensor @convolution_20:bias.
D Quantize tensor @convolution_24:bias.
D Quantize tensor @convolution_27:bias.
(此处省去一部分)
D Quantize tensor @convolution_241:bias.
D Quantize tensor @convolution_244:bias.
D Quantize tensor @convolution_247:bias.
D Quantize tensor @convolution_250:bias.
I Clean.
D Optimizing network with qnt_single_transmit_quantize, align_quantize, broadcast_quantize, qnt_adjust_coef
D Align @upsampling_204:out0 scale to [0.12511505]
D Align @add_148:out0 scale to [0.12511505]
D Align @concat_205:out0 scale to [0.12511505]
D Align @concat_231:out0 scale to [0.1118538]
D Align @upsampling_230:out0 scale to [0.1118538]
D Align @add_89:out0 scale to [0.1118538]
D Quantize tensor(@output_199:out0) with tensor(@convolution_198:out0)
D Quantize tensor(@output_225:out0) with tensor(@convolution_224:out0)
D Quantize tensor(@output_251:out0) with tensor(@convolution_250:out0)
I Dump net quantize tensor table to yolov3.quantize
I Quantization complete.
I Save net to yolov3.data
I Clean.
I ----------------Warning(0)----------------
使用你给出的脚本:
$tensorzone \
--action inference \
--source text \
--source-file ./data/validation_edu.txt \
--channel-mean-value '0 0 0 256' \
--model-input ${NAME}.json \
--model-data ${NAME}.data \
--dtype quantized
其输出内如如下:
(以上部分省去)
D New variable weight of convolution_247 ...
D New variable bias of convolution_247 ...
D Real output shape: (8, 76, 76, 256)
D Process leakyrelu_249 ...
D Acuity output shape(leakyrelu): (8 76 76 256)
D Real output shape: (8, 76, 76, 256)
D Process convolution_250 ...
D Acuity output shape(convolution): (8 76 76 255)
D New variable weight of convolution_250 ...
D New variable bias of convolution_250 ...
D Real output shape: (8, 76, 76, 255)
D Process output_251 ...
D Acuity output shape(output): (8 76 76 255)
D Real output shape: (8, 76, 76, 255)
I Build yolov3 complete.
I Generated network graph with 3 outputs.
I @output_199:out0: (8, 19, 19, 255)
I @output_225:out0: (8, 38, 38, 255)
I @output_251:out0: (8, 76, 76, 255)
I Start tensor porvider ...
2020-03-04 16:25:53.081495: W tensorflow/core/framework/allocator.cc:108] Allocation of 378535936 exceeds 10% of system memory.
2020-03-04 16:25:54.192078: W tensorflow/core/framework/allocator.cc:108] Allocation of 378535936 exceeds 10% of system memory.
2020-03-04 16:25:54.717038: W tensorflow/core/framework/allocator.cc:108] Allocation of 381030400 exceeds 10% of system memory.
I Clean.
D Saving input_0_out0_8_3_608_608.tensor
D Saving output_199_out0_8_255_19_19.tensor
D Saving output_225_out0_8_255_38_38.tensor
D Saving output_251_out0_8_255_76_76.tensor
I ----------------Warning(0)----------------