Inflate 2dresnet to 3dresnet and use imagenet2d pretrain for train kinetics by tensorflow
First follow the instructions for install I3D-Tensorflow
Then, clone this repository using
$git clone https://github.com/LossNAN/Inflate_ResNet2D_3D.git
1>download Kinetics dataset by yourself, dataset
2>extract RGB frames by your self(25fps or 30fps), such as:
- ~PATH/Kinetics/train_256/abseiling/-3B32lodo2M_000059_000069 for rgb frames
3>convert images to list for train and test
cd ./experiments/kinetics-400/data_list/ python gen_train_list.py python gen_test_list.py
- you will get npy_files for your own dataset
- such as: train_data_list.npy
2.Train your own dataset(Kinetics as example)
1>if you get path errors, please modify by yourself
cd ./experiments/kinetics-400 python multi_gpu_train.py
2>argues
- learning_rate: Initial learning rate
- max_steps: Number of steps to run trainer
- batch_size: Batch size
- num_frame_per_clib: Nummber of frames per clib
- crop_size: Crop_size
- classics: The num of class 3>models will be stored at ./models, and tensorboard logs will be stored at ./visul_logs
tensorboard --logdir=~path/experiments/Kinetics-400/visual_logs/
3.Train-error-curve
1>if you get path errors, please modify by yourself
cd ./experiments/kinetics-400 python multi_gpu_test.py
5.Result on my linux
Architecture Iters Pre_train ACC/top1/top5 I3D_baseline 60k IMAGENET 66.3/86.7