From 4bd217883832cee636c3f2c5016602ee8e9374a6 Mon Sep 17 00:00:00 2001 From: shaoniangu Date: Sun, 17 Mar 2019 20:08:26 +0800 Subject: [PATCH] Modify demos --- .gitignore | 3 - .idea/deployment.xml | 16 + .../inspectionProfiles/profiles_settings.xml | 7 + .idea/misc.xml | 19 + .idea/modules.xml | 8 + .idea/reid_baseline_for_opensource.iml | 11 + .idea/webServers.xml | 15 + .idea/workspace.xml | 957 ++++++++++++++++++ Experiment-all_tricks-tri_center-duke.sh | 11 + Experiment-all_tricks-tri_center-market.sh | 11 + ...periment-all_tricks-without_center-duke.sh | 5 +- ...riment-all_tricks-without_center-market.sh | 4 +- Experiment-all_trickts-tri_center-duke.sh | 11 - Experiment-all_trickts-tri_center-market.sh | 11 - LICENSE | 21 - README.md | 12 +- Test-all_tricks-duke.sh | 11 - Test-all_tricks-market.sh | 11 - Test-all_tricks-tri_center-duke.sh | 11 - ...ricks-tri_center-feat_after_bn-cos-duke.sh | 12 + ...cks-tri_center-feat_after_bn-cos-market.sh | 12 + ...s-without_center-feat_after_bn-cos-duke.sh | 12 + ...without_center-feat_after_bn-cos-market.sh | 12 + ...ricks-tri_center-feat_after_bn-cos-duke.sh | 12 + ...cks-tri_center-feat_after_bn-cos-market.sh | 12 + Test_feat_after_bn-9-4-1_with_norm.sh | 11 - ...reranking_feat_after_bn-9-4-1_with_norm.sh | 11 - ...reranking_feat_after_bn-9-4-2_with_norm.sh | 11 - config/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 215 bytes config/__pycache__/defaults.cpython-36.pyc | Bin 0 -> 1721 bytes configs/softmax_triplet_with_center.yml | 66 ++ data/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 219 bytes data/__pycache__/build.cpython-36.pyc | Bin 0 -> 1274 bytes data/__pycache__/collate_batch.cpython-36.pyc | Bin 0 -> 611 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 782 bytes .../datasets/__pycache__/bases.cpython-36.pyc | Bin 0 -> 3329 bytes .../__pycache__/cuhk03.cpython-36.pyc | Bin 0 -> 8022 bytes .../__pycache__/dataset_loader.cpython-36.pyc | Bin 0 -> 1502 bytes .../__pycache__/dukemtmcreid.cpython-36.pyc | Bin 0 -> 3756 bytes .../__pycache__/eval_reid.cpython-36.pyc | Bin 0 -> 1548 bytes .../__pycache__/market1501.cpython-36.pyc | Bin 0 -> 2899 bytes .../__pycache__/msmt17.cpython-36.pyc | Bin 0 -> 2715 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 289 bytes .../triplet_sampler.cpython-36.pyc | Bin 0 -> 3517 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 230 bytes .../__pycache__/build.cpython-36.pyc | Bin 0 -> 797 bytes .../__pycache__/transforms.cpython-36.pyc | Bin 0 -> 1939 bytes engine/__pycache__/inference.cpython-36.pyc | Bin 0 -> 2186 bytes engine/__pycache__/trainer.cpython-36.pyc | Bin 0 -> 8991 bytes layers/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 4065 bytes layers/__pycache__/center_loss.cpython-36.pyc | Bin 0 -> 2210 bytes .../__pycache__/cluster_loss.cpython-36.pyc | Bin 0 -> 9050 bytes layers/__pycache__/range_loss.cpython-36.pyc | Bin 0 -> 7380 bytes .../__pycache__/triplet_loss.cpython-36.pyc | Bin 0 -> 5115 bytes modeling/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 466 bytes modeling/__pycache__/baseline.cpython-36.pyc | Bin 0 -> 2422 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 0 -> 184 bytes .../__pycache__/resnet.cpython-36.pyc | Bin 0 -> 3257 bytes solver/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 310 bytes solver/__pycache__/build.cpython-36.pyc | Bin 0 -> 1261 bytes .../__pycache__/lr_scheduler.cpython-36.pyc | Bin 0 -> 1600 bytes utils/__pycache__/__init__.cpython-36.pyc | Bin 0 -> 169 bytes utils/__pycache__/iotools.cpython-36.pyc | Bin 0 -> 1132 bytes utils/__pycache__/logger.cpython-36.pyc | Bin 0 -> 768 bytes utils/__pycache__/re_ranking.cpython-36.pyc | Bin 0 -> 2400 bytes utils/__pycache__/reid_metric.cpython-36.pyc | Bin 0 -> 3283 bytes 66 files changed, 1203 insertions(+), 123 deletions(-) delete mode 100644 .gitignore create mode 100644 .idea/deployment.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/reid_baseline_for_opensource.iml create mode 100644 .idea/webServers.xml create mode 100644 .idea/workspace.xml create mode 100644 Experiment-all_tricks-tri_center-duke.sh create mode 100644 Experiment-all_tricks-tri_center-market.sh rename Experiment-all_tricks-duke.sh => Experiment-all_tricks-without_center-duke.sh (61%) rename Experiment-all_tricks-market.sh => Experiment-all_tricks-without_center-market.sh (69%) delete mode 100644 Experiment-all_trickts-tri_center-duke.sh delete mode 100644 Experiment-all_trickts-tri_center-market.sh delete mode 100644 LICENSE delete mode 100644 Test-all_tricks-duke.sh delete mode 100644 Test-all_tricks-market.sh delete mode 100644 Test-all_tricks-tri_center-duke.sh create mode 100644 Test-all_tricks-tri_center-feat_after_bn-cos-duke.sh create mode 100644 Test-all_tricks-tri_center-feat_after_bn-cos-market.sh create mode 100644 Test-all_tricks-without_center-feat_after_bn-cos-duke.sh create mode 100644 Test-all_tricks-without_center-feat_after_bn-cos-market.sh create mode 100644 Test-reranking-all_tricks-tri_center-feat_after_bn-cos-duke.sh create mode 100644 Test-reranking-all_tricks-tri_center-feat_after_bn-cos-market.sh delete mode 100644 Test_feat_after_bn-9-4-1_with_norm.sh delete mode 100644 Test_reranking_feat_after_bn-9-4-1_with_norm.sh delete mode 100644 Test_reranking_feat_after_bn-9-4-2_with_norm.sh create mode 100644 config/__pycache__/__init__.cpython-36.pyc create mode 100644 config/__pycache__/defaults.cpython-36.pyc create mode 100644 configs/softmax_triplet_with_center.yml create mode 100644 data/__pycache__/__init__.cpython-36.pyc create mode 100644 data/__pycache__/build.cpython-36.pyc create mode 100644 data/__pycache__/collate_batch.cpython-36.pyc create mode 100644 data/datasets/__pycache__/__init__.cpython-36.pyc create mode 100644 data/datasets/__pycache__/bases.cpython-36.pyc create mode 100644 data/datasets/__pycache__/cuhk03.cpython-36.pyc create mode 100644 data/datasets/__pycache__/dataset_loader.cpython-36.pyc create mode 100644 data/datasets/__pycache__/dukemtmcreid.cpython-36.pyc create mode 100644 data/datasets/__pycache__/eval_reid.cpython-36.pyc create mode 100644 data/datasets/__pycache__/market1501.cpython-36.pyc create mode 100644 data/datasets/__pycache__/msmt17.cpython-36.pyc create mode 100644 data/samplers/__pycache__/__init__.cpython-36.pyc create mode 100644 data/samplers/__pycache__/triplet_sampler.cpython-36.pyc create mode 100644 data/transforms/__pycache__/__init__.cpython-36.pyc create mode 100644 data/transforms/__pycache__/build.cpython-36.pyc create mode 100644 data/transforms/__pycache__/transforms.cpython-36.pyc create mode 100644 engine/__pycache__/inference.cpython-36.pyc create mode 100644 engine/__pycache__/trainer.cpython-36.pyc create mode 100644 layers/__pycache__/__init__.cpython-36.pyc create mode 100644 layers/__pycache__/center_loss.cpython-36.pyc create mode 100644 layers/__pycache__/cluster_loss.cpython-36.pyc create mode 100644 layers/__pycache__/range_loss.cpython-36.pyc create mode 100644 layers/__pycache__/triplet_loss.cpython-36.pyc create mode 100644 modeling/__pycache__/__init__.cpython-36.pyc create mode 100644 modeling/__pycache__/baseline.cpython-36.pyc create mode 100644 modeling/backbones/__pycache__/__init__.cpython-36.pyc create mode 100644 modeling/backbones/__pycache__/resnet.cpython-36.pyc create mode 100644 solver/__pycache__/__init__.cpython-36.pyc create mode 100644 solver/__pycache__/build.cpython-36.pyc create mode 100644 solver/__pycache__/lr_scheduler.cpython-36.pyc create mode 100644 utils/__pycache__/__init__.cpython-36.pyc create mode 100644 utils/__pycache__/iotools.cpython-36.pyc create mode 100644 utils/__pycache__/logger.cpython-36.pyc create mode 100644 utils/__pycache__/re_ranking.cpython-36.pyc create mode 100644 utils/__pycache__/reid_metric.cpython-36.pyc diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c08061c..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.idea -__pycache__ -.DS_Store diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..9c831a3 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..c23ecac --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..3839421 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..58a09c1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/reid_baseline_for_opensource.iml b/.idea/reid_baseline_for_opensource.iml new file mode 100644 index 0000000..b0a0eaa --- /dev/null +++ b/.idea/reid_baseline_for_opensource.iml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/webServers.xml b/.idea/webServers.xml new file mode 100644 index 0000000..5673dbe --- /dev/null +++ b/.idea/webServers.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..00d9730 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cfg + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1552715946759 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Experiment-all_tricks-tri_center-duke.sh b/Experiment-all_tricks-tri_center-duke.sh new file mode 100644 index 0000000..65b2444 --- /dev/null +++ b/Experiment-all_tricks-tri_center-duke.sh @@ -0,0 +1,11 @@ +# Experiment all tricks with center loss : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 +# Dataset 2: dukemtmc +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +python3 tools/train.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('3')" DATASETS.NAMES "('dukemtmc')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005')" \ No newline at end of file diff --git a/Experiment-all_tricks-tri_center-market.sh b/Experiment-all_tricks-tri_center-market.sh new file mode 100644 index 0000000..92389f5 --- /dev/null +++ b/Experiment-all_tricks-tri_center-market.sh @@ -0,0 +1,11 @@ +# Experiment all tricks with center loss : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 +# Dataset 1: market1501 +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +python3 tools/train.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('2')" DATASETS.NAMES "('market1501')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005')" \ No newline at end of file diff --git a/Experiment-all_tricks-duke.sh b/Experiment-all_tricks-without_center-duke.sh similarity index 61% rename from Experiment-all_tricks-duke.sh rename to Experiment-all_tricks-without_center-duke.sh index bc34944..06ba3cc 100644 --- a/Experiment-all_tricks-duke.sh +++ b/Experiment-all_tricks-without_center-duke.sh @@ -1,4 +1,4 @@ -# Experiment 6 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on (=raw all trick, softmax_triplet.yml) +# Experiment all tricks without center loss : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on # Dataset 2: dukemtmc # imagesize: 256x128 # batchsize: 16x4 @@ -7,6 +7,5 @@ # labelsmooth: on # last stride 1 # bnneck on -# SOLVER.WARMUP_ITERS 10 MODEL.LAST_STRIDE 1 INPUT.RE_PROB 0.5 MODEL.NECK "('bnneck')" - +# without center loss python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on')" \ No newline at end of file diff --git a/Experiment-all_tricks-market.sh b/Experiment-all_tricks-without_center-market.sh similarity index 69% rename from Experiment-all_tricks-market.sh rename to Experiment-all_tricks-without_center-market.sh index eb36fbe..7577246 100644 --- a/Experiment-all_tricks-market.sh +++ b/Experiment-all_tricks-without_center-market.sh @@ -1,4 +1,4 @@ -# Experiment parameters : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on (=raw all trick, softmax_triplet.yml) +# Experiment all tricks without center loss : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on # Dataset 1: market1501 # imagesize: 256x128 # batchsize: 16x4 @@ -7,5 +7,5 @@ # labelsmooth: on # last stride 1 # bnneck on - +# without center loss python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on')" \ No newline at end of file diff --git a/Experiment-all_trickts-tri_center-duke.sh b/Experiment-all_trickts-tri_center-duke.sh deleted file mode 100644 index 0aa1b5b..0000000 --- a/Experiment-all_trickts-tri_center-duke.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 2: dukemtmc -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('3')" DATASETS.NAMES "('dukemtmc')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005')" \ No newline at end of file diff --git a/Experiment-all_trickts-tri_center-market.sh b/Experiment-all_trickts-tri_center-market.sh deleted file mode 100644 index 191e5af..0000000 --- a/Experiment-all_trickts-tri_center-market.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 1: market1501 -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('2')" DATASETS.NAMES "('market1501')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" OUTPUT_DIR "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005')" \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 33c3781..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Hao Luo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 6e66bf0..5e1de8f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# ReID Strong Baseline -Paper:Bags of Tricks and A Strong Baseline for Deep Person Re-identification. +# Bags of Tricks and A Strong ReID Baseline +Paper: The codes are expanded on a [ReID-baseline](https://github.com/L1aoXingyu/reid_baseline) , which is open sourced by our co-author Xingyu Liao. We support @@ -83,7 +83,7 @@ python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ ```bash -python3 tools/train.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('dukemtmc')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" OUTPUT_DIR "('your path to save checkpoints and logs')" +python3 tools/train.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('dukemtmc')" OUTPUT_DIR "('your path to save checkpoints and logs')" ``` ## Test @@ -92,17 +92,17 @@ You can test your model's performance directly by running these commands in `.sh 1. Test with Euclidean distance using feature before BN without re-ranking,. ```bash -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('market1501')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('before')" TEST.FEAT_NORM "('no')" TEST.WEIGHT "('your path to trained checkpoints')" +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('market1501')" TEST.NECK_FEAT "('before')" TEST.FEAT_NORM "('no')" TEST.WEIGHT "('your path to trained checkpoints')" ``` 2. Test with Cosine distance using feature after BN without re-ranking,. ```bash -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('market1501')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('your path to trained checkpoints')" +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('market1501')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('your path to trained checkpoints')" ``` 3. Test with Cosine distance using feature after BN with re-ranking ```bash -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('dukemtmc')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('your path to trained checkpoints')" +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('your device id')" DATASETS.NAMES "('dukemtmc')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('your path to trained checkpoints')" ``` ## Results diff --git a/Test-all_tricks-duke.sh b/Test-all_tricks-duke.sh deleted file mode 100644 index 43e01ce..0000000 --- a/Test-all_tricks-duke.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 6 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on (=raw all trick, softmax_triplet.yml) -# Dataset 2: dukemtmc -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-market.sh b/Test-all_tricks-market.sh deleted file mode 100644 index 321b85b..0000000 --- a/Test-all_tricks-market.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 6 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on (=raw all trick, softmax_triplet.yml) -# Dataset 1: market1501 -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-tri_center-duke.sh b/Test-all_tricks-tri_center-duke.sh deleted file mode 100644 index d5eb650..0000000 --- a/Test-all_tricks-tri_center-duke.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 2: dukemtmc -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-tri_center-feat_after_bn-cos-duke.sh b/Test-all_tricks-tri_center-feat_after_bn-cos-duke.sh new file mode 100644 index 0000000..0dac9b6 --- /dev/null +++ b/Test-all_tricks-tri_center-feat_after_bn-cos-duke.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss without re-ranking: 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on +# Dataset 2: dukemtmc +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +# without re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-tri_center-feat_after_bn-cos-market.sh b/Test-all_tricks-tri_center-feat_after_bn-cos-market.sh new file mode 100644 index 0000000..b3db9a6 --- /dev/null +++ b/Test-all_tricks-tri_center-feat_after_bn-cos-market.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on +# Dataset 1: market1501 +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +# without re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-without_center-feat_after_bn-cos-duke.sh b/Test-all_tricks-without_center-feat_after_bn-cos-duke.sh new file mode 100644 index 0000000..9d98f8e --- /dev/null +++ b/Test-all_tricks-without_center-feat_after_bn-cos-duke.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss without re-ranking: 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on +# Dataset 2: dukemtmc +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# without center loss +# without re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-all_tricks-without_center-feat_after_bn-cos-market.sh b/Test-all_tricks-without_center-feat_after_bn-cos-market.sh new file mode 100644 index 0000000..a641d53 --- /dev/null +++ b/Test-all_tricks-without_center-feat_after_bn-cos-market.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss without re-ranking: 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on (=raw all trick, softmax_triplet.yml) +# Dataset 1: market1501 +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# without center loss +# without re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-duke.sh b/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-duke.sh new file mode 100644 index 0000000..c4c35d5 --- /dev/null +++ b/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-duke.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss with re-ranking : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 +# Dataset 2: dukemtmc +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +# with re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-market.sh b/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-market.sh new file mode 100644 index 0000000..845f43f --- /dev/null +++ b/Test-reranking-all_tricks-tri_center-feat_after_bn-cos-market.sh @@ -0,0 +1,12 @@ +# Experiment all tricks without center loss with re-ranking : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 +# Dataset 1: market1501 +# imagesize: 256x128 +# batchsize: 16x4 +# warmup_step 10 +# random erase prob 0.5 +# labelsmooth: on +# last stride 1 +# bnneck on +# with center loss +# with re-ranking +python3 tools/test.py --config_file='configs/softmax_triplet_with_center.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test_feat_after_bn-9-4-1_with_norm.sh b/Test_feat_after_bn-9-4-1_with_norm.sh deleted file mode 100644 index ce8b7aa..0000000 --- a/Test_feat_after_bn-9-4-1_with_norm.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 1: market1501 -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test_reranking_feat_after_bn-9-4-1_with_norm.sh b/Test_reranking_feat_after_bn-9-4-1_with_norm.sh deleted file mode 100644 index 4964e2b..0000000 --- a/Test_reranking_feat_after_bn-9-4-1_with_norm.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 1: market1501 -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('0')" DATASETS.NAMES "('market1501')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/Test_reranking_feat_after_bn-9-4-2_with_norm.sh b/Test_reranking_feat_after_bn-9-4-2_with_norm.sh deleted file mode 100644 index 0db15b0..0000000 --- a/Test_reranking_feat_after_bn-9-4-2_with_norm.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Experiment 9-4 : 256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005 -# Dataset 2: dukemtmc -# imagesize: 256x128 -# batchsize: 16x4 -# warmup_step 10 -# random erase prob 0.5 -# labelsmooth: on -# last stride 1 -# bnneck on - -python3 tools/test.py --config_file='configs/softmax_triplet.yml' MODEL.DEVICE_ID "('1')" DATASETS.NAMES "('dukemtmc')" MODEL.IF_WITH_CENTER "('yes')" MODEL.METRIC_LOSS_TYPE "('triplet_center')" TEST.NECK_FEAT "('after')" TEST.FEAT_NORM "('yes')" TEST.RE_RANKING "('yes')" TEST.WEIGHT "('/home/haoluo/log/gu/reid_baseline_review/Opensource_test/dukemtmc/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005/resnet50_model_120.pth')" \ No newline at end of file diff --git a/config/__pycache__/__init__.cpython-36.pyc b/config/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..650eb1279f49d6141d3a87dbdec94244e380e60c GIT binary patch literal 215 zcmXr!<>gYF&=XV0z`*brh~a<<$Z`PUVi6#b!Vtxf!kEI8!y` z<&aofl969zrJzupky@0KpPbF*ker`al9*g#1sBT6Ow2bhbV$!l%*@eC&d=p~$p|!4 zlkpZ)ytAJs%Psc!_>}zQ`1o5KDXD3Rr8y`uVg4<1G2%yFA+U`py6qm j>H6{UnR%Hd@$q^EmA5!-a`RJ4b5iYCfeMR3I$4+iHGMaK literal 0 HcmV?d00001 diff --git a/config/__pycache__/defaults.cpython-36.pyc b/config/__pycache__/defaults.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55356b3cbd271e668786d73582fd376bbc41c978 GIT binary patch literal 1721 zcmZWoNpBoQ6z?unBUQfcDXZkgEQXl8=2 zxJ2RzXC%0A;1r2Jzy)zdN-iLTXbA<018RvwkhriMcvaIDMpUWld*4^@Rlj;wz0hcA ze|+`fTkjoKl%JJ-t$_AT9E0aMMF9nJTgrBh<#S4ue_vq*F-HYngnU$ZyU0sWkXVMI z#0r!os!*0#g^ENCREagHO00t>v61c9gc{Uiv1gMX*k_MHLu%t0PCye5z*sE4+T;ge z946pk#ty+DsUFVuJOYQ2AK^zcehiKvKgN&4QHdwun8cIW`Xn4jKFLqP35loSq{K5Y zDe)|vk~jsYCBBg1i!!%K{t}##`pcRBxorJBV8w9X3$iwod^*F6ng1m?E7vc>l*B7= zMdA$1NSuXp66fH&#Q7}0t8hW`g^a%f(~>V{=UIX}@+H0~Yrn*=$vau%ufj#CzXq2i zzAkir9WDpT^lU1g!gMaF7#p#(15r|3e+b1{qjhx8FT#W=A2q{rI#pFMa(d#1-PsNY0`8ysZDQ|7|qHaG0RMML`C8h4hFzP3T-Du!U=lkQR^(SzOJFZ=1bht;tHY+;RSY=J~7GE>NHaDmfQlE|4=wlk(a)W?}cReaSEV4|kz;<1XE18bh z37Hm{jB>djtB!0MgskZK?lPZz?Hg`BufV;kPIWSyjy3aeX_{+)jwEg11cnvC^Ls zuUJff9-5gQz1vxcHo6bDhJ%?0yNP;Zdj}qFMQ`Fip$vvN)yK+t^}oHKmejJEuVWW0 eP3)+QhERn4|DIDvy?|K2busqll3LssQT_+K6~biz literal 0 HcmV?d00001 diff --git a/configs/softmax_triplet_with_center.yml b/configs/softmax_triplet_with_center.yml new file mode 100644 index 0000000..5d5fcf2 --- /dev/null +++ b/configs/softmax_triplet_with_center.yml @@ -0,0 +1,66 @@ +MODEL: + PRETRAIN_PATH: '/home/haoluo/.torch/models/resnet50-19c8e357.pth' + METRIC_LOSS_TYPE: 'triplet_center' + IF_LABELSMOOTH: 'on' + IF_WITH_CENTER: 'yes' + + + + +INPUT: + SIZE_TRAIN: [256, 128] + SIZE_TEST: [256, 128] + PROB: 0.5 # random horizontal flip + RE_PROB: 0.5 # random erasing + PADDING: 10 + +DATASETS: + NAMES: ('market1501') + +DATALOADER: + SAMPLER: 'softmax_triplet' + NUM_INSTANCE: 4 + NUM_WORKERS: 8 + +SOLVER: + OPTIMIZER_NAME: 'Adam' + MAX_EPOCHS: 120 + BASE_LR: 0.00035 + + CLUSTER_MARGIN: 0.3 + + CENTER_LR: 0.5 + CENTER_LOSS_WEIGHT: 0.0005 + + RANGE_K: 2 + RANGE_MARGIN: 0.3 + RANGE_ALPHA: 0 + RANGE_BETA: 1 + RANGE_LOSS_WEIGHT: 1 + + BIAS_LR_FACTOR: 1 + WEIGHT_DECAY: 0.0005 + WEIGHT_DECAY_BIAS: 0.0005 + IMS_PER_BATCH: 64 + + STEPS: [40, 70] + GAMMA: 0.1 + + WARMUP_FACTOR: 0.01 + WARMUP_ITERS: 10 + WARMUP_METHOD: 'linear' + + CHECKPOINT_PERIOD: 40 + LOG_PERIOD: 20 + EVAL_PERIOD: 40 + +TEST: + IMS_PER_BATCH: 128 + RE_RANKING: 'no' + WEIGHT: "path" + NECK_FEAT: 'after' + FEAT_NORM: 'yes' + +OUTPUT_DIR: "/home/haoluo/log/gu/reid_baseline_review/Opensource_test/market1501/Experiment-all-tricks-tri_center-256x128-bs16x4-warmup10-erase0_5-labelsmooth_on-laststride1-bnneck_on-triplet_centerloss0_0005" + + diff --git a/data/__pycache__/__init__.cpython-36.pyc b/data/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..481d977f328e0d87fdc757f2f2f2ec0932c02f69 GIT binary patch literal 219 zcmXr!<>gYF&=XV2z`*brh~a<<$Z`PUVi6#b!Vtxf!kEI8!y` z<&aofl969zrJzupky@0KpPbF*ker`al9*g#1sBT6Ow2bhbV$!l%*@eC&d=p~$p|!4 zlkt{7Zen(7d`ey%Acw4EC}IUtVB(jM lo<2y6etdjpUS>&ryk0@&Ee@O9{FKt1R6CHeVvrUVCIDiIIU)c6 literal 0 HcmV?d00001 diff --git a/data/__pycache__/build.cpython-36.pyc b/data/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18d00f64855dc4f0642fbfbdcbd86a3308ed73d2 GIT binary patch literal 1274 zcmZuw&5qkP5Ed!Pl4aTJO%wFG>7l55a8mS?APCmkIOw9g-oSEyKok%dQMTo!q%BFO zaUcT)Hpd3&YxI?PY)^TGo;sv=u|8A=$MX%p84hQL-*&svmw*28%VFR+|2TUe2K^Y8 z{22suh{F)W9F>@0_c+$}xgl|Jz;_IaxeNKl3(w7A9FWkjN~Lpl}*JTAMW3wp@f z9~{zSQQ{0b@1I1+bgh=PczSfi3tGP`s>Nm<9cOi=Xr`VX$z?8hon4yE$KM<;N?Pz? zR+rHyNX!`^9lfNAp4F7);uA6^tousPqDr%xbE@)mUg_Rj%J(pE;-V^4%D`9VO2?-q zUF0SbAlQ8{r4_5oQ3hkW0l7E9xPGbxE5pR*zU4}u&jk7{4ymgfenz!<=5%Vswc&=Kvc$$Rm6Po`(1S!gX2|~p~h7`*81pggX*h0yE?F*mSa8p*REv-hH2v- z0^{E2PJAH$l^eoW0fIHER612Q3aKvjHMuAx%Mw>XmTe-a3%= zT$S|Qz|+wis`RlXsRG1f`Tgk=Qj}WK(Q>B*E>V+QMXi%_u)2u H6ubWc`J`Pm literal 0 HcmV?d00001 diff --git a/data/__pycache__/collate_batch.cpython-36.pyc b/data/__pycache__/collate_batch.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..efcd466c282220594cedbfc64981c7cc43b8f304 GIT binary patch literal 611 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 literal 0 HcmV?d00001 diff --git a/data/datasets/__pycache__/dataset_loader.cpython-36.pyc b/data/datasets/__pycache__/dataset_loader.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7cc9445c3758a6fd90fb85f228567a676d63a6f GIT binary patch literal 1502 zcmZuxQEwbI5VqI5x0`JeQfQ$S6&N8kI)oMwFHj*AwSg#rLe*9ZtRk6Z?cD8UcYU>e zY3_RWLh{H1;$QHW{K^x5fhT76a-j-1nlEFI*E9a+^L@Ipk>3C9*Q4JF`c-58@W0d4SPx(+4r&EaVvC*Zn zHv4*Z^W}m|tt@Y~Kp=z(n*nYX#&iG+f*RUjY#&>nQ?f46A z%rxWQOswPO5TaQ>@l4yX?{$Y;A77s9d&k-|g);$g=|eqMt&gEor^+}VjZM|MKJ!V{ z48*u_!#o~nCt&6oz#qhH!e@WKmwhCmPaQzB?8*_fE~GNqcONUP>}r3Nr6?QcV4N zr=v>^&F*$H{#Y5STmD4t@AAvgL5VqV;D4mz5tzkF=AbMA8UTd6pago*4}6UGg{%5C zXNuM$hd@(kRefw;hp)^V2uRKnUIWi3LR4+#gm@Qb79SpgyU%XFT4c7`bESAx{#8XO zOdOem-p}c(7FMgaOWLRA7R0ZojfH?6Lc9+#izg8}yLByRx1sEU5buFuc^wI#fddJF zh`Z#7ErJDGgpSSwcu4T5Mu8+JYvx1r=25p6&DlJh2gl*EK(-_Vx$Ic!_qr;5RJBr_ z8B~L3<4XFdESgH14cvH*xf?Da^ z`dHfx--{0sO@wRg@&0$qXSU_EDTmnvemrc3N-`+BPWas^|CiJ!Uo0#C5)bPLfV^~_ IuCrw8AO4MMLI3~& literal 0 HcmV?d00001 diff --git a/data/datasets/__pycache__/dukemtmcreid.cpython-36.pyc b/data/datasets/__pycache__/dukemtmcreid.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..89ac13e2d730625af39e531ac83a867efc5de4d7 GIT binary patch literal 3756 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

