提交 15a0afc6 编写于 作者: H HydrogenSulfate

update code

上级 bc6e7f5c
...@@ -281,7 +281,6 @@ class ResNet(TheseusLayer): ...@@ -281,7 +281,6 @@ class ResNet(TheseusLayer):
lr_mult_list=[1.0, 1.0, 1.0, 1.0, 1.0], lr_mult_list=[1.0, 1.0, 1.0, 1.0, 1.0],
data_format="NCHW", data_format="NCHW",
input_image_channel=3, input_image_channel=3,
stem_act="relu",
return_patterns=None, return_patterns=None,
return_stages=None): return_stages=None):
super().__init__() super().__init__()
......
...@@ -6,14 +6,14 @@ Global: ...@@ -6,14 +6,14 @@ Global:
# pretrained_model: "./pd_model_trace/ISE/ISE_MS_model" # pretrained ISE model for MSMT17 # pretrained_model: "./pd_model_trace/ISE/ISE_MS_model" # pretrained ISE model for MSMT17
output_dir: "./output/" output_dir: "./output/"
device: "gpu" device: "gpu"
save_interval: 10 save_interval: 40
eval_during_train: True eval_during_train: True
eval_interval: 10 eval_interval: 10
epochs: 120 epochs: 120
print_batch_step: 10 print_batch_step: 20
use_visualdl: False use_visualdl: False
# used for static mode and model export # used for static mode and model export
image_shape: [3, 128, 256] image_shape: [3, 256, 128]
save_inference_dir: "./inference" save_inference_dir: "./inference"
eval_mode: "retrieval" eval_mode: "retrieval"
...@@ -22,14 +22,14 @@ Arch: ...@@ -22,14 +22,14 @@ Arch:
name: "RecModel" name: "RecModel"
infer_output_key: "features" infer_output_key: "features"
infer_add_softmax: False infer_add_softmax: False
Backbone: Backbone:
name: "ResNet50_last_stage_stride1" name: "ResNet50_last_stage_stride1"
pretrained: True pretrained: True
stem_act: null stem_act: null
BackboneStopLayer: BackboneStopLayer:
name: "flatten" name: "flatten"
Head: Head:
name: "FC" name: "FC"
embedding_size: 2048 embedding_size: 2048
class_num: 751 class_num: 751
# loss function config for traing/eval process # loss function config for traing/eval process
...@@ -138,4 +138,3 @@ Metric: ...@@ -138,4 +138,3 @@ Metric:
- Recallk: - Recallk:
topk: [1, 5] topk: [1, 5]
- mAP: {} - mAP: {}
...@@ -4,17 +4,19 @@ Global: ...@@ -4,17 +4,19 @@ Global:
pretrained_model: null pretrained_model: null
output_dir: "./output/" output_dir: "./output/"
device: "gpu" device: "gpu"
save_interval: 10 save_interval: 40
eval_during_train: True eval_during_train: True
eval_interval: 10 eval_interval: 10
epochs: 120 epochs: 120
print_batch_step: 20 print_batch_step: 20
use_visualdl: False use_visualdl: False
warmup_by_epoch: True
eval_mode: "retrieval"
re_ranking: False
feat_from: "neck" # 'backbone' or 'neck'
# used for static mode and model export # used for static mode and model export
image_shape: [3, 256, 128] image_shape: [3, 256, 128]
save_inference_dir: "./inference" save_inference_dir: "./inference"
eval_mode: "retrieval"
feat_from: "neck" # 'backbone' or 'neck'
# model architecture # model architecture
Arch: Arch:
...@@ -29,13 +31,17 @@ Arch: ...@@ -29,13 +31,17 @@ Arch:
name: "flatten" name: "flatten"
Neck: Neck:
name: BNNeck name: BNNeck
num_filters: 2048 num_features: &feat_dim 2048
# trainable: False # TODO: free bn.bias # trainable: False # TODO: freeze bn.bias
Head: Head:
name: "FC" name: "FC"
embedding_size: 2048 embedding_size: *feat_dim
class_num: 751 class_num: &class_num 751
bias_attr: false weight_attr:
initializer:
name: Normal
std: 0.001
bias_attr: False
# loss function config for traing/eval process # loss function config for traing/eval process
Loss: Loss:
...@@ -160,4 +166,3 @@ Metric: ...@@ -160,4 +166,3 @@ Metric:
- Recallk: - Recallk:
topk: [1, 5] topk: [1, 5]
- mAP: {} - mAP: {}
...@@ -12,7 +12,8 @@ Global: ...@@ -12,7 +12,8 @@ Global:
use_visualdl: False use_visualdl: False
warmup_by_epoch: True warmup_by_epoch: True
eval_mode: "retrieval" eval_mode: "retrieval"
re_ranking: True re_ranking: False
feat_from: "neck" # 'backbone' or 'neck'
# used for static mode and model export # used for static mode and model export
image_shape: [3, 256, 128] image_shape: [3, 256, 128]
save_inference_dir: "./inference" save_inference_dir: "./inference"
...@@ -31,6 +32,7 @@ Arch: ...@@ -31,6 +32,7 @@ Arch:
Neck: Neck:
name: BNNeck name: BNNeck
num_features: &feat_dim 2048 num_features: &feat_dim 2048
# trainable: False # TODO: freeze bn.bias
Head: Head:
name: "FC" name: "FC"
embedding_size: *feat_dim embedding_size: *feat_dim
...@@ -76,15 +78,15 @@ Optimizer: ...@@ -76,15 +78,15 @@ Optimizer:
scope: CenterLoss scope: CenterLoss
lr: lr:
name: Constant name: Constant
learning_rate: 1000.0 learning_rate: 1000.0 # set to ori_lr*(1/centerloss_weight) to void manually scaling centers' gradidents.
# data loader for train and eval # data loader for train and eval
DataLoader: DataLoader:
Train: Train:
dataset: dataset:
name: "Market1501" name: "VeriWild"
image_root: "./dataset/Market-1501-v15.09.15" image_root: "./dataset/market1501"
cls_label_path: "bounding_box_train" cls_label_path: "./dataset/market1501/bounding_box_train.txt"
transform_ops: transform_ops:
- DecodeImage: - DecodeImage:
to_rgb: True to_rgb: True
...@@ -117,14 +119,14 @@ DataLoader: ...@@ -117,14 +119,14 @@ DataLoader:
drop_last: True drop_last: True
shuffle: True shuffle: True
loader: loader:
num_workers: 4 num_workers: 6
use_shared_memory: True use_shared_memory: True
Eval: Eval:
Query: Query:
dataset: dataset:
name: "Market1501" name: "VeriWild"
image_root: "./dataset/Market-1501-v15.09.15" image_root: "./dataset/market1501"
cls_label_path: "query" cls_label_path: "./dataset/market1501/query.txt"
transform_ops: transform_ops:
- DecodeImage: - DecodeImage:
to_rgb: True to_rgb: True
...@@ -142,14 +144,14 @@ DataLoader: ...@@ -142,14 +144,14 @@ DataLoader:
drop_last: False drop_last: False
shuffle: False shuffle: False
loader: loader:
num_workers: 4 num_workers: 6
use_shared_memory: True use_shared_memory: True
Gallery: Gallery:
dataset: dataset:
name: "Market1501" name: "VeriWild"
image_root: "./dataset/Market-1501-v15.09.15" image_root: "./dataset/market1501"
cls_label_path: "bounding_box_test" cls_label_path: "./dataset/market1501/bounding_box_test.txt"
transform_ops: transform_ops:
- DecodeImage: - DecodeImage:
to_rgb: True to_rgb: True
...@@ -167,7 +169,7 @@ DataLoader: ...@@ -167,7 +169,7 @@ DataLoader:
drop_last: False drop_last: False
shuffle: False shuffle: False
loader: loader:
num_workers: 4 num_workers: 6
use_shared_memory: True use_shared_memory: True
Metric: Metric:
......
# global configs
Global:
checkpoints: null
pretrained_model: null
output_dir: "./output/"
device: "gpu"
save_interval: 10
eval_during_train: True
eval_interval: 10
epochs: 120
print_batch_step: 20
use_visualdl: False
# used for static mode and model export
image_shape: [3, 256, 128]
save_inference_dir: "./inference"
eval_mode: "retrieval"
feat_from: "neck" # 'backbone' or 'neck'
# model architecture
Arch:
name: "RecModel"
infer_output_key: "features"
infer_add_softmax: False
Backbone:
name: "ResNet50_last_stage_stride1"
pretrained: True
stem_act: null
BackboneStopLayer:
name: "flatten"
Neck:
name: BNNeck
num_filters: 2048
# trainable: False # TODO: free bn.bias
Head:
name: "FC"
embedding_size: 2048
class_num: 751
bias_attr: false
# loss function config for traing/eval process
Loss:
Train:
- CELoss:
weight: 1.0
epsilon: 0.1
- TripletLossV2:
weight: 1.0
margin: 0.3
normalize_feature: false
- CenterLoss:
weight: 0.0005
num_classes: 751
feat_dim: 2048
Eval:
- CELoss:
weight: 1.0
Optimizer:
model:
name: Adam
lr:
name: Piecewise
decay_epochs: [30, 60]
values: [0.00035, 0.000035, 0.0000035]
warmup_epoch: 10
warmup_start_lr: 0.0000035
regularizer:
name: 'L2'
coeff: 0.0005
loss:
name: SGD
lr:
name: Constant
learning_rate: 0.5
# data loader for train and eval
DataLoader:
Train:
dataset:
name: "VeriWild"
image_root: "./dataset/market1501"
cls_label_path: "./dataset/market1501/bounding_box_train.txt"
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [128, 256]
- RandFlipImage:
flip_code: 1
- Pad:
padding: 10
- RandCropImage:
size: [128, 256]
scale: [ 0.8022, 0.8022 ]
ratio: [ 0.5, 0.5 ]
- NormalizeImage:
scale: 0.00392157
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
- RandomErasing:
EPSILON: 0.5
sl: 0.02
sh: 0.4
r1: 0.3
mean: [0.4914, 0.4822, 0.4465]
sampler:
name: DistributedRandomIdentitySampler
batch_size: 64
num_instances: 4
drop_last: True
shuffle: True
loader:
num_workers: 6
use_shared_memory: True
Eval:
Query:
dataset:
name: "VeriWild"
image_root: "./dataset/market1501"
cls_label_path: "./dataset/market1501/query.txt"
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [128, 256]
- NormalizeImage:
scale: 0.00392157
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
sampler:
name: DistributedBatchSampler
batch_size: 128
drop_last: False
shuffle: False
loader:
num_workers: 6
use_shared_memory: True
Gallery:
dataset:
name: "VeriWild"
image_root: "./dataset/market1501"
cls_label_path: "./dataset/market1501/bounding_box_test.txt"
transform_ops:
- DecodeImage:
to_rgb: True
channel_first: False
- ResizeImage:
size: [128, 256]
- NormalizeImage:
scale: 0.00392157
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: ''
sampler:
name: DistributedBatchSampler
batch_size: 128
drop_last: False
shuffle: False
loader:
num_workers: 6
use_shared_memory: True
Metric:
Eval:
- Recallk:
topk: [1, 5]
- mAP: {}
...@@ -82,6 +82,7 @@ def retrieval_eval(engine, epoch_id=0): ...@@ -82,6 +82,7 @@ def retrieval_eval(engine, epoch_id=0):
metric_dict[key] += metric_tmp[key] * block_fea.shape[ metric_dict[key] += metric_tmp[key] * block_fea.shape[
0] / len(query_feas) 0] / len(query_feas)
else: else:
metric_dict = dict()
distmat = re_ranking( distmat = re_ranking(
query_feas, gallery_feas, k1=20, k2=6, lambda_value=0.3) query_feas, gallery_feas, k1=20, k2=6, lambda_value=0.3)
cmc, mAP = eval_func(distmat, cmc, mAP = eval_func(distmat,
...@@ -93,9 +94,6 @@ def retrieval_eval(engine, epoch_id=0): ...@@ -93,9 +94,6 @@ def retrieval_eval(engine, epoch_id=0):
metric_dict["recall5(RK)"] = cmc[4] metric_dict["recall5(RK)"] = cmc[4]
metric_dict["mAP(RK)"] = mAP metric_dict["mAP(RK)"] = mAP
for key in metric_tmp:
metric_dict[key] = metric_tmp[key] * block_fea.shape[0] / len(
query_feas)
metric_info_list = [] metric_info_list = []
for key in metric_dict: for key in metric_dict:
if metric_key is None: if metric_key is None:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册