tf_face: tensoflow codes for face recognition
file |
description |
execution scripts |
train_model.py |
CNN training using whole dataset |
run_train.sh |
train_model_subset.py |
CNN training using a randomly sampled dataset |
run_train_subset.sh |
train_fusion.py |
training with multi-patch fusion |
run_train_fusion.sh |
test_ensemble.py |
testing with model ensembling |
run_lfwTest.sh |
file |
usage |
execution scripts |
save_weights.py |
saving trainable parameters as .npy file |
run_saveWeights.sh |
train_utils.py |
helper code for training |
-- |
test_utils.py |
helper code for evaluation |
-- |
test_lfw.py |
helper code for lfw test with pretrained model |
run_lfwTest.sh |
extract_feature.py |
helper code for feature extraction given a image path list |
run_extract.sh |
Why hyper-parameters tunning is important?
Some observations of hyper-parameters tunning
1. Learning rate -- dropping lr too quickly may cause early stopping
2. Optimizer -- RMSProp vs. Adam
3. Dropout -- increase dropout may improve generalization.
4. Regularity -- center loss boosts performance
5. Dataset -- trained with whole dataset vs. trained with randomly sampled subset
(Maybe modifying randomly sampled method to boostrapping can bring some benefit)
Properly tunned model can push the performance to the limit