CkL7K=oqT>V0z7mbRLZhHf3G< KSrs5et?)mlH3X&r literal 0 HcmV?d00001 diff --git a/data/datasets/__pycache__/eval_reid.cpython-36.pyc b/data/datasets/__pycache__/eval_reid.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..945e1385f66ce6ff45d6bfbef8cb337e9be9d85f GIT binary patch literal 1548 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 literal 0 HcmV?d00001 diff --git a/data/samplers/__pycache__/triplet_sampler.cpython-36.pyc b/data/samplers/__pycache__/triplet_sampler.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40473ad4942b85316a72f8fde0b234258baa4887 GIT binary patch literal 3517 zcmc&$L66)-7Ot}0w%gq^873hl0kQ@mln#?_1X7S96wN9K7J=rlAVsu-jK@_oZI9dT zDOX25Bll?#2gFMJfIV^JKkS(w;VY;83wz>w<(|w;5+H|_=vI}hUe$Y5_1;(CtM}K| zg13MC;nDZ&jQz^a{T#HnQL1lH2{vYe3oGYiZobyoGGBXa<7?;6v@`DTc8)vtAainm z+8uW}`-F*(aKB~3mE9A29H8$BAAR5Sd&2sH4Z6qg2ix&nPfB$!4D&QD7iqD7G!M3u zve0p&@0}CAx1EV$Qci>aVry(?z?+_sd+|KiB26^9-WTz7mP?h;`039=V;iNqg-S9U zgwY{z087~4vaur^(ZLs+6&}8>@M&Ys%m0iEQBFS?CtKkx6CUp^=DuSCM zGfxp-8;7FUbkjn}MFey=U5Tku#acFQJe$cvG|quMsv3vX8#kB5zMeETzQC?i$$U?B zU`dgCl}9!^##+Op#)eMgq+(GuHq8Fa)GL_qzc+^?+V`jhw5mp0rMONyS_y`;qsET_ zn^Z^94QNz1Q8DhC|2hx&4St1h*e>s*?W4H-_~vu3(eTtvLLQ^v1t|0()l74QfiJ!z z_ajL4($aS3px3Fb>j>o1)^2T6Kr;_v`dIr}Hwy?h88MOdFB>zu2pQ&Zw$GN%;%;rj z(hwkVvVILHaRwWJiLqg+F#rhL7&Fizox|}%cDMluwQE~g*M;0$>_XEunrjE0AGxxy z)_P4qS~~$;7WZo(Yu#O1E1Q=D_OWzoFWYFXL*J}+0wz7M)GxK0y;Q?KAo~l}{0VDr z5)=U~XXnd-g|LDQ8c)et9w)K|+hqe7MebAJazH03DNaJl8MRbEBO6p16j;Tqaa#sz z++FZqUa8K)fOto zeXGwm_&VSga0ewod!6?ob*xRas2^a)ru7E^G)A8Qkbp?Va1q@a1d?twN1{=e(8q@k z{Pgy`D8i+SqE9ha(dA|Q`1Ridy_vZ)@aRxQJe5(@1W`0C#XP5WKZ*|LalRUXWl<(k zq^{Gll)lt}D!Q!aDsqw{Mx`KE6g}T}EdR3qnvworlHnWAJx~3$)FlBtNlf%E>d z#Ap_NPzt2V>8wE8Zw3RktlG=q7@S>@=RZnb0 zmwtp#3b_I6E*j?(rv^`&H0LaCBk_Sn!9$cHZKOyCNs>6!sXO2~!=K=rkob+HnYT)j zzV4#$8#{qXZ@37(Hm4AgoTDAXFg=nP{#c_HQITPtX5F0k$TgtqRJ}#j+o%Sfacbis#e>k1 z)|J!^PmM<#uFXnMQw9+VL8qbsFy!o(NCSQq-d%rD?>j39Sw-loBH51XHp^_o-!Ep72Qgne0EgR$KLSkUw=DQEu Xd~lzxNJXR$Hpg?yM}9-GH}3xi9H?Zo literal 0 HcmV?d00001 diff --git a/data/transforms/__pycache__/__init__.cpython-36.pyc b/data/transforms/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8badfe98aa7388aa974295b1c6800d14235b317d GIT binary patch literal 230 zcmXr!<>gYF&=XV2z`*brh~a<<$Z`PUVi6#b!Vtxf!kEI8!y` z<&aofl969zrJzupky@0KpPbF*ker`al9*g#1sBT6Ow2bhbV$!l%*@eC&d=p~$p|!4 zlkt{7QfX#RN_TZlX-=vgNJlY9HwzO0L>N8% literal 0 HcmV?d00001 diff --git a/data/transforms/__pycache__/build.cpython-36.pyc b/data/transforms/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ffdbfe70d31104c3423fd321765fd5654a4e4981 GIT binary patch literal 797 zcmY*WO>fgc5Zw>QPTZsv0YU1a>IvaXBDJ>)p_C>-Brs88B(y@Z9B-OBvc1u+gJ_hV z%8^JM_!Io4y>jYb;KX<%ny}V9&CHuOyE8s*G~8!DzJDH2gnpx)12O7=spkM3F~l(^ zDV`BVIptPLGK*Ol@hZ2u^9{2KCnMz5mZxqfS`=48o*f^jNhH1|`Sg0>c4CniQCytu zBu_ds-ik%$-oX{fzr%nY){SA5bCLCAq(B?Qq-5b(V0&N}VCpA8fo6DxW@JVUS{$#* z4Ow9+fvJGmChy#0@T(mtq`^lQb!=WjTrWP~(8rd?B+aO_mc~>HC9^ zfp!P|PrY~H``)>)Ya4$QbeVG@vbj(bZ4W1^EO$qJ)(eB-dEaM`Hye8^WU?&RoW4$z zxwZzw53e*GL|i+A^KQ5AzhUmC@Yi zsIZVxlCwwozxS4jTwOw_YxnLiB%eU9KZmV0kBX>$PpI~Ik)*sezt#uF+saiP6zT{7 z;U>1=tK)sJI<_&vhqR1sT&40URCqY>Z0&?07jYP}W+7yJ^(9e>$XnaXw7d1C12QwA dX<**B15IFc^+hK5BAvXfK%{H{i@2mt{{j(s)kXjS literal 0 HcmV?d00001 diff --git a/data/transforms/__pycache__/transforms.cpython-36.pyc b/data/transforms/__pycache__/transforms.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..623ac7a5745c4b9d371b4d67793f114a18ae29c7 GIT binary patch literal 1939 zcmbtV&2Jk;6rY)0?>d{fEm4#YAz&0mE#_c11VOPXoQk6MLWD>qB#UY_@l4k1?1wWu zPVKPa;vjM05Q%bt|DYERocS*}v8wnG2P=O7mx=>#cHP(kfsmNd{C4*3o8SAG_w21o z#kqd=#mDz;gnmOa!-V}dtmIVyj#`LgP6FJ*`IEHBJ;V)eo+54vV`Q{UPIghXbiCzk zv%c!YvO#I!vv}Y~-mvd%x8q2$wrb1>U*GQXT00J%b1;E++8Un^aHlZ84jX~MENT&s zTL!<%=eTo;0(@i=@>vII=B-!Ve85Cub;h(NSeLK&6tWRVvL z*m-^&Q9q&#Fl3&94W|MKL_&Sg?)d`|BsGUl#*KoHPHfP-Ofh<=?}Y+lQ$Tiu?hR?H z6Gt8uin3sObXN%4QL2|T>UAau{!uNKUcJZn>zi-gyj8pT#;v#Ctifw;>yGr2#)Vbd zlkpzg^8;TE8}va(%nGRLFa;ncv0nHV_aG4M6Mf_d0o{XBLhi>h6nyFxO@an}-;eyT zA8OWKEb}Arevt-FnG}pNkNHueAXU9Spib2+M+Z3A;D2$*&8Z(O>A@Y*+XMa|KN|+Zfe>#l%$qUjK}Ci8gtQa99|tG0DSdT8}BtUS8M&?^dc^VS|gWL@60u{giZ{79!^4bx)yL4ATuX2n`=({MKmHO zB~?~)%IVHS)=Eogg!MeJW~HE4NbS^~+BiV*cd0eCet_gU@Go#Ym8I6Iwo$$$2mew# zm(NW!@fzZ#19FBX2fr#D-cyJ@EyJ`{&}Sr_gK6vCzHuAnI(fVh$G_=lOPHJgq!VrY zCu@-P!}X7V3F^t(k#IHWJO{3K`u@%hfa;aZg35qjyv*)LzAliwq_Pr7Jpo1LAB(@# zS7!K;0)@CAai~nDI-qtaRc31@_?8!7)sa`h04RrEW;3Nk*i)IQe+jaA#iS>co4+g+ zo$BVDn&D1{A7x~)nUUdUUcv>upt+z{+bjrN_hooXHUJP=#3rm&vV@n&GF~PWufkl! z8!)ev4O}LFui}Da=ZPWpAB5BuEaw2KC8?7l^}m)ZY0&K}Uju-K1M3kBh3jUH>xMD! z2YSEYx`%xhOupEz%j34|%0+#!szJBm4Cp|l&cE)`MDv#&lQ?!R0|#pQ`%4;hLuOXI d*M;A){Ob%$PFm#TcHzo9+TWbdBxPJS{sg&n^~3-G literal 0 HcmV?d00001 diff --git a/engine/__pycache__/inference.cpython-36.pyc b/engine/__pycache__/inference.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d3f1b614f5625d2399128d222433f32d125aef5 GIT binary patch literal 2186 zcmaJ?-EP!I6dwPs*CZhcr3JO6qpC$&DVU~QR9YdFC~OKU3GG6mvZ&0&GrRHPpJhCo zlEuDSB)BN*GxV~r(C6sY-1aK3z*WzT!zQZK+L{@A=A7g6^PSH(78m{3zyJEgZX@(J zI&)d@ya}V+fr+9JQG=SP5gK|mLlagjwK6-j4RvOxPUePg)(Ttj-lh(9Um2lCThx1n z!ZtM@ppHNN#@{3paZvCs#^nLyX%Rp3H{&7~Bo^KIR+^CFtBuWJMv^p$i_AX;C(vHU zkZvy@COPYv((P|V+1B@RxmhF5ILV(S`7lDqqbk*${3k5bQ}Hr!4tD~YPWJnR%KVt%rwyR^~b2PArOoFX&~fdxOTwt zf*;|*B#%W>G+){;#KB2eB&T?vi1>h&jd-7l3D3`D zr$GSteKxmD!vg=3fT1%vPVxccEC;XO*GIb$n}7y&xiEYf7hsf|Fe!M2(c77MXza1)Mj*ZIvJC0A4cii3sS#mvd|4fT{6D@Z)1{iwqHXx*g6Em5#mms-zE-WM%utCkmDWl%@7 zD~r1N+^4O#R$^2(_1;>wo8LLnYJ=7r(DKh{o%>I%RggS4T4;1<;0K__9W6FA15Zn% z^VGSFfKXbsr#)QIGRoIQ(DNFd7gy;j5YLsmtz}l=q+PYDHeI@eE~A-_>iJ)f8=PI( zn|{PuLZf|BvJ@yWm?L4j(#r+o`27YDku>vSy1cDuiJdZ1=yJ`W$6rG(J7(x*#{=DgO{AX&te0dgb3{G_lR;ce?Xq4rm(}TmZ>&rVT1C1ePBp!vNpU z(<9ZRNmNI5+RjNipCyTQhn^)XN| zI(F2gfHD1Kdv_bh6Mo3naUX)X_Og5PM%`_MI~M;Ggt+Pw{uxZ2W$EnRzumhh-P^rK zcei`8l@>$zw+v-_$izK(W?b5k!$R5*dk-E;zu$}cTYKN#-TPKLW1i$fqm!%Oi)`=o zwjM@%_xrnCp;fx@8_0-|7N6wODFx(R=dt5UD;^A+R`P)*qO>3szSPbqS@e9u_)(K; zS9!yD*q*m*XvJ9^TI!!?aNS+aq-db(0Te@{D_m2Acl& aZUURZf9#g3nWie+@J!EGFqdurvwr~i>Q*@b literal 0 HcmV?d00001 diff --git a/engine/__pycache__/trainer.cpython-36.pyc b/engine/__pycache__/trainer.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e30a38da0f701ad14903b92f8f3e42c8abc14cea GIT binary patch literal 8991 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 XAI7uF7kCMu7|5?Xj6VX*s`vi@Cke6v literal 0 HcmV?d00001 diff --git a/layers/__pycache__/range_loss.cpython-36.pyc b/layers/__pycache__/range_loss.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..511ced7d22969dff0189f88e45ee36fd671bef12 GIT binary patch literal 7380 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 literal 0 HcmV?d00001 diff --git a/layers/__pycache__/triplet_loss.cpython-36.pyc b/layers/__pycache__/triplet_loss.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ff0df0137689b5737fa0c2b47f3cb3bff5dfd13 GIT binary patch literal 5115 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 literal 0 HcmV?d00001 diff --git a/modeling/__pycache__/__init__.cpython-36.pyc b/modeling/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a4aa1a5dae9d28cf93d586c03e25b1d53c01ed0 GIT binary patch literal 466 zcmYk2%}&BV5XX17Ez|;PJb3cJwTS_YF($;AR;ZB(NT4TTvMJpPg>7rP<)Fcn9(@fD zzS3Sj`3jz#HpVc?|CgDa-TBzlTFp54c)xcrLSJah2>2FA903@bB8C~^I3iPm5mT7@ zhNcSBCde#3pBt99&K619uGhsPNO|I~49idA%=5GM{}B(pq;+D=BQN9)KZ%TQXo^fM z^(#*VJd6WB@0yzeDuFs6(E@DH5-l;qE0P{(WP^)XDX13IfTd;mReK>D0#lKp)YCx3 zL3Y+Mb*T;Rx=vrJLwn$)c^6sf+Y^^g+;Ok#$l7S^xMRCFq$AtCfoo3ZR;sQuapg|# z(`(0eO+_mH!(3M4bwqvc2@wdXMF|V|CrWpr=+9xJS;S#HZ&Dh@VMb}=@kv%@>yR^A zAQCD-B~|4Y DO51aB literal 0 HcmV?d00001 diff --git a/modeling/__pycache__/baseline.cpython-36.pyc b/modeling/__pycache__/baseline.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ea4b0e7ff6db4b75db22821f9487528b2159e9c4 GIT binary patch literal 2422 zcmZWq&yU+g6rQmi$8oaT>~_1Q0;&a-LIm3W;Dk!yICgeC z*>+diQ!4dBCH{?GDug)jcW|65r{3U-kl=gc>~6PA~OfBNy; zpPP*R!Cn{+^esH)7Z8F4OmJakJmC1ZGd{Kgi!XgvNS3lrg?vF>TktGuA*37+b9Q#%!+tK z&dXP}`r|0gHsfOKKgUtnc86;#&!2PXP~H1Uxt*w(rZg-(H9U9ll)pgC*pLnR0iW@q zCHS0+=E#=Ul|6KZHTYa%(=DFZoEcjkHcz;7+%A_UrjD2vV)jqOcvXy9%|;FR?0?Z8 znCJ$gmk|97D_>mY3ZLHba+F}m(ek!-zfAKalG4TvB;8Hddr=-1Q`NCFkF+x`MAC=d zjKH~5aTb+j7-}yJ^Jttvb9!km zB;`;$X`U*5Y80ho6e!HGTa<;`eUPO6fzl0>t5i|05Y$bhQoB(P!3iC23@>d>n?7Z7 z9ozlAzIlm`oMEp^-KZob*_`a@wQ9c-=T23)c-s;p%2yy5_xLhjytHiQGpvL>gPN`_OY(MuzRG78r8(qpuQ~$My3G$f1dvJ``zxno4}i0 zDshzeDwhoj@-W#VK_@r)lgrR_eUUcVCi^Oh6^M={*GNA@g3?oov(WU}6A3YSOnYe} zUxTxx0#-R$a1dN*l$RkA2DY*Qs1NMNtOx!I`;iwogm=T#im~ov=CGg+ z+EYK-8L0P2Pw4M&GRH4eb(WoGM#l@E2oo0np6`h3?xHI z&;rPj8SQ69B*IA~qjANOm0Kd3sB|~EwcEc}6xmgw?S3@T&3rnp_?48}q1WgJ$*`A1 z${!i`GkhPvdorz7IhP*)bH^}bnrpW`KU=RTYCP(j**;6tC7V^IA&{C7Pn%pE8e;73T zSzJrTS`Vy;@6D`F*>@KXkk*+!a^?9Q;tW_iv(K?1cuN1ohMo2|Rf?=_ zbE}S{YpRg(Ks$tS?W4J?Bot|^bS*9>dtt{hR}NYx8wt@s4Fcbgp<2h&m#!<{#OdzS zRjbB@E25!WeE;;(<&Fu}@k|TVei#C&(~Q1HtuWk~Mp^ZBlJ8(AgHQP(X|%asT71Uh zB+J6^`2B~#HkhW~NmVY<)R@N|tF`W(F*NTqbUh435hL~^I1Q_Vb~lPg-2&9y1l96H pnI3S=GVR_qCp23ezq8Uz7x%7Lcep`3DCyJSSRQE9vb|HD_aD6-HOT+~ literal 0 HcmV?d00001 diff --git a/modeling/backbones/__pycache__/__init__.cpython-36.pyc b/modeling/backbones/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f12f47c9c8b5c10758015c3d2d68c40833faa355 GIT binary patch literal 184 zcmXr!<>gYF&=V8Pz`*brh~a<{$Z`PUVh$jY!Vtxf!Whh;$y8;@<&aofl969zrJ#_L znV4UZnU`K!%H@!ppI4HYTw5AD@z+ z93Q`up@<1+E|~bGpr@akpOTsbG)X@xF*!RaKQFadKR!M)FS8^*Uaz3?7KaT`L1|8^ L9V^I1K+FID>`pP4 literal 0 HcmV?d00001 diff --git a/modeling/backbones/__pycache__/resnet.cpython-36.pyc b/modeling/backbones/__pycache__/resnet.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8ffa12fe92fc80a458d917ce13ddecd78c0b2d9 GIT binary patch literal 3257 zcmZWrTaVku6`tW;)MeM3jpI#R*GSx?3IaR3n<8zHwhO08i^35CyF~z@Ey3k*cPUY% zcF2w81ve-l19_>7KK8i}1^SofwNLsBed>3H6eT1S=FHKV!{NDpGspeD|L#Bj_NTw} z8T&8WdMxlK7{%{E1RFEKg^}_x*RwG;Fq^3{Gsh-pzh%M__Dd%0*qm5Pb8JK62p1B! zkvPJ5#)jVYFZ`46s=UbMC-?8CNtiE^?EJ-*e-hju`X%G5gcD+h9KOQ+N7IQu%n%|3puBOuj#b@9I^T;aWJA#ob zBT2@7F*H)2-s7`8`{qa}8%g`-P<0=NWppvh|ocSt*jzW&y=Ta$l^jdum!VTmUl>pt46N@E`WSdk-JYauKKSKf@@#1*!OrQLzc;CBH%ZC%iHn&S*Ka<&gOwtlF*2X*pN0 zX-8gQKUeRJy(;5lroXV>*F>KAXz0lu*dcEbd4tFvk=Kaq6M3D84wfYkz$?B`9zv3c zt1wk&epSjJk%}hwNWneJrNIDht|#9v;>#-SyPz9aM);Xah9q9Iz$Hx{b_-%sn6!?rI$BHS!+h)|R~A z$or5R2dLskf1puhFj}3!TJ6?KviWE_*~MiyBPifH+;!)Tz3zRp-la@l~Fuz!P^CF6LlWH<*RfI7q`6u~d$p z4x9O?nU9JQ#w`}m1132Z5wEleg+d7uyD`-1B@Qu18m&E&*IlR zb@p4J&~@LQ7nE}v8ZG_>Mz9;ZvIL)+#a%?6RYt`pe4kBC`J^-^CI*mvBS&tj9?VxZ zR_wL*k}r)L`<&f4m4nj-)uG?8Dtl=yId6BR8e2RlU8<0!@f-H%+c)m^8%vx^oLzqV zHKT7=&fn?eu+}HXb|xvm02-aHcfr@N?>~z#ui~ss!nDpBB}_Ttd>&^w3}l#{$9Rh( zFFz*omR{Fk-vV*@a}x7p)8ln>A42>Xqag4C1nG$HA_IG-#cv}IyZkobXPtpfHMD3= zJxN2y|My^YqzI`gW?UmHamYd=Gg}TPc_Xu14zboUUL&u&g}fhPcX>qQn8-&&sCWQ{ z+W#Muparqo!M7oMhEY)57~$(0VF_0Ujbja_woVb4(9lkO3Z`7UVk|zWD9sOUaJ{I^ zsUz=Q?vi^;R+$G3DaO$OprEAhevM*;8^%Z(XVK77cA3lQLRo1Z3gs7NSjK@!qLR+* z`HNuPLB2j;gLzn9D1RQxaHh57FJZ{{{8K*d1yxeQazRj0yXkR*U*BpR+-OAv7W9}H zgrM3-I%XFOO5KvdyYzJm#F@ANO3aC|F%2Mhsvd%}$?t*=c-tvkssKHW+P-`T>hb}R zpAex0)R;_Ns83}1IdM;kyho%h<~4Ha6ZxlDqT<)d_W0etf6ME6t|U3G18xwAJi>YY sgtquK5o%E7e5nIjf0uMO+t-}Fn0TMo@%|MVt-oLy9&RB$bML+X0}D>Ky#N3J literal 0 HcmV?d00001 diff --git a/solver/__pycache__/__init__.cpython-36.pyc b/solver/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f94541c08500751a729946152916afaab8ebfa4 GIT binary patch literal 310 zcmY*Uu}TCn5KXeXdMutOSXo^m!Zv$~g>Z=M2dITt2#YYpB)H*{%QBl)yl=4ZH~a-Z zC9RdeU}e%AIPe~C-ppf|i|MpH{dj-;B7}TLY>P$JL<}d9Bx#AHk{N1Q%WT$WH1(Ou zZP6A{=Sxx*o6EA{qwgFpX0xGFXq;G;jc{wvgjj{o=Ys(lASt-ZpEhQkMrcI<3ztl^?Y#VMd2JkueArL`?oN;vMvR#i?}nSP|gnMA4*AA AR{#J2 literal 0 HcmV?d00001 diff --git a/solver/__pycache__/build.cpython-36.pyc b/solver/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd832250a1d7700dea92289da7f206f9d26ee7ca GIT binary patch literal 1261 zcmaiz-EPxJ6vyYoUkOQQyIm+Os(OXwo3e-tB(z#Jv{|-Nldh5gq5^r1XGombaXWT^ zBKxY#-LAv~>;u4i@Dy{)6|b;Ydyb7l_z;XW|4GirjOU!6Z#0|rtFQik_|hWe9a$O- ze(%6cw?G6rB7zDQ(IYCjF#aM(Oqjxgl?yf?uKnU>eaD|?<3!!s+DgY#MM*HN?*z## z^MmZx!W4ym^7HkbQS67&c96vN_pm+b1$Z0|2PV7<*@c#)vN5Kn(O3)-zuz}<;IBSW^M`gFCWpHu=`2t zJ}Dz@!KX~U%ABk=saKXW1{rw9Ibr<63VXKxx%Z3~c5Xun%$_zLhkojEZ5{i{k5kPe zr5n#=I2vc3kb!@y`QXl;OSKaxv7BY|*lp;QnIB8xl_@flD%DLTPv)VLsW(!-(AMDa z;9jS%?c41^$2;ij#{JIzo!^JvUT3%cK(}u1w+CSMerxXz5Bqv`+3TTGw+{ap?sxZ( zI(@I#?sl|2l9``nN}E}tg0VJ}<1CD|(>?5Vdc(V2*U>z9GSX(82pK63ZP0uwPqq2f zkLFStU{EGnYh`BmLaH}JT>{I0tJ~MoBzh{BRf`5k!zC?xd1r;2qC@GpWayDt6ReZIC2@KV8C$BxhkH+dL#NOp)g+EqR z;Z}tVkyXO^t8LEbY)llb98YoSa7Rq^)6_iz!HIyGva6?^RLaeq6jRqVJ`fgpV zW5|yfvJwE5Qh9+2VF{C2^=20^;3CSR^J=4vUo_RLGD`+3xr_mqKW)ADEX>9qLXm)U y6XaVMY*4iY5w4+a&l5@DdDYdBj?%MqAmXRWQ=MM`+<7E_MMhJ+yulpqto;uOIVf%b literal 0 HcmV?d00001 diff --git a/solver/__pycache__/lr_scheduler.cpython-36.pyc b/solver/__pycache__/lr_scheduler.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac56d2680c136911280148c2a62da71afc82a20e GIT binary patch literal 1600 zcmZ`(&2J+$6t_JenG9*!kD@JQ55pd|8-cRr;{a9F_5fN5?Jm+*fE0nubnGOP&SbK- z12jx8q*AvM2ROoiz@NY$!o^n(tK2wn+6%llle9%EJo0be*w63%=J{v8x3Uu6{prUq zZ#M|}lU!*o*!$4+y8wc8iJ*dIG-q8#(RMPY>pURB72YWko^*!p&>Q+Qr`r(D0crcw z55xUz6*vVT?!PLSUDp-DjFgv}Z!-k*7*+hPB(3sg|)T;=jkXloVNq(YMJ$HvlyE+Pp9CqimYBmxQ1{Y;Rb*WvsfE0$3-## zMKw83U_f*J8+ozbxvz`t8>#MRitA(`#UzueGd@;puo8pm+W;iIMj1T569Bq2U_Mbgvq5UbTg}RkZ`3hffZc+ONV~=B}-( TXu(eX2fKLjYW!C$TG03xaeb0> literal 0 HcmV?d00001 diff --git a/utils/__pycache__/__init__.cpython-36.pyc b/utils/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99041a69568c1a35ca0a935ad7ef96071d0c2e59 GIT binary patch literal 169 zcmXr!<>gYF&=V8Lz`*brh~a<{$Z`PUVh$jY!Vtxf!Whh;$y8;|<&aofl969zrJzup zky@0KpPbF*ker`al9*g#1sBT6Ow2bhbV$!l%*@eC&d=rY(`3BG9v`2QpBx{*lA(wR tXeyZaC9J1kT9TPltREkrnU`4-AFo$Xd5gm)H$SB`C)JJ>JY)=yDL)@PDS zQSv@-wdjjhJAJ3s?#S!=(vj{b)(@m7ebk{0WQe*WJ2FBYNwLk6g~NN%W;!+d3c7Ku z_j4#!HjXwkRhu+3-9N6fNY(8-n|oDSleB>E#_zW9Xn54yr=yqTX93E{iA_kGSB=e1$J^Ajdznu~&22 zF&ZbdXT0J1g2BGbsT28zBN5R%yzy`&-btaxE4p#5;$czd@lZ``8K)+`_I`FPzFzFr z3UZkwE>LN$UuX)m-UN!;SbwOXN=+iHJ4wwxEMZK`Y%UfkWii{&v+-b_cn&=}L_u6! zgfjpH1O1OlVX&(i{;;wQyk5)#MX%Q@<*23zdVb}>6 zDyVT9`~eW;+DsT6`UYW1A${q6acS00z_t?nl@wajbNk90ms zA;lrliGT|j0~b*we%tMN2Lc?9I<0azL!VbsSXWM~N#ej7dCrocGXKvtdJBcgTe4Ky z-(;6*mM-IavS5S3K&osofPm8JXds+6P&k;>Ui!0I6mvY(y0%d50e{^`vkh(Y!v~d; X(=y-i(4{Hg6(Pq*L{8WVgV6s4N*DIW literal 0 HcmV?d00001 diff --git a/utils/__pycache__/logger.cpython-36.pyc b/utils/__pycache__/logger.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a5073e0ff238255b028eab168b33216c3514d0a GIT binary patch literal 768 zcmYjOJ&)5c7`7cJX>;vyYf7%v`GRV4&wh18i{KBGL1ziH(GDMw!g>Wu{{%27!!_FAwNpD80n6E7jB03OLDj?BnKmBOxS7Yv z6<*Vt?!4f{=it9~LG9FT8|h@-nzjt9AK(#~gRGbJYs~3}aF=^mWbM`7E(`GeSZ|vJ zF72Nw3>}8pdfF(#iq*;Skmhqc z8d^v$!b97rv$UMq?o62Xz=g6M4YWyP-Pdnket2v9)3)Y2R`MLq9et^rKDexm?Vd_i zFk?XPLEO#?80Xg!2d8N+t_>o!rAub!mS!?7L*LS-Unt8iM9fna9q|-ynSQE_;IU%m z!g@`cP=X|L+daRjNY3ZKkh%*m^Y`}Xq%vu)Pqv<;?3| zL)-%nlTdtT%Za)V9-(XfIOZ~mW95Rajv5FWXpY;0dvFgl+j$NzTIJ$J6QDZ)6pFxf F{s9CB%y$3) literal 0 HcmV?d00001 diff --git a/utils/__pycache__/re_ranking.cpython-36.pyc b/utils/__pycache__/re_ranking.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..941e5f8b8b90f691f7c3edde5a573d308ea3d009 GIT binary patch literal 2400 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 eDz$Wh=-#cah