strawberryfg / 3dhuman-groupnorm

This is a group norm implementation of 3d heatmap with batch size = 1.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

3dhuman-groupnorm

What happens when you have to scrupulously share GPUs with others in the lab and you need to run several, say 6 programs on a single 12GB TITAN card in one day? What happens when you are impecunious as I am with only a single 8GB 1070 card?

I give you this repo featuring group normalization version of 3d human pose heatmap with batch size = 1. Memory occupation around 4GB.

Still under construction, probably faster than BART extension project Only matches the performance of H1 (heatmap loss only) as of now.


Prelude

For data, source code and installation, see the following two repos.

I1

H1


Training

See definition of Adaptive I1, Manual in this repo.

  • d2 = 8

    • Adaptive I1

    Start from BN counterpart (model: net_iter_381324.caffemodel; solverstate: net_iter_381324.solverstate)

    cd ../../training/d2=8
    $CAFFE_ROOT/build/tools/caffe train --solver=solver_d8_ada_gn.prototxt --weights=net_iter_381324.caffemodel
    
    d2 lr "heatmap2" init std loss Caffe Model Solver State
    8 2.5e-5 to 5e-6 after 30000 0.01 Adaptive I1 net_iter_128489.caffemodel net_iter_128489.solverstate

    Train around 72 mm, test around 88 mm.

    • Manual
    $CAFFE_ROOT/build/tools/caffe train --solver=solver_d8_ada_gn_startgn_manual.prototxt --snapshot=net_iter_128489.solverstate
    
    d2 lr loss ratio of 2D HM:3D HM:integral loss Caffe Model Solver State
    8 1e-6 to 2e-7 after 37000 1:0.1:1 Manual net_iter_121531.caffemodel net_iter_121531.solverstate

    Train around 65 mm, test around 84 mm.

  • d2 = 16

    • Adaptive I1
    cd ../../training/d2=16
    $CAFFE_ROOT/build/tools/caffe train --solver=solver_d16_ada_gn_startgn.prototxt --snapshot=net_iter_121531.solverstate
    
    d2 lr "heatmap2" init std loss Caffe Model Solver State
    16 2.5e-5 to 5e-6 after 180000 0.01 Adaptive I1 net_iter_277648.caffemodel net_iter_277648.solverstate

    Train around 47 mm, test around 66 mm.

  • d2 = 32

    • Adaptive I1
    cd ../../training/d2=32
    $CAFFE_ROOT/build/tools/caffe train --solver=solver_d32_ada_gn_startgn.prototxt --snapshot=net_iter_277648.solverstate
    
    d2 lr "heatmap2" init std loss Caffe Model Solver State
    32 2.5e-5 to 5e-6 after 350000 0.01 Adaptive I1 net_iter_350104.caffemodel net_iter_350104.solverstate

    Train around 42 mm, test around 56 mm.

  • d2 = 64

    • Adaptive I1
    cd ../../training/d2=64
    $CAFFE_ROOT/build/tools/caffe train --solver=solver_d64_ada_gn_startgn.prototxt --snapshot=net_iter_350104.solverstate
    
    d2 lr "heatmap2" init std loss Caffe Model Solver State
    32 2.5e-5 to 5e-6 after 460000 0.01 Adaptive I1 net_iter_516722.caffemodel net_iter_516722.solverstate

About

This is a group norm implementation of 3d heatmap with batch size = 1.