我正在尝试创建facenet中使用的Inception-ResNet-v1模型的量化版本- 根据Tensorflow的graph_transform指南,不仅有量化权重,还有量化节点.
使用在CASIA网络数据集上预训练的模型,我尝试通过添加以下行来假设量化节点微调模型
tf.contrib.quantize.create_training_graph(quant_delay=0)
Run Code Online (Sandbox Code Playgroud)
在计算总损失(第178行)之后,在facenet训练脚本train_softmax.py中,以及在保存检查点之前的下一行(第462行):
tf.contrib.quantize.create_eval_graph()
Run Code Online (Sandbox Code Playgroud)
然后,我使用学习率0.0005对预训练模型进行了1000次迭代的微调:
python3 src/train_softmax.py \
--logs_base_dir ~/logs/facenet/ \
--models_base_dir ${model_path} \
--data_dir ${casia_path} \
--image_size 160 \
--model_def models.inception_resnet_v1 \
--lfw_dir ${lfw_path} \
--optimizer ADAM \
--learning_rate -1 \
--max_nrof_epochs 150 \
--keep_probability 0.8 \
--random_crop \
--random_flip \
--use_fixed_image_standardization \
--learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt \
--weight_decay 5e-4 \
--embedding_size 128 \
--lfw_distance_metric 1 \
--lfw_use_flipped_images \
--lfw_subtract_mean \
--validation_set_split_ratio 0.05 \ …
Run Code Online (Sandbox Code Playgroud)