Age | Commit message (Collapse) | Author |
|
|
|
This is a HUGE performance optimization, up to 2x faster than before. Mainly because of the replacement of randomized for-loop with randomized tensor.
|
|
1. Scheduler will decay the learning rate of auto-encoder only
2. Write learning rate history to tensorboard
3. Reduce image log frequency
|
|
1. Decode features outside of auto-encoder
2. Turn off HPM 1x1 conv by default
3. Change canonical feature map size from `feature_channels * 8 x 4 x 2` to `feature_channels * 2 x 16 x 8`
4. Use mean of canonical embeddings instead of mean of static features
5. Calculate static and dynamic loss separately
6. Calculate mean of parts in triplet loss instead of sum of parts
7. Add switch to log disentangled images
8. Change default configuration
|
|
|
|
|
|
|
|
1. Return full cached clip in evaluation
2. Add multi-iter checkpoints support in evaluation
3. Remove duplicated code while transforming
|
|
1. Skip finished model before load it
2. Raise error when restore iter is greater than total iter
|
|
|
|
1. Turn off autograd while decoding canonical and pose features
2. Change default batch size to (4, 8)
|
|
|
|
|
|
|
|
|
|
|
|
1. Separate hyperparameter configs in model, optimizer and scheduler
2. Add more tunable hyperparameters in optimizer and scheduler
|
|
|
|
|
|
1. Add new `train_all` method for one shot calling
2. Print time used in 1k iterations
3. Correct label dimension in predict function
4. Transpose distance matrix for convenient indexing
5. Sort dictionary before generate signature
6. Extract visible CUDA setting function
|
|
|
|
|
|
|
|
|
|
|
|
1. Resolve deprecated scheduler stepping issue
2. Make losses in the same scale(replace mean with sum in separate triplet loss, enlarge pose similarity loss 10x)
3. Add ReLU when compute distance in triplet loss
4. Remove classes except Model from `models` package init
|
|
1. Add `disable_acc` switch for disabling accelerator. When it is off, system will automatically choosing accelerator.
2. Enable multi-GPU training using torch.nn.DataParallel
|
|
|
|
|
|
|
|
|
|
1. Change initial weights for Conv layers
2. Find a way to init last fc in init_weights
|
|
Recursive apply will override other parameters too
|
|
|
|
|
|
|
|
|
|
|
|
1. Features used in HPM is decoded canonical embedding without transpose convolution
2. Decode pose embedding to image for Part Net
3. Backbone seems to be redundant, we can use feature map given by auto-decoder
|
|
|
|
1. Triplet loss function and weight init function haven't been implement yet
2. Tuplize features returned by auto-encoder for later unpack
3. Correct comment error in auto-encoder
4. Swap batch_size dim and time dim in HPM and PartNet in case of redundant transpose
5. Find backbone problems in HPM and disable it temporarily
6. Make feature structure by HPM consistent to that by PartNet
7. Fix average pooling dimension issue and incorrect view change in HP
|
|
|
|
|
|
1. Register list of torch.nn.Module to the network using torch.nn.ModuleList
2. Fix operation error in squeeze list of tensor
3. Replace squeeze with view in HP in case batch size is 1
|
|
1. Let FocalConv block capable of processing frames in all batches
2. Correct input dims of TFA and output dims of HP
3. Change torch.unsqueeze and torch.cat to torch.stack
|
|
|
|
|
|
According to [1], we can use GAP and GMP together, or one of both in ablation study.
[1]Y. Fu et al., “Horizontal pyramid matching for person re-identification,” in Proceedings of the AAAI Conference on Artificial Intelligence, 2019, vol. 33, pp. 8295–8302.
|
|
|
|
We can disentangle features from different subjects, but cannot do it at different temporal orders
|