RetinaNet_tensorflow
For easier and more readable tensorflow codes
How to use
- For Trainig (recommend to use the default parameters)
python tfrecord/tfrecord_VOC.py
CUDA_VISIBLE_DEVICES=0,1 python train.py
- For Testing (recommend to use the default parameters)
CUDA_VISIBLE_DEVICES=0 python test.py
Results
Todo list:
- multi-gpu code
- Training visualize using Tensorboard
- validation output image visualization using Tensorboard
- Choose BatchNorm model or GroupNorm model
- Choose Trainable BatchNorm(not working!) or Freeze BatchNorm
- (BatchNorm mode) Get Imagenet pre-trained weights from resnet50.pth
- (GroupNorm mode) Get Imagenet pre-trained weights from resnet50_groupnorm32.tar
- tf.train.batch -> tf.train.shuffle_batch
- add augmentation ( + random crop)
- use SE-resnet backbone
- add evaluation (mAP) code
- change upsample function for 600x600 input
- Training/Validation Error ( % value)
Description
File | Description |
---|---|
train.py | Train RetinaNet |
test.py | Inference RetinaNet |
tfrecord/tfrecord_VOC. py | Make VOC tfrecord |
Detector/layers. py | layer functions used in RetinaNet |
Detector/RetinaNet. py | Define RetinaNet |
Environment
- os : Ubuntu 16.04.4 LTS
- GPU : Tesla P40 (24GB)
- Python : 3.6.6
- Tensorflow : 1.10.0
- CUDA, CUDNN : 9.0, 7.1.3