From 60ba9d2f9e546b396a6b8775e48330ce9ab0d06a Mon Sep 17 00:00:00 2001 From: Shane Li Date: Wed, 1 Nov 2017 13:06:51 +0800 Subject: [PATCH 01/54] Fix delta_time show negative value issue --- src/caffe/solver.cpp | 46 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 894f8afc2..9d84fa06d 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -302,7 +302,7 @@ void Solver::Step(int iters) { net_->set_debug_info(display && param_.debug_info()); Timer iter_timer; - double iter_time = 0; + double iter_time = 0.0; iter_timer.Start(); Dtype loss = forward_backward_(); @@ -418,44 +418,44 @@ void Solver::ResetTimers() { this->forward_time_per_layer_total.end(), this->forward_time_per_layer.begin(), this->forward_time_per_layer_total.begin(), - std::plus()); + std::plus()); std::transform(this->backward_time_per_layer_total.begin(), this->backward_time_per_layer_total.end(), this->backward_time_per_layer.begin(), this->backward_time_per_layer_total.begin(), - std::plus()); + std::plus()); std::transform(this->update_time_per_layer_total.begin(), this->update_time_per_layer_total.end(), this->update_time_per_layer.begin(), this->update_time_per_layer_total.begin(), - std::plus()); + std::plus()); #ifdef USE_MLSL std::transform(this->startcomm_time_per_layer_total.begin(), this->startcomm_time_per_layer_total.end(), this->startcomm_time_per_layer.begin(), this->startcomm_time_per_layer_total.begin(), - std::plus()); + std::plus()); std::transform(this->waitcomm_time_per_layer_total.begin(), this->waitcomm_time_per_layer_total.end(), this->waitcomm_time_per_layer.begin(), this->waitcomm_time_per_layer_total.begin(), - std::plus()); + std::plus()); #endif std::fill(this->forward_time_per_layer.begin(), - this->forward_time_per_layer.end(), 0); + this->forward_time_per_layer.end(), 0.0); std::fill(this->backward_time_per_layer.begin(), - this->backward_time_per_layer.end(), 0); + this->backward_time_per_layer.end(), 0.0); std::fill(this->update_time_per_layer.begin(), - this->update_time_per_layer.end(), 0); + this->update_time_per_layer.end(), 0.0); #ifdef USE_MLSL std::fill(this->startcomm_time_per_layer.begin(), - this->startcomm_time_per_layer.end(), 0); + this->startcomm_time_per_layer.end(), 0.0); std::fill(this->waitcomm_time_per_layer.begin(), - this->waitcomm_time_per_layer.end(), 0); + this->waitcomm_time_per_layer.end(), 0.0); #endif } @@ -484,67 +484,67 @@ void Solver::PrintTimers(bool printTotal) { #endif double forward_time = std::accumulate(forward_timers.begin(), - forward_timers.end(), 0) / 1000; + forward_timers.end(), 0.0) / 1000.0; LOG(WARNING) << prefix << "FORWARD TIME: " << forward_time << " ms"; for (int layer_idx = 0; layer_idx < net_->layers().size(); layer_idx++) { LOG(WARNING) << "LAYER-" << layer_idx << " " << net_->layers()[layer_idx]->type() - << ": forward_time: " << forward_timers[layer_idx] / 1000 + << ": forward_time: " << forward_timers[layer_idx] / 1000.0 << " ms"; } LOG(WARNING) << std::endl; double backward_time = std::accumulate(backward_timers.begin(), - backward_timers.end(), 0) / 1000; + backward_timers.end(), 0.0) / 1000.0; LOG(WARNING) << prefix << "BACKWARD TIME: " << backward_time << " ms"; for (int layer_idx = 0; layer_idx < net_->layers().size(); layer_idx++) { LOG(WARNING) << "LAYER-" << layer_idx << " " << net_->layers()[layer_idx]->type() - << ": backward_time: " << backward_timers[layer_idx] / 1000 + << ": backward_time: " << backward_timers[layer_idx] / 1000.0 << " ms"; } LOG(WARNING) << std::endl; double update_time = std::accumulate(update_timers.begin(), - update_timers.end(), 0) / 1000; + update_timers.end(), 0.0) / 1000.0; LOG(WARNING) << prefix << "UPDATE TIME: " << update_time << " ms"; for (int layer_idx = 0; layer_idx < net_->layers().size(); layer_idx++) { LOG(WARNING) << "LAYER-" << layer_idx << " " << net_->layers()[layer_idx]->type() - << ": update_time: " << update_timers[layer_idx] / 1000 + << ": update_time: " << update_timers[layer_idx] / 1000.0 << " ms"; } LOG(WARNING) << std::endl; #ifdef USE_MLSL double startcomm_time = std::accumulate(startcomm_timers.begin(), - startcomm_timers.end(), 0) / 1000; + startcomm_timers.end(), 0.0) / 1000.0; LOG(WARNING) << prefix << "START COMMUNICATION TIME: " << startcomm_time << " ms"; for (int layer_idx = 0; layer_idx < net_->layers().size(); layer_idx++) { LOG(WARNING) << "LAYER-" << layer_idx << " " << net_->layers()[layer_idx]->type() - << ": startcomm_time: " << startcomm_timers[layer_idx] / 1000 + << ": startcomm_time: " << startcomm_timers[layer_idx] / 1000.0 << " ms"; } LOG(WARNING) << std::endl; double waitcomm_time = std::accumulate(waitcomm_timers.begin(), - waitcomm_timers.end(), 0) / 1000; + waitcomm_timers.end(), 0.0) / 1000.0; LOG(WARNING) << prefix << "WAIT COMMUNICATION TIME: " << waitcomm_time << " ms"; for (int layer_idx = 0; layer_idx < net_->layers().size(); layer_idx++) { LOG(WARNING) << "LAYER-" << layer_idx << " " << net_->layers()[layer_idx]->type() - << ": waitcomm_time: " << waitcomm_timers[layer_idx] / 1000 + << ": waitcomm_time: " << waitcomm_timers[layer_idx] / 1000.0 << " ms"; } LOG(WARNING) << std::endl; LOG(WARNING) << prefix << "TIME (Computation + Communication): " << (forward_time + - backward_time + update_time + startcomm_time + waitcomm_time) / 1000 + backward_time + update_time + startcomm_time + waitcomm_time) / 1000.0 << " sec"; #else LOG(WARNING) << prefix << "TIME (Computation): " << (forward_time + - backward_time + update_time) / 1000 << " sec"; + backward_time + update_time) / 1000.0 << " sec"; #endif LOG(WARNING) << "####################################################"; From dc160ae62c66b795727b155093b9eeb4fad08aa7 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Fri, 3 Nov 2017 11:50:45 +0800 Subject: [PATCH 02/54] support icc build in script --- scripts/prepare_env.sh | 131 +++++++++++++++++++++++++++++++++-------- 1 file changed, 107 insertions(+), 24 deletions(-) diff --git a/scripts/prepare_env.sh b/scripts/prepare_env.sh index 906e885ae..da7dd2b4f 100755 --- a/scripts/prepare_env.sh +++ b/scripts/prepare_env.sh @@ -4,10 +4,11 @@ function usage { script_name=$0 echo "Usage:" - echo " $script_name [--host host_file]" + echo " $script_name [--host host_file] [--compiler icc/gcc]" echo "" echo " Parameters:" echo " host: host file includes list of nodes. Only used when you want to install dependencies for multinode" + echo " compiler: specify compiler to build intel caffe. default compiler is icc." } function check_os @@ -35,8 +36,9 @@ function is_sudoer echo $sudo_passwd | sudo -S -E -v >/dev/null if [ $? -eq 1 ]; then echo "User $(whoami) is not sudoer, and cannot install dependencies." - exit 1 + return 1 fi + return 0 } # centos: yum; ubuntu: apt-get @@ -54,19 +56,10 @@ if [ "$os" == "centos" ]; then fi package_installer="$install_command -y " -username=`whoami` -if [ "$username" != "root" ]; -then - read -s -p "Enter password for $username: " sudo_passwd - is_sudoer - package_installer="echo $sudo_passwd | sudo -S -E $install_command -y " -fi - function install_deps { - echo "Install dependencies..." if [ "$os" == "centos" ]; then eval $package_installer clean all eval $package_installer upgrade @@ -126,7 +119,7 @@ function install_deps_multinode ansible all -m shell -a "systemctl stop firewalld.service" } -function build_caffe +function build_caffe_gcc { is_multinode_=$1 @@ -136,7 +129,7 @@ function build_caffe if [ $is_multinode_ -eq 1 ]; then echo "USE_MLSL := 1" >> Makefile.config echo "CAFFE_PER_LAYER_TIMINGS := 1" >> Makefile.config - + mlslvars_sh=`find external/mlsl/ -name mlslvars.sh` if [ -f $mlslvars_sh ]; then source $mlslvars_sh @@ -146,14 +139,62 @@ function build_caffe make -j 8 } -function sync_caffe_dir +root_dir=$(cd $(dirname $(dirname $0)); pwd) +boost_root=${root_dir} + +function download_build_boost { - caffe_dir=`pwd` - caffe_parent_dir=`dirname $caffe_dir` - ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" + # download boost + pushd ${root_dir} + + boost_lib=boost_1_64_0 + boost_zip_file=${boost_lib}.tar.bz2 + # clean + if [ -f $boost_zip_file ]; then + rm $boost_zip_file + fi + + echo "Download boost library..." + wget -c -t 0 https://dl.bintray.com/boostorg/release/1.64.0/source/${boost_zip_file} + echo "Unzip..." + tar -jxf ${boost_zip_file} + pushd ${boost_lib} + + # build boost + echo "Build boost library..." + boost_root=${root_dir}/${boost_lib}/install + ./bootstrap.sh + ./b2 install --prefix=$boost_root + + popd + popd +} + +function build_caffe_icc +{ + is_multinode_=$1 + cmake_params="-DCPU_ONLY=1 -DBOOST_ROOT=$boost_root" + if [ $is_multinode_ -eq 1 ]; then + cmake_params+=" -DUSE_MLSL=1 -DCAFFE_PER_LAYER_TIMINGS=1" + fi + + echo "Build Intel Caffe..." + mkdir build + cd build + + CC=icc CXX=icpc cmake .. $cmake_params + CC=icc CXX=icpc make all -j 8 } +function sync_caffe_dir +{ + caffe_dir=`pwd` + caffe_parent_dir=`dirname $caffe_dir` + ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" +} + +compiler="icc" host_file="" while [[ $# -gt 1 ]] do @@ -163,6 +204,10 @@ do host_file="$2" shift ;; + --compiler) + compiler="$2" + shift + ;; --help) usage exit 0 @@ -176,23 +221,61 @@ do shift done +# install dependencies +username=`whoami` +if [ "$username" != "root" ]; +then + read -s -p "Enter password for $username: " sudo_passwd + package_installer="echo $sudo_passwd | sudo -S -E $install_command -y " + is_sudoer +fi if [ $? -eq 0 ]; then - if [ "$host_file" == "" ]; then - install_deps - else - install_deps_multinode $host_file - fi + echo "Install dependencies..." +if [ "$host_file" == "" ]; then + install_deps +else + install_deps_multinode $host_file +fi fi +# build + +# check compiler +cplus_compiler="" +if [ "$compiler" == "icc" ]; then + cplus_compiler="icpc" +elif [ $compiler == "gcc" ]; then + cplus_compiler="g++" +else + echo "Invalid compiler: $compiler. Exit." + exit 1 +fi + +for bin in $compiler $cplus_compiler +do + check_dependency $bin + if [ $? -ne 0 ]; then + echo "Canot find compiler: $bin." + exit 1 + fi +done + is_multinode=0 if [ "$host_file" != "" ]; then is_multinode=1 fi -build_caffe $is_multinode + +echo "Build caffe by $compiler..." +if [ "$compiler" == "icc" ]; then + download_build_boost + build_caffe_icc $is_multinode +else + build_caffe_gcc $is_multinode +fi if [ $is_multinode -eq 1 ]; then - sync_caffe_dir + sync_caffe_dir fi echo "Done." From d8757d9af175aa6bacef3b74f3d8e1cc17a8a2d0 Mon Sep 17 00:00:00 2001 From: Shane Li Date: Fri, 3 Nov 2017 14:45:43 +0800 Subject: [PATCH 03/54] Add benchmark support for KNM and use new BKM Change-Id: I06a1b615f9b0067b524e54d9237796d05ddc4b59 --- .../alexnet/knm/solver_dummydata.prototxt | 25 + .../alexnet/knm/train_val_dummydata.prototxt | 394 ++ .../googlenet/knm/solver_dummydata.prototxt | 25 + .../knm/train_val_dummydata.prototxt | 2427 ++++++++++ .../knm/solver_dummydata.prototxt | 25 + .../knm/train_val_dummydata.prototxt | 4034 +++++++++++++++++ .../resnet_50/knm/solver_dummydata.prototxt | 25 + .../knm/train_val_dummydata.prototxt | 2294 ++++++++++ scripts/run_benchmark.sh | 12 +- scripts/run_intelcaffe.sh | 21 +- 10 files changed, 9278 insertions(+), 4 deletions(-) create mode 100644 models/intel_optimized_models/alexnet/knm/solver_dummydata.prototxt create mode 100644 models/intel_optimized_models/alexnet/knm/train_val_dummydata.prototxt create mode 100644 models/intel_optimized_models/googlenet/knm/solver_dummydata.prototxt create mode 100644 models/intel_optimized_models/googlenet/knm/train_val_dummydata.prototxt create mode 100644 models/intel_optimized_models/googlenet_v2/knm/solver_dummydata.prototxt create mode 100644 models/intel_optimized_models/googlenet_v2/knm/train_val_dummydata.prototxt create mode 100644 models/intel_optimized_models/resnet_50/knm/solver_dummydata.prototxt create mode 100644 models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt diff --git a/models/intel_optimized_models/alexnet/knm/solver_dummydata.prototxt b/models/intel_optimized_models/alexnet/knm/solver_dummydata.prototxt new file mode 100644 index 000000000..9cf1543c2 --- /dev/null +++ b/models/intel_optimized_models/alexnet/knm/solver_dummydata.prototxt @@ -0,0 +1,25 @@ +#This is Intel(R) optimized (in terms of time to train) version of solver for model described in the [AlexNet](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks) publication. +#Original solver.prototxt can be found in /models/bvlc_alexnet/ directory of this repository. +#Differences: +#- lr_policy is set to poly instead of step +#- base_lr is decreased to 0.007 +#- max_iter is decreased to 250000 +#- power is set to 0.6 +# +#Top-5 and Top-1 results achieved with this version of solver: +#Top-5: 80.4% +#Top-1: 57.4% +#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +net: "models/intel_optimized_models/alexnet/knm/train_val_dummydata.prototxt" +test_iter: 1000 +test_interval: 10000 +base_lr: 0.007 +lr_policy: "poly" +power: 0.6 +display: 1 +max_iter: 5000 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 50000 +snapshot_prefix: "models/intel_optimized_models/alexnet/knm/alexnet_train" +solver_mode: CPU diff --git a/models/intel_optimized_models/alexnet/knm/train_val_dummydata.prototxt b/models/intel_optimized_models/alexnet/knm/train_val_dummydata.prototxt new file mode 100644 index 000000000..36cb0de76 --- /dev/null +++ b/models/intel_optimized_models/alexnet/knm/train_val_dummydata.prototxt @@ -0,0 +1,394 @@ +name: "AlexNet" +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TRAIN + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 1024 dim: 3 dim: 224 dim: 224 } + shape: { dim: 1024 dim: 1 dim: 1 dim: 1 } + } +} +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TEST + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 1024 dim: 3 dim: 224 dim: 224 } + shape: { dim: 1024 dim: 1 dim: 1 dim: 1 } + } +} + +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "norm1" + type: "LRN" + bottom: "conv1" + top: "norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layer { + name: "pool1" + type: "Pooling" + bottom: "norm1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "pool1" + top: "conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "norm2" + type: "LRN" + bottom: "conv2" + top: "norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layer { + name: "pool2" + type: "Pooling" + bottom: "norm2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv3" + type: "Convolution" + bottom: "pool2" + top: "conv3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "conv4" + type: "Convolution" + bottom: "conv3" + top: "conv4" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu4" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "conv5" + type: "Convolution" + bottom: "conv4" + top: "conv5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu5" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "drop6" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "drop7" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} diff --git a/models/intel_optimized_models/googlenet/knm/solver_dummydata.prototxt b/models/intel_optimized_models/googlenet/knm/solver_dummydata.prototxt new file mode 100644 index 000000000..7456d6748 --- /dev/null +++ b/models/intel_optimized_models/googlenet/knm/solver_dummydata.prototxt @@ -0,0 +1,25 @@ +#This is Intel(R) optimized (in terms of time to train) version of solver for model described in the [AlexNet](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks) publication. +#Original solver.prototxt can be found in /models/bvlc_alexnet/ directory of this repository. +#Differences: +#- lr_policy is set to poly instead of step +#- base_lr is decreased to 0.007 +#- max_iter is decreased to 250000 +#- power is set to 0.6 +# +#Top-5 and Top-1 results achieved with this version of solver: +#Top-5: 80.4% +#Top-1: 57.4% +#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +net: "models/intel_optimized_models/googlenet/knm/train_val_dummydata.prototxt" +test_iter: 1000 +test_interval: 10000 +base_lr: 0.007 +lr_policy: "poly" +power: 0.6 +display: 1 +max_iter: 5000 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 50000 +snapshot_prefix: "models/intel_optimized_models/googlenet/knm/googlenet_train" +solver_mode: CPU diff --git a/models/intel_optimized_models/googlenet/knm/train_val_dummydata.prototxt b/models/intel_optimized_models/googlenet/knm/train_val_dummydata.prototxt new file mode 100644 index 000000000..602416008 --- /dev/null +++ b/models/intel_optimized_models/googlenet/knm/train_val_dummydata.prototxt @@ -0,0 +1,2427 @@ +name: "GoogleNet" +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TRAIN + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 128 dim: 3 dim: 224 dim: 224 } + shape: { dim: 128 dim: 1 dim: 1 dim: 1 } + } +} + +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TEST + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 128 dim: 3 dim: 224 dim: 224 } + shape: { dim: 128 dim: 1 dim: 1 dim: 1 } + } +} + +layer { + name: "conv1/7x7_s2" + type: "Convolution" + bottom: "data" + top: "conv1/7x7_s2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + pad: 3 + kernel_size: 7 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "conv1/relu_7x7" + type: "ReLU" + bottom: "conv1/7x7_s2" + top: "conv1/7x7_s2" +} +layer { + name: "pool1/3x3_s2" + type: "Pooling" + bottom: "conv1/7x7_s2" + top: "pool1/3x3_s2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "pool1/norm1" + type: "LRN" + bottom: "pool1/3x3_s2" + top: "pool1/norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layer { + name: "conv2/3x3_reduce" + type: "Convolution" + bottom: "pool1/norm1" + top: "conv2/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "conv2/relu_3x3_reduce" + type: "ReLU" + bottom: "conv2/3x3_reduce" + top: "conv2/3x3_reduce" +} +layer { + name: "conv2/3x3" + type: "Convolution" + bottom: "conv2/3x3_reduce" + top: "conv2/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "conv2/relu_3x3" + type: "ReLU" + bottom: "conv2/3x3" + top: "conv2/3x3" +} +layer { + name: "conv2/norm2" + type: "LRN" + bottom: "conv2/3x3" + top: "conv2/norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layer { + name: "pool2/3x3_s2" + type: "Pooling" + bottom: "conv2/norm2" + top: "pool2/3x3_s2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "inception_3a/1x1" + type: "Convolution" + bottom: "pool2/3x3_s2" + top: "inception_3a/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_1x1" + type: "ReLU" + bottom: "inception_3a/1x1" + top: "inception_3a/1x1" +} +layer { + name: "inception_3a/3x3_reduce" + type: "Convolution" + bottom: "pool2/3x3_s2" + top: "inception_3a/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_3a/3x3_reduce" + top: "inception_3a/3x3_reduce" +} +layer { + name: "inception_3a/3x3" + type: "Convolution" + bottom: "inception_3a/3x3_reduce" + top: "inception_3a/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_3x3" + type: "ReLU" + bottom: "inception_3a/3x3" + top: "inception_3a/3x3" +} +layer { + name: "inception_3a/5x5_reduce" + type: "Convolution" + bottom: "pool2/3x3_s2" + top: "inception_3a/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_3a/5x5_reduce" + top: "inception_3a/5x5_reduce" +} +layer { + name: "inception_3a/5x5" + type: "Convolution" + bottom: "inception_3a/5x5_reduce" + top: "inception_3a/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_5x5" + type: "ReLU" + bottom: "inception_3a/5x5" + top: "inception_3a/5x5" +} +layer { + name: "inception_3a/pool" + type: "Pooling" + bottom: "pool2/3x3_s2" + top: "inception_3a/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_3a/pool_proj" + type: "Convolution" + bottom: "inception_3a/pool" + top: "inception_3a/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3a/relu_pool_proj" + type: "ReLU" + bottom: "inception_3a/pool_proj" + top: "inception_3a/pool_proj" +} +layer { + name: "inception_3a/output" + type: "Concat" + bottom: "inception_3a/1x1" + bottom: "inception_3a/3x3" + bottom: "inception_3a/5x5" + bottom: "inception_3a/pool_proj" + top: "inception_3a/output" +} +layer { + name: "inception_3b/1x1" + type: "Convolution" + bottom: "inception_3a/output" + top: "inception_3b/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_1x1" + type: "ReLU" + bottom: "inception_3b/1x1" + top: "inception_3b/1x1" +} +layer { + name: "inception_3b/3x3_reduce" + type: "Convolution" + bottom: "inception_3a/output" + top: "inception_3b/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_3b/3x3_reduce" + top: "inception_3b/3x3_reduce" +} +layer { + name: "inception_3b/3x3" + type: "Convolution" + bottom: "inception_3b/3x3_reduce" + top: "inception_3b/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 192 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_3x3" + type: "ReLU" + bottom: "inception_3b/3x3" + top: "inception_3b/3x3" +} +layer { + name: "inception_3b/5x5_reduce" + type: "Convolution" + bottom: "inception_3a/output" + top: "inception_3b/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_3b/5x5_reduce" + top: "inception_3b/5x5_reduce" +} +layer { + name: "inception_3b/5x5" + type: "Convolution" + bottom: "inception_3b/5x5_reduce" + top: "inception_3b/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_5x5" + type: "ReLU" + bottom: "inception_3b/5x5" + top: "inception_3b/5x5" +} +layer { + name: "inception_3b/pool" + type: "Pooling" + bottom: "inception_3a/output" + top: "inception_3b/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_3b/pool_proj" + type: "Convolution" + bottom: "inception_3b/pool" + top: "inception_3b/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_3b/relu_pool_proj" + type: "ReLU" + bottom: "inception_3b/pool_proj" + top: "inception_3b/pool_proj" +} +layer { + name: "inception_3b/output" + type: "Concat" + bottom: "inception_3b/1x1" + bottom: "inception_3b/3x3" + bottom: "inception_3b/5x5" + bottom: "inception_3b/pool_proj" + top: "inception_3b/output" +} +layer { + name: "pool3/3x3_s2" + type: "Pooling" + bottom: "inception_3b/output" + top: "pool3/3x3_s2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "inception_4a/1x1" + type: "Convolution" + bottom: "pool3/3x3_s2" + top: "inception_4a/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_1x1" + type: "ReLU" + bottom: "inception_4a/1x1" + top: "inception_4a/1x1" +} +layer { + name: "inception_4a/3x3_reduce" + type: "Convolution" + bottom: "pool3/3x3_s2" + top: "inception_4a/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 96 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_4a/3x3_reduce" + top: "inception_4a/3x3_reduce" +} +layer { + name: "inception_4a/3x3" + type: "Convolution" + bottom: "inception_4a/3x3_reduce" + top: "inception_4a/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 208 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_3x3" + type: "ReLU" + bottom: "inception_4a/3x3" + top: "inception_4a/3x3" +} +layer { + name: "inception_4a/5x5_reduce" + type: "Convolution" + bottom: "pool3/3x3_s2" + top: "inception_4a/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 16 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_4a/5x5_reduce" + top: "inception_4a/5x5_reduce" +} +layer { + name: "inception_4a/5x5" + type: "Convolution" + bottom: "inception_4a/5x5_reduce" + top: "inception_4a/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 48 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_5x5" + type: "ReLU" + bottom: "inception_4a/5x5" + top: "inception_4a/5x5" +} +layer { + name: "inception_4a/pool" + type: "Pooling" + bottom: "pool3/3x3_s2" + top: "inception_4a/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_4a/pool_proj" + type: "Convolution" + bottom: "inception_4a/pool" + top: "inception_4a/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4a/relu_pool_proj" + type: "ReLU" + bottom: "inception_4a/pool_proj" + top: "inception_4a/pool_proj" +} +layer { + name: "inception_4a/output" + type: "Concat" + bottom: "inception_4a/1x1" + bottom: "inception_4a/3x3" + bottom: "inception_4a/5x5" + bottom: "inception_4a/pool_proj" + top: "inception_4a/output" +} +layer { + name: "loss1/ave_pool" + type: "Pooling" + bottom: "inception_4a/output" + top: "loss1/ave_pool" + pooling_param { + pool: AVE + kernel_size: 5 + stride: 3 + } +} +layer { + name: "loss1/conv" + type: "Convolution" + bottom: "loss1/ave_pool" + top: "loss1/conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "loss1/relu_conv" + type: "ReLU" + bottom: "loss1/conv" + top: "loss1/conv" +} +layer { + name: "loss1/fc" + type: "InnerProduct" + bottom: "loss1/conv" + top: "loss1/fc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1024 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "loss1/relu_fc" + type: "ReLU" + bottom: "loss1/fc" + top: "loss1/fc" +} +layer { + name: "loss1/drop_fc" + type: "Dropout" + bottom: "loss1/fc" + top: "loss1/fc" + dropout_param { + dropout_ratio: 0.7 + } +} +layer { + name: "loss1/classifier" + type: "InnerProduct" + bottom: "loss1/fc" + top: "loss1/classifier" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "loss1/loss" + type: "SoftmaxWithLoss" + bottom: "loss1/classifier" + bottom: "label" + top: "loss1/loss1" + loss_weight: 0.3 +} +layer { + name: "loss1/top-1" + type: "Accuracy" + bottom: "loss1/classifier" + bottom: "label" + top: "loss1/top-1" + include { + phase: TEST + } +} +layer { + name: "loss1/top-5" + type: "Accuracy" + bottom: "loss1/classifier" + bottom: "label" + top: "loss1/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} +layer { + name: "inception_4b/1x1" + type: "Convolution" + bottom: "inception_4a/output" + top: "inception_4b/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 160 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_1x1" + type: "ReLU" + bottom: "inception_4b/1x1" + top: "inception_4b/1x1" +} +layer { + name: "inception_4b/3x3_reduce" + type: "Convolution" + bottom: "inception_4a/output" + top: "inception_4b/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 112 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_4b/3x3_reduce" + top: "inception_4b/3x3_reduce" +} +layer { + name: "inception_4b/3x3" + type: "Convolution" + bottom: "inception_4b/3x3_reduce" + top: "inception_4b/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 224 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_3x3" + type: "ReLU" + bottom: "inception_4b/3x3" + top: "inception_4b/3x3" +} +layer { + name: "inception_4b/5x5_reduce" + type: "Convolution" + bottom: "inception_4a/output" + top: "inception_4b/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_4b/5x5_reduce" + top: "inception_4b/5x5_reduce" +} +layer { + name: "inception_4b/5x5" + type: "Convolution" + bottom: "inception_4b/5x5_reduce" + top: "inception_4b/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_5x5" + type: "ReLU" + bottom: "inception_4b/5x5" + top: "inception_4b/5x5" +} +layer { + name: "inception_4b/pool" + type: "Pooling" + bottom: "inception_4a/output" + top: "inception_4b/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_4b/pool_proj" + type: "Convolution" + bottom: "inception_4b/pool" + top: "inception_4b/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4b/relu_pool_proj" + type: "ReLU" + bottom: "inception_4b/pool_proj" + top: "inception_4b/pool_proj" +} +layer { + name: "inception_4b/output" + type: "Concat" + bottom: "inception_4b/1x1" + bottom: "inception_4b/3x3" + bottom: "inception_4b/5x5" + bottom: "inception_4b/pool_proj" + top: "inception_4b/output" +} +layer { + name: "inception_4c/1x1" + type: "Convolution" + bottom: "inception_4b/output" + top: "inception_4c/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_1x1" + type: "ReLU" + bottom: "inception_4c/1x1" + top: "inception_4c/1x1" +} +layer { + name: "inception_4c/3x3_reduce" + type: "Convolution" + bottom: "inception_4b/output" + top: "inception_4c/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_4c/3x3_reduce" + top: "inception_4c/3x3_reduce" +} +layer { + name: "inception_4c/3x3" + type: "Convolution" + bottom: "inception_4c/3x3_reduce" + top: "inception_4c/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_3x3" + type: "ReLU" + bottom: "inception_4c/3x3" + top: "inception_4c/3x3" +} +layer { + name: "inception_4c/5x5_reduce" + type: "Convolution" + bottom: "inception_4b/output" + top: "inception_4c/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 24 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_4c/5x5_reduce" + top: "inception_4c/5x5_reduce" +} +layer { + name: "inception_4c/5x5" + type: "Convolution" + bottom: "inception_4c/5x5_reduce" + top: "inception_4c/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_5x5" + type: "ReLU" + bottom: "inception_4c/5x5" + top: "inception_4c/5x5" +} +layer { + name: "inception_4c/pool" + type: "Pooling" + bottom: "inception_4b/output" + top: "inception_4c/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_4c/pool_proj" + type: "Convolution" + bottom: "inception_4c/pool" + top: "inception_4c/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4c/relu_pool_proj" + type: "ReLU" + bottom: "inception_4c/pool_proj" + top: "inception_4c/pool_proj" +} +layer { + name: "inception_4c/output" + type: "Concat" + bottom: "inception_4c/1x1" + bottom: "inception_4c/3x3" + bottom: "inception_4c/5x5" + bottom: "inception_4c/pool_proj" + top: "inception_4c/output" +} +layer { + name: "inception_4d/1x1" + type: "Convolution" + bottom: "inception_4c/output" + top: "inception_4d/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 112 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_1x1" + type: "ReLU" + bottom: "inception_4d/1x1" + top: "inception_4d/1x1" +} +layer { + name: "inception_4d/3x3_reduce" + type: "Convolution" + bottom: "inception_4c/output" + top: "inception_4d/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 144 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_4d/3x3_reduce" + top: "inception_4d/3x3_reduce" +} +layer { + name: "inception_4d/3x3" + type: "Convolution" + bottom: "inception_4d/3x3_reduce" + top: "inception_4d/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 288 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_3x3" + type: "ReLU" + bottom: "inception_4d/3x3" + top: "inception_4d/3x3" +} +layer { + name: "inception_4d/5x5_reduce" + type: "Convolution" + bottom: "inception_4c/output" + top: "inception_4d/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_4d/5x5_reduce" + top: "inception_4d/5x5_reduce" +} +layer { + name: "inception_4d/5x5" + type: "Convolution" + bottom: "inception_4d/5x5_reduce" + top: "inception_4d/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_5x5" + type: "ReLU" + bottom: "inception_4d/5x5" + top: "inception_4d/5x5" +} +layer { + name: "inception_4d/pool" + type: "Pooling" + bottom: "inception_4c/output" + top: "inception_4d/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_4d/pool_proj" + type: "Convolution" + bottom: "inception_4d/pool" + top: "inception_4d/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 64 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4d/relu_pool_proj" + type: "ReLU" + bottom: "inception_4d/pool_proj" + top: "inception_4d/pool_proj" +} +layer { + name: "inception_4d/output" + type: "Concat" + bottom: "inception_4d/1x1" + bottom: "inception_4d/3x3" + bottom: "inception_4d/5x5" + bottom: "inception_4d/pool_proj" + top: "inception_4d/output" +} +layer { + name: "loss2/ave_pool" + type: "Pooling" + bottom: "inception_4d/output" + top: "loss2/ave_pool" + pooling_param { + pool: AVE + kernel_size: 5 + stride: 3 + } +} +layer { + name: "loss2/conv" + type: "Convolution" + bottom: "loss2/ave_pool" + top: "loss2/conv" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "loss2/relu_conv" + type: "ReLU" + bottom: "loss2/conv" + top: "loss2/conv" +} +layer { + name: "loss2/fc" + type: "InnerProduct" + bottom: "loss2/conv" + top: "loss2/fc" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1024 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "loss2/relu_fc" + type: "ReLU" + bottom: "loss2/fc" + top: "loss2/fc" +} +layer { + name: "loss2/drop_fc" + type: "Dropout" + bottom: "loss2/fc" + top: "loss2/fc" + dropout_param { + dropout_ratio: 0.7 + } +} +layer { + name: "loss2/classifier" + type: "InnerProduct" + bottom: "loss2/fc" + top: "loss2/classifier" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "loss2/loss" + type: "SoftmaxWithLoss" + bottom: "loss2/classifier" + bottom: "label" + top: "loss2/loss1" + loss_weight: 0.3 +} +layer { + name: "loss2/top-1" + type: "Accuracy" + bottom: "loss2/classifier" + bottom: "label" + top: "loss2/top-1" + include { + phase: TEST + } +} +layer { + name: "loss2/top-5" + type: "Accuracy" + bottom: "loss2/classifier" + bottom: "label" + top: "loss2/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} +layer { + name: "inception_4e/1x1" + type: "Convolution" + bottom: "inception_4d/output" + top: "inception_4e/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_1x1" + type: "ReLU" + bottom: "inception_4e/1x1" + top: "inception_4e/1x1" +} +layer { + name: "inception_4e/3x3_reduce" + type: "Convolution" + bottom: "inception_4d/output" + top: "inception_4e/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 160 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_4e/3x3_reduce" + top: "inception_4e/3x3_reduce" +} +layer { + name: "inception_4e/3x3" + type: "Convolution" + bottom: "inception_4e/3x3_reduce" + top: "inception_4e/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 320 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_3x3" + type: "ReLU" + bottom: "inception_4e/3x3" + top: "inception_4e/3x3" +} +layer { + name: "inception_4e/5x5_reduce" + type: "Convolution" + bottom: "inception_4d/output" + top: "inception_4e/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_4e/5x5_reduce" + top: "inception_4e/5x5_reduce" +} +layer { + name: "inception_4e/5x5" + type: "Convolution" + bottom: "inception_4e/5x5_reduce" + top: "inception_4e/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_5x5" + type: "ReLU" + bottom: "inception_4e/5x5" + top: "inception_4e/5x5" +} +layer { + name: "inception_4e/pool" + type: "Pooling" + bottom: "inception_4d/output" + top: "inception_4e/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_4e/pool_proj" + type: "Convolution" + bottom: "inception_4e/pool" + top: "inception_4e/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_4e/relu_pool_proj" + type: "ReLU" + bottom: "inception_4e/pool_proj" + top: "inception_4e/pool_proj" +} +layer { + name: "inception_4e/output" + type: "Concat" + bottom: "inception_4e/1x1" + bottom: "inception_4e/3x3" + bottom: "inception_4e/5x5" + bottom: "inception_4e/pool_proj" + top: "inception_4e/output" +} +layer { + name: "pool4/3x3_s2" + type: "Pooling" + bottom: "inception_4e/output" + top: "pool4/3x3_s2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "inception_5a/1x1" + type: "Convolution" + bottom: "pool4/3x3_s2" + top: "inception_5a/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 256 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_1x1" + type: "ReLU" + bottom: "inception_5a/1x1" + top: "inception_5a/1x1" +} +layer { + name: "inception_5a/3x3_reduce" + type: "Convolution" + bottom: "pool4/3x3_s2" + top: "inception_5a/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 160 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_5a/3x3_reduce" + top: "inception_5a/3x3_reduce" +} +layer { + name: "inception_5a/3x3" + type: "Convolution" + bottom: "inception_5a/3x3_reduce" + top: "inception_5a/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 320 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_3x3" + type: "ReLU" + bottom: "inception_5a/3x3" + top: "inception_5a/3x3" +} +layer { + name: "inception_5a/5x5_reduce" + type: "Convolution" + bottom: "pool4/3x3_s2" + top: "inception_5a/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 32 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_5a/5x5_reduce" + top: "inception_5a/5x5_reduce" +} +layer { + name: "inception_5a/5x5" + type: "Convolution" + bottom: "inception_5a/5x5_reduce" + top: "inception_5a/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_5x5" + type: "ReLU" + bottom: "inception_5a/5x5" + top: "inception_5a/5x5" +} +layer { + name: "inception_5a/pool" + type: "Pooling" + bottom: "pool4/3x3_s2" + top: "inception_5a/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_5a/pool_proj" + type: "Convolution" + bottom: "inception_5a/pool" + top: "inception_5a/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5a/relu_pool_proj" + type: "ReLU" + bottom: "inception_5a/pool_proj" + top: "inception_5a/pool_proj" +} +layer { + name: "inception_5a/output" + type: "Concat" + bottom: "inception_5a/1x1" + bottom: "inception_5a/3x3" + bottom: "inception_5a/5x5" + bottom: "inception_5a/pool_proj" + top: "inception_5a/output" +} +layer { + name: "inception_5b/1x1" + type: "Convolution" + bottom: "inception_5a/output" + top: "inception_5b/1x1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_1x1" + type: "ReLU" + bottom: "inception_5b/1x1" + top: "inception_5b/1x1" +} +layer { + name: "inception_5b/3x3_reduce" + type: "Convolution" + bottom: "inception_5a/output" + top: "inception_5b/3x3_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 192 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_3x3_reduce" + type: "ReLU" + bottom: "inception_5b/3x3_reduce" + top: "inception_5b/3x3_reduce" +} +layer { + name: "inception_5b/3x3" + type: "Convolution" + bottom: "inception_5b/3x3_reduce" + top: "inception_5b/3x3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_3x3" + type: "ReLU" + bottom: "inception_5b/3x3" + top: "inception_5b/3x3" +} +layer { + name: "inception_5b/5x5_reduce" + type: "Convolution" + bottom: "inception_5a/output" + top: "inception_5b/5x5_reduce" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 48 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_5x5_reduce" + type: "ReLU" + bottom: "inception_5b/5x5_reduce" + top: "inception_5b/5x5_reduce" +} +layer { + name: "inception_5b/5x5" + type: "Convolution" + bottom: "inception_5b/5x5_reduce" + top: "inception_5b/5x5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + pad: 2 + kernel_size: 5 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_5x5" + type: "ReLU" + bottom: "inception_5b/5x5" + top: "inception_5b/5x5" +} +layer { + name: "inception_5b/pool" + type: "Pooling" + bottom: "inception_5a/output" + top: "inception_5b/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + name: "inception_5b/pool_proj" + type: "Convolution" + bottom: "inception_5b/pool" + top: "inception_5b/pool_proj" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "inception_5b/relu_pool_proj" + type: "ReLU" + bottom: "inception_5b/pool_proj" + top: "inception_5b/pool_proj" +} +layer { + name: "inception_5b/output" + type: "Concat" + bottom: "inception_5b/1x1" + bottom: "inception_5b/3x3" + bottom: "inception_5b/5x5" + bottom: "inception_5b/pool_proj" + top: "inception_5b/output" +} +layer { + name: "pool5/7x7_s1" + type: "Pooling" + bottom: "inception_5b/output" + top: "pool5/7x7_s1" + pooling_param { + pool: AVE + kernel_size: 7 + stride: 1 + } +} +layer { + name: "pool5/drop_7x7_s1" + type: "Dropout" + bottom: "pool5/7x7_s1" + top: "pool5/7x7_s1" + dropout_param { + dropout_ratio: 0.4 + } +} +layer { + name: "loss3/classifier" + type: "InnerProduct" + bottom: "pool5/7x7_s1" + top: "loss3/classifier" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "loss3/loss3" + type: "SoftmaxWithLoss" + bottom: "loss3/classifier" + bottom: "label" + top: "loss3/loss3" + loss_weight: 1 +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "loss3/classifier" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "loss3/classifier" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} diff --git a/models/intel_optimized_models/googlenet_v2/knm/solver_dummydata.prototxt b/models/intel_optimized_models/googlenet_v2/knm/solver_dummydata.prototxt new file mode 100644 index 000000000..9a64c3e00 --- /dev/null +++ b/models/intel_optimized_models/googlenet_v2/knm/solver_dummydata.prototxt @@ -0,0 +1,25 @@ +#This is Intel(R) optimized (in terms of time to train) version of solver for model described in the [AlexNet](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks) publication. +#Original solver.prototxt can be found in /models/bvlc_alexnet/ directory of this repository. +#Differences: +#- lr_policy is set to poly instead of step +#- base_lr is decreased to 0.007 +#- max_iter is decreased to 250000 +#- power is set to 0.6 +# +#Top-5 and Top-1 results achieved with this version of solver: +#Top-5: 80.4% +#Top-1: 57.4% +#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +net: "models/intel_optimized_models/googlenet_v2/knm/train_val_dummydata.prototxt" +test_iter: 1000 +test_interval: 10000 +base_lr: 0.007 +lr_policy: "poly" +power: 0.6 +display: 1 +max_iter: 5000 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 50000 +snapshot_prefix: "models/intel_optimized_models/googlenet_v2/knm/googlenet_v2_train" +solver_mode: CPU diff --git a/models/intel_optimized_models/googlenet_v2/knm/train_val_dummydata.prototxt b/models/intel_optimized_models/googlenet_v2/knm/train_val_dummydata.prototxt new file mode 100644 index 000000000..63ca66d97 --- /dev/null +++ b/models/intel_optimized_models/googlenet_v2/knm/train_val_dummydata.prototxt @@ -0,0 +1,4034 @@ +# Inception Network (GoogLeNet Batch Normalization Network) +name: "InceptionNetwork" +### Training Set +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TRAIN + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 128 dim: 3 dim: 224 dim: 224 } + shape: { dim: 128 dim: 1 dim: 1 dim: 1 } + } +} + +### Validation Set +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TEST + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 192 dim: 3 dim: 224 dim: 224 } + shape: { dim: 192 dim: 1 dim: 1 dim: 1 } + } +} + +layer { + bottom: "data" + top: "conv1/7x7_s2" + name: "conv1/7x7_s2" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 3 + kernel_size: 7 + stride: 2 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "conv1/7x7_s2" + name: "conv1/7x7_s2/bn" + top: "conv1/7x7_s2/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "conv1/7x7_s2/bn" + top: "conv1/7x7_s2/bn/sc" + name: "conv1/7x7_s2/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "conv1/7x7_s2/bn/sc" + top: "conv1/7x7_s2/bn/sc" + name: "conv1/7x7_s2/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1/7x7_s2/bn/sc" + top: "pool1/3x3_s2" + name: "pool1/3x3_s2" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + bottom: "pool1/3x3_s2" + top: "conv2/3x3_reduce" + name: "conv2/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "conv2/3x3_reduce" + name: "conv2/3x3_reduce/bn" + top: "conv2/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "conv2/3x3_reduce/bn" + top: "conv2/3x3_reduce/bn/sc" + name: "conv2/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "conv2/3x3_reduce/bn/sc" + top: "conv2/3x3_reduce/bn/sc" + name: "conv2/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2/3x3_reduce/bn/sc" + top: "conv2/3x3" + name: "conv2/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "conv2/3x3" + name: "conv2/3x3/bn" + top: "conv2/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "conv2/3x3/bn" + top: "conv2/3x3/bn/sc" + name: "conv2/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "conv2/3x3/bn/sc" + top: "conv2/3x3/bn/sc" + name: "conv2/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2/3x3/bn/sc" + top: "pool2/3x3_s2" + name: "pool2/3x3_s2" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + bottom: "pool2/3x3_s2" + top: "inception_3a/1x1" + name: "inception_3a/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/1x1" + name: "inception_3a/1x1/bn" + top: "inception_3a/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/1x1/bn" + top: "inception_3a/1x1/bn/sc" + name: "inception_3a/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/1x1/bn/sc" + top: "inception_3a/1x1/bn/sc" + name: "inception_3a/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "pool2/3x3_s2" + top: "inception_3a/3x3_reduce" + name: "inception_3a/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/3x3_reduce" + name: "inception_3a/3x3_reduce/bn" + top: "inception_3a/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/3x3_reduce/bn" + top: "inception_3a/3x3_reduce/bn/sc" + name: "inception_3a/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/3x3_reduce/bn/sc" + top: "inception_3a/3x3_reduce/bn/sc" + name: "inception_3a/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/3x3_reduce/bn/sc" + top: "inception_3a/3x3" + name: "inception_3a/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/3x3" + name: "inception_3a/3x3/bn" + top: "inception_3a/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/3x3/bn" + top: "inception_3a/3x3/bn/sc" + name: "inception_3a/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/3x3/bn/sc" + top: "inception_3a/3x3/bn/sc" + name: "inception_3a/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "pool2/3x3_s2" + top: "inception_3a/double3x3_reduce" + name: "inception_3a/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/double3x3_reduce" + name: "inception_3a/double3x3_reduce/bn" + top: "inception_3a/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/double3x3_reduce/bn" + top: "inception_3a/double3x3_reduce/bn/sc" + name: "inception_3a/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/double3x3_reduce/bn/sc" + top: "inception_3a/double3x3_reduce/bn/sc" + name: "inception_3a/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/double3x3_reduce/bn/sc" + top: "inception_3a/double3x3a" + name: "inception_3a/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/double3x3a" + name: "inception_3a/double3x3a/bn" + top: "inception_3a/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/double3x3a/bn" + top: "inception_3a/double3x3a/bn/sc" + name: "inception_3a/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/double3x3a/bn/sc" + top: "inception_3a/double3x3a/bn/sc" + name: "inception_3a/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/double3x3a/bn/sc" + top: "inception_3a/double3x3b" + name: "inception_3a/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/double3x3b" + name: "inception_3a/double3x3b/bn" + top: "inception_3a/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/double3x3b/bn" + top: "inception_3a/double3x3b/bn/sc" + name: "inception_3a/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/double3x3b/bn/sc" + top: "inception_3a/double3x3b/bn/sc" + name: "inception_3a/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "pool2/3x3_s2" + top: "inception_3a/pool" + name: "inception_3a/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_3a/pool" + top: "inception_3a/pool_proj" + name: "inception_3a/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 32 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3a/pool_proj" + name: "inception_3a/pool_proj/bn" + top: "inception_3a/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3a/pool_proj/bn" + top: "inception_3a/pool_proj/bn/sc" + name: "inception_3a/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3a/pool_proj/bn/sc" + top: "inception_3a/pool_proj/bn/sc" + name: "inception_3a/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/1x1/bn/sc" + bottom: "inception_3a/3x3/bn/sc" + bottom: "inception_3a/double3x3b/bn/sc" + bottom: "inception_3a/pool_proj/bn/sc" + top: "inception_3a/output" + name: "inception_3a/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_3a/output" + top: "inception_3b/1x1" + name: "inception_3b/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/1x1" + name: "inception_3b/1x1/bn" + top: "inception_3b/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/1x1/bn" + top: "inception_3b/1x1/bn/sc" + name: "inception_3b/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/1x1/bn/sc" + top: "inception_3b/1x1/bn/sc" + name: "inception_3b/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/output" + top: "inception_3b/3x3_reduce" + name: "inception_3b/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/3x3_reduce" + name: "inception_3b/3x3_reduce/bn" + top: "inception_3b/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/3x3_reduce/bn" + top: "inception_3b/3x3_reduce/bn/sc" + name: "inception_3b/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/3x3_reduce/bn/sc" + top: "inception_3b/3x3_reduce/bn/sc" + name: "inception_3b/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/3x3_reduce/bn/sc" + top: "inception_3b/3x3" + name: "inception_3b/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/3x3" + name: "inception_3b/3x3/bn" + top: "inception_3b/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/3x3/bn" + top: "inception_3b/3x3/bn/sc" + name: "inception_3b/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/3x3/bn/sc" + top: "inception_3b/3x3/bn/sc" + name: "inception_3b/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/output" + top: "inception_3b/double3x3_reduce" + name: "inception_3b/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/double3x3_reduce" + name: "inception_3b/double3x3_reduce/bn" + top: "inception_3b/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/double3x3_reduce/bn" + top: "inception_3b/double3x3_reduce/bn/sc" + name: "inception_3b/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/double3x3_reduce/bn/sc" + top: "inception_3b/double3x3_reduce/bn/sc" + name: "inception_3b/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/double3x3_reduce/bn/sc" + top: "inception_3b/double3x3a" + name: "inception_3b/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/double3x3a" + name: "inception_3b/double3x3a/bn" + top: "inception_3b/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/double3x3a/bn" + top: "inception_3b/double3x3a/bn/sc" + name: "inception_3b/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/double3x3a/bn/sc" + top: "inception_3b/double3x3a/bn/sc" + name: "inception_3b/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/double3x3a/bn/sc" + top: "inception_3b/double3x3b" + name: "inception_3b/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/double3x3b" + name: "inception_3b/double3x3b/bn" + top: "inception_3b/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/double3x3b/bn" + top: "inception_3b/double3x3b/bn/sc" + name: "inception_3b/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/double3x3b/bn/sc" + top: "inception_3b/double3x3b/bn/sc" + name: "inception_3b/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3a/output" + top: "inception_3b/pool" + name: "inception_3b/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_3b/pool" + top: "inception_3b/pool_proj" + name: "inception_3b/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3b/pool_proj" + name: "inception_3b/pool_proj/bn" + top: "inception_3b/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3b/pool_proj/bn" + top: "inception_3b/pool_proj/bn/sc" + name: "inception_3b/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3b/pool_proj/bn/sc" + top: "inception_3b/pool_proj/bn/sc" + name: "inception_3b/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/1x1/bn/sc" + bottom: "inception_3b/3x3/bn/sc" + bottom: "inception_3b/double3x3b/bn/sc" + bottom: "inception_3b/pool_proj/bn/sc" + top: "inception_3b/output" + name: "inception_3b/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_3b/output" + top: "inception_3c/3x3_reduce" + name: "inception_3c/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3c/3x3_reduce" + name: "inception_3c/3x3_reduce/bn" + top: "inception_3c/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3c/3x3_reduce/bn" + top: "inception_3c/3x3_reduce/bn/sc" + name: "inception_3c/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3c/3x3_reduce/bn/sc" + top: "inception_3c/3x3_reduce/bn/sc" + name: "inception_3c/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/3x3_reduce/bn/sc" + top: "inception_3c/3x3" + name: "inception_3c/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3c/3x3" + name: "inception_3c/3x3/bn" + top: "inception_3c/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3c/3x3/bn" + top: "inception_3c/3x3/bn/sc" + name: "inception_3c/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3c/3x3/bn/sc" + top: "inception_3c/3x3/bn/sc" + name: "inception_3c/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/output" + top: "inception_3c/double3x3_reduce" + name: "inception_3c/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3c/double3x3_reduce" + name: "inception_3c/double3x3_reduce/bn" + top: "inception_3c/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3c/double3x3_reduce/bn" + top: "inception_3c/double3x3_reduce/bn/sc" + name: "inception_3c/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3c/double3x3_reduce/bn/sc" + top: "inception_3c/double3x3_reduce/bn/sc" + name: "inception_3c/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/double3x3_reduce/bn/sc" + top: "inception_3c/double3x3a" + name: "inception_3c/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3c/double3x3a" + name: "inception_3c/double3x3a/bn" + top: "inception_3c/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3c/double3x3a/bn" + top: "inception_3c/double3x3a/bn/sc" + name: "inception_3c/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3c/double3x3a/bn/sc" + top: "inception_3c/double3x3a/bn/sc" + name: "inception_3c/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/double3x3a/bn/sc" + top: "inception_3c/double3x3b" + name: "inception_3c/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_3c/double3x3b" + name: "inception_3c/double3x3b/bn" + top: "inception_3c/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_3c/double3x3b/bn" + top: "inception_3c/double3x3b/bn/sc" + name: "inception_3c/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_3c/double3x3b/bn/sc" + top: "inception_3c/double3x3b/bn/sc" + name: "inception_3c/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3b/output" + top: "inception_3c/pool" + name: "inception_3c/pool" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + bottom: "inception_3c/3x3/bn/sc" + bottom: "inception_3c/double3x3b/bn/sc" + bottom: "inception_3c/pool" + top: "inception_3c/output" + name: "inception_3c/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_3c/output" + top: "pool3/5x5_s3" + name: "pool3/5x5_s3" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 5 + stride: 3 + } +} +layer { + bottom: "pool3/5x5_s3" + top: "loss1/conv" + name: "loss1/conv" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "loss1/conv" + name: "loss1/conv/bn" + top: "loss1/conv/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "loss1/conv/bn" + top: "loss1/conv/bn/sc" + name: "loss1/conv/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "loss1/conv/bn/sc" + top: "loss1/conv/bn/sc" + name: "loss1/conv/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "loss1/conv/bn/sc" + top: "loss1/fc" + name: "loss1/fc" + type: "InnerProduct" + param { + lr_mult: 1 + decay_mult: 1 + } + inner_product_param { + num_output: 1024 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "loss1/fc" + name: "loss1/fc/bn" + top: "loss1/fc/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "loss1/fc/bn" + top: "loss1/fc/bn/sc" + name: "loss1/fc/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "loss1/fc/bn/sc" + top: "loss1/fc/bn/sc" + name: "loss1/fc/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "loss1/fc/bn/sc" + top: "loss1/classifier" + name: "loss1/classifier" + type: "InnerProduct" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + bottom: "loss1/classifier" + bottom: "label" + top: "loss1/loss" + name: "loss1/loss" + type: "SoftmaxWithLoss" + loss_weight: 0.3 +} +layer { + bottom: "loss1/classifier" + top: "loss1/prob" + name: "loss1/prob" + type: "Softmax" + include { + phase: TEST + } +} +layer { + bottom: "loss1/prob" + bottom: "label" + top: "loss1/top-1" + name: "loss1/top-1" + type: "Accuracy" + include { + phase: TEST + } +} +layer { + bottom: "loss1/prob" + bottom: "label" + top: "loss1/top-5" + name: "loss1/top-5" + type: "Accuracy" + accuracy_param { + top_k: 5 + } + include { + phase: TEST + } +} +layer { + bottom: "inception_3c/output" + top: "inception_4a/1x1" + name: "inception_4a/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 224 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/1x1" + name: "inception_4a/1x1/bn" + top: "inception_4a/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/1x1/bn" + top: "inception_4a/1x1/bn/sc" + name: "inception_4a/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/1x1/bn/sc" + top: "inception_4a/1x1/bn/sc" + name: "inception_4a/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/output" + top: "inception_4a/3x3_reduce" + name: "inception_4a/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 64 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/3x3_reduce" + name: "inception_4a/3x3_reduce/bn" + top: "inception_4a/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/3x3_reduce/bn" + top: "inception_4a/3x3_reduce/bn/sc" + name: "inception_4a/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/3x3_reduce/bn/sc" + top: "inception_4a/3x3_reduce/bn/sc" + name: "inception_4a/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/3x3_reduce/bn/sc" + top: "inception_4a/3x3" + name: "inception_4a/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/3x3" + name: "inception_4a/3x3/bn" + top: "inception_4a/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/3x3/bn" + top: "inception_4a/3x3/bn/sc" + name: "inception_4a/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/3x3/bn/sc" + top: "inception_4a/3x3/bn/sc" + name: "inception_4a/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/output" + top: "inception_4a/double3x3_reduce" + name: "inception_4a/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/double3x3_reduce" + name: "inception_4a/double3x3_reduce/bn" + top: "inception_4a/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/double3x3_reduce/bn" + top: "inception_4a/double3x3_reduce/bn/sc" + name: "inception_4a/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/double3x3_reduce/bn/sc" + top: "inception_4a/double3x3_reduce/bn/sc" + name: "inception_4a/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/double3x3_reduce/bn/sc" + top: "inception_4a/double3x3a" + name: "inception_4a/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/double3x3a" + name: "inception_4a/double3x3a/bn" + top: "inception_4a/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/double3x3a/bn" + top: "inception_4a/double3x3a/bn/sc" + name: "inception_4a/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/double3x3a/bn/sc" + top: "inception_4a/double3x3a/bn/sc" + name: "inception_4a/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/double3x3a/bn/sc" + top: "inception_4a/double3x3b" + name: "inception_4a/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/double3x3b" + name: "inception_4a/double3x3b/bn" + top: "inception_4a/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/double3x3b/bn" + top: "inception_4a/double3x3b/bn/sc" + name: "inception_4a/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/double3x3b/bn/sc" + top: "inception_4a/double3x3b/bn/sc" + name: "inception_4a/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_3c/output" + top: "inception_4a/pool" + name: "inception_4a/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_4a/pool" + top: "inception_4a/pool_proj" + name: "inception_4a/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4a/pool_proj" + name: "inception_4a/pool_proj/bn" + top: "inception_4a/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4a/pool_proj/bn" + top: "inception_4a/pool_proj/bn/sc" + name: "inception_4a/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4a/pool_proj/bn/sc" + top: "inception_4a/pool_proj/bn/sc" + name: "inception_4a/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/1x1/bn/sc" + bottom: "inception_4a/3x3/bn/sc" + bottom: "inception_4a/double3x3b/bn/sc" + bottom: "inception_4a/pool_proj/bn/sc" + top: "inception_4a/output" + name: "inception_4a/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_4a/output" + top: "inception_4b/1x1" + name: "inception_4b/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/1x1" + name: "inception_4b/1x1/bn" + top: "inception_4b/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/1x1/bn" + top: "inception_4b/1x1/bn/sc" + name: "inception_4b/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/1x1/bn/sc" + top: "inception_4b/1x1/bn/sc" + name: "inception_4b/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/output" + top: "inception_4b/3x3_reduce" + name: "inception_4b/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/3x3_reduce" + name: "inception_4b/3x3_reduce/bn" + top: "inception_4b/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/3x3_reduce/bn" + top: "inception_4b/3x3_reduce/bn/sc" + name: "inception_4b/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/3x3_reduce/bn/sc" + top: "inception_4b/3x3_reduce/bn/sc" + name: "inception_4b/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/3x3_reduce/bn/sc" + top: "inception_4b/3x3" + name: "inception_4b/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/3x3" + name: "inception_4b/3x3/bn" + top: "inception_4b/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/3x3/bn" + top: "inception_4b/3x3/bn/sc" + name: "inception_4b/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/3x3/bn/sc" + top: "inception_4b/3x3/bn/sc" + name: "inception_4b/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/output" + top: "inception_4b/double3x3_reduce" + name: "inception_4b/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/double3x3_reduce" + name: "inception_4b/double3x3_reduce/bn" + top: "inception_4b/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/double3x3_reduce/bn" + top: "inception_4b/double3x3_reduce/bn/sc" + name: "inception_4b/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/double3x3_reduce/bn/sc" + top: "inception_4b/double3x3_reduce/bn/sc" + name: "inception_4b/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/double3x3_reduce/bn/sc" + top: "inception_4b/double3x3a" + name: "inception_4b/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/double3x3a" + name: "inception_4b/double3x3a/bn" + top: "inception_4b/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/double3x3a/bn" + top: "inception_4b/double3x3a/bn/sc" + name: "inception_4b/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/double3x3a/bn/sc" + top: "inception_4b/double3x3a/bn/sc" + name: "inception_4b/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/double3x3a/bn/sc" + top: "inception_4b/double3x3b" + name: "inception_4b/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/double3x3b" + name: "inception_4b/double3x3b/bn" + top: "inception_4b/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/double3x3b/bn" + top: "inception_4b/double3x3b/bn/sc" + name: "inception_4b/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/double3x3b/bn/sc" + top: "inception_4b/double3x3b/bn/sc" + name: "inception_4b/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4a/output" + top: "inception_4b/pool" + name: "inception_4b/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_4b/pool" + top: "inception_4b/pool_proj" + name: "inception_4b/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4b/pool_proj" + name: "inception_4b/pool_proj/bn" + top: "inception_4b/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4b/pool_proj/bn" + top: "inception_4b/pool_proj/bn/sc" + name: "inception_4b/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4b/pool_proj/bn/sc" + top: "inception_4b/pool_proj/bn/sc" + name: "inception_4b/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/1x1/bn/sc" + bottom: "inception_4b/3x3/bn/sc" + bottom: "inception_4b/double3x3b/bn/sc" + bottom: "inception_4b/pool_proj/bn/sc" + top: "inception_4b/output" + name: "inception_4b/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_4b/output" + top: "inception_4c/1x1" + name: "inception_4c/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/1x1" + name: "inception_4c/1x1/bn" + top: "inception_4c/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/1x1/bn" + top: "inception_4c/1x1/bn/sc" + name: "inception_4c/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/1x1/bn/sc" + top: "inception_4c/1x1/bn/sc" + name: "inception_4c/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/output" + top: "inception_4c/3x3_reduce" + name: "inception_4c/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/3x3_reduce" + name: "inception_4c/3x3_reduce/bn" + top: "inception_4c/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/3x3_reduce/bn" + top: "inception_4c/3x3_reduce/bn/sc" + name: "inception_4c/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/3x3_reduce/bn/sc" + top: "inception_4c/3x3_reduce/bn/sc" + name: "inception_4c/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/3x3_reduce/bn/sc" + top: "inception_4c/3x3" + name: "inception_4c/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/3x3" + name: "inception_4c/3x3/bn" + top: "inception_4c/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/3x3/bn" + top: "inception_4c/3x3/bn/sc" + name: "inception_4c/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/3x3/bn/sc" + top: "inception_4c/3x3/bn/sc" + name: "inception_4c/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/output" + top: "inception_4c/double3x3_reduce" + name: "inception_4c/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/double3x3_reduce" + name: "inception_4c/double3x3_reduce/bn" + top: "inception_4c/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/double3x3_reduce/bn" + top: "inception_4c/double3x3_reduce/bn/sc" + name: "inception_4c/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/double3x3_reduce/bn/sc" + top: "inception_4c/double3x3_reduce/bn/sc" + name: "inception_4c/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/double3x3_reduce/bn/sc" + top: "inception_4c/double3x3a" + name: "inception_4c/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/double3x3a" + name: "inception_4c/double3x3a/bn" + top: "inception_4c/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/double3x3a/bn" + top: "inception_4c/double3x3a/bn/sc" + name: "inception_4c/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/double3x3a/bn/sc" + top: "inception_4c/double3x3a/bn/sc" + name: "inception_4c/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/double3x3a/bn/sc" + top: "inception_4c/double3x3b" + name: "inception_4c/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/double3x3b" + name: "inception_4c/double3x3b/bn" + top: "inception_4c/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/double3x3b/bn" + top: "inception_4c/double3x3b/bn/sc" + name: "inception_4c/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/double3x3b/bn/sc" + top: "inception_4c/double3x3b/bn/sc" + name: "inception_4c/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4b/output" + top: "inception_4c/pool" + name: "inception_4c/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_4c/pool" + top: "inception_4c/pool_proj" + name: "inception_4c/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4c/pool_proj" + name: "inception_4c/pool_proj/bn" + top: "inception_4c/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4c/pool_proj/bn" + top: "inception_4c/pool_proj/bn/sc" + name: "inception_4c/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4c/pool_proj/bn/sc" + top: "inception_4c/pool_proj/bn/sc" + name: "inception_4c/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/1x1/bn/sc" + bottom: "inception_4c/3x3/bn/sc" + bottom: "inception_4c/double3x3b/bn/sc" + bottom: "inception_4c/pool_proj/bn/sc" + top: "inception_4c/output" + name: "inception_4c/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_4c/output" + top: "inception_4d/1x1" + name: "inception_4d/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/1x1" + name: "inception_4d/1x1/bn" + top: "inception_4d/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/1x1/bn" + top: "inception_4d/1x1/bn/sc" + name: "inception_4d/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/1x1/bn/sc" + top: "inception_4d/1x1/bn/sc" + name: "inception_4d/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/output" + top: "inception_4d/3x3_reduce" + name: "inception_4d/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/3x3_reduce" + name: "inception_4d/3x3_reduce/bn" + top: "inception_4d/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/3x3_reduce/bn" + top: "inception_4d/3x3_reduce/bn/sc" + name: "inception_4d/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/3x3_reduce/bn/sc" + top: "inception_4d/3x3_reduce/bn/sc" + name: "inception_4d/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/3x3_reduce/bn/sc" + top: "inception_4d/3x3" + name: "inception_4d/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/3x3" + name: "inception_4d/3x3/bn" + top: "inception_4d/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/3x3/bn" + top: "inception_4d/3x3/bn/sc" + name: "inception_4d/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/3x3/bn/sc" + top: "inception_4d/3x3/bn/sc" + name: "inception_4d/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/output" + top: "inception_4d/double3x3_reduce" + name: "inception_4d/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/double3x3_reduce" + name: "inception_4d/double3x3_reduce/bn" + top: "inception_4d/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/double3x3_reduce/bn" + top: "inception_4d/double3x3_reduce/bn/sc" + name: "inception_4d/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/double3x3_reduce/bn/sc" + top: "inception_4d/double3x3_reduce/bn/sc" + name: "inception_4d/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/double3x3_reduce/bn/sc" + top: "inception_4d/double3x3a" + name: "inception_4d/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/double3x3a" + name: "inception_4d/double3x3a/bn" + top: "inception_4d/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/double3x3a/bn" + top: "inception_4d/double3x3a/bn/sc" + name: "inception_4d/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/double3x3a/bn/sc" + top: "inception_4d/double3x3a/bn/sc" + name: "inception_4d/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/double3x3a/bn/sc" + top: "inception_4d/double3x3b" + name: "inception_4d/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/double3x3b" + name: "inception_4d/double3x3b/bn" + top: "inception_4d/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/double3x3b/bn" + top: "inception_4d/double3x3b/bn/sc" + name: "inception_4d/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/double3x3b/bn/sc" + top: "inception_4d/double3x3b/bn/sc" + name: "inception_4d/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4c/output" + top: "inception_4d/pool" + name: "inception_4d/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_4d/pool" + top: "inception_4d/pool_proj" + name: "inception_4d/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 96 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4d/pool_proj" + name: "inception_4d/pool_proj/bn" + top: "inception_4d/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4d/pool_proj/bn" + top: "inception_4d/pool_proj/bn/sc" + name: "inception_4d/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4d/pool_proj/bn/sc" + top: "inception_4d/pool_proj/bn/sc" + name: "inception_4d/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/1x1/bn/sc" + bottom: "inception_4d/3x3/bn/sc" + bottom: "inception_4d/double3x3b/bn/sc" + bottom: "inception_4d/pool_proj/bn/sc" + top: "inception_4d/output" + name: "inception_4d/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_4d/output" + top: "inception_4e/3x3_reduce" + name: "inception_4e/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4e/3x3_reduce" + name: "inception_4e/3x3_reduce/bn" + top: "inception_4e/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4e/3x3_reduce/bn" + top: "inception_4e/3x3_reduce/bn/sc" + name: "inception_4e/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4e/3x3_reduce/bn/sc" + top: "inception_4e/3x3_reduce/bn/sc" + name: "inception_4e/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/3x3_reduce/bn/sc" + top: "inception_4e/3x3" + name: "inception_4e/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4e/3x3" + name: "inception_4e/3x3/bn" + top: "inception_4e/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4e/3x3/bn" + top: "inception_4e/3x3/bn/sc" + name: "inception_4e/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4e/3x3/bn/sc" + top: "inception_4e/3x3/bn/sc" + name: "inception_4e/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/output" + top: "inception_4e/double3x3_reduce" + name: "inception_4e/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4e/double3x3_reduce" + name: "inception_4e/double3x3_reduce/bn" + top: "inception_4e/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4e/double3x3_reduce/bn" + top: "inception_4e/double3x3_reduce/bn/sc" + name: "inception_4e/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4e/double3x3_reduce/bn/sc" + top: "inception_4e/double3x3_reduce/bn/sc" + name: "inception_4e/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/double3x3_reduce/bn/sc" + top: "inception_4e/double3x3a" + name: "inception_4e/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4e/double3x3a" + name: "inception_4e/double3x3a/bn" + top: "inception_4e/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4e/double3x3a/bn" + top: "inception_4e/double3x3a/bn/sc" + name: "inception_4e/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4e/double3x3a/bn/sc" + top: "inception_4e/double3x3a/bn/sc" + name: "inception_4e/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/double3x3a/bn/sc" + top: "inception_4e/double3x3b" + name: "inception_4e/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_4e/double3x3b" + name: "inception_4e/double3x3b/bn" + top: "inception_4e/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_4e/double3x3b/bn" + top: "inception_4e/double3x3b/bn/sc" + name: "inception_4e/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_4e/double3x3b/bn/sc" + top: "inception_4e/double3x3b/bn/sc" + name: "inception_4e/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4d/output" + top: "inception_4e/pool" + name: "inception_4e/pool" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + bottom: "inception_4e/3x3/bn/sc" + bottom: "inception_4e/double3x3b/bn/sc" + bottom: "inception_4e/pool" + top: "inception_4e/output" + name: "inception_4e/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_4e/output" + top: "pool4/5x5_s3" + name: "pool4/5x5_s3" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 5 + stride: 3 + } +} +layer { + bottom: "pool4/5x5_s3" + top: "loss2/conv" + name: "loss2/conv" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "loss2/conv" + name: "loss2/conv/bn" + top: "loss2/conv/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "loss2/conv/bn" + top: "loss2/conv/bn/sc" + name: "loss2/conv/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "loss2/conv/bn/sc" + top: "loss2/conv/bn/sc" + name: "loss2/conv/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "loss2/conv/bn/sc" + top: "loss2/fc" + name: "loss2/fc" + type: "InnerProduct" + param { + lr_mult: 1 + decay_mult: 1 + } + inner_product_param { + num_output: 1024 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "loss2/fc" + name: "loss2/fc/bn" + top: "loss2/fc/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "loss2/fc/bn" + top: "loss2/fc/bn/sc" + name: "loss2/fc/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "loss2/fc/bn/sc" + top: "loss2/fc/bn/sc" + name: "loss2/fc/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "loss2/fc/bn/sc" + top: "loss2/classifier" + name: "loss2/classifier" + type: "InnerProduct" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + bottom: "loss2/classifier" + bottom: "label" + top: "loss2/loss" + name: "loss2/loss" + type: "SoftmaxWithLoss" + loss_weight: 0.3 +} +layer { + bottom: "loss2/classifier" + top: "loss2/prob" + name: "loss2/prob" + type: "Softmax" + include { + phase: TEST + } +} +layer { + bottom: "loss2/prob" + bottom: "label" + top: "loss2/top-1" + name: "loss2/top-1" + type: "Accuracy" + include { + phase: TEST + } +} +layer { + bottom: "loss2/prob" + bottom: "label" + top: "loss2/top-5" + name: "loss2/top-5" + type: "Accuracy" + accuracy_param { + top_k: 5 + } + include { + phase: TEST + } +} +layer { + bottom: "inception_4e/output" + top: "inception_5a/1x1" + name: "inception_5a/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 352 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/1x1" + name: "inception_5a/1x1/bn" + top: "inception_5a/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/1x1/bn" + top: "inception_5a/1x1/bn/sc" + name: "inception_5a/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/1x1/bn/sc" + top: "inception_5a/1x1/bn/sc" + name: "inception_5a/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/output" + top: "inception_5a/3x3_reduce" + name: "inception_5a/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/3x3_reduce" + name: "inception_5a/3x3_reduce/bn" + top: "inception_5a/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/3x3_reduce/bn" + top: "inception_5a/3x3_reduce/bn/sc" + name: "inception_5a/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/3x3_reduce/bn/sc" + top: "inception_5a/3x3_reduce/bn/sc" + name: "inception_5a/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/3x3_reduce/bn/sc" + top: "inception_5a/3x3" + name: "inception_5a/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 320 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/3x3" + name: "inception_5a/3x3/bn" + top: "inception_5a/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/3x3/bn" + top: "inception_5a/3x3/bn/sc" + name: "inception_5a/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/3x3/bn/sc" + top: "inception_5a/3x3/bn/sc" + name: "inception_5a/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/output" + top: "inception_5a/double3x3_reduce" + name: "inception_5a/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 160 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/double3x3_reduce" + name: "inception_5a/double3x3_reduce/bn" + top: "inception_5a/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/double3x3_reduce/bn" + top: "inception_5a/double3x3_reduce/bn/sc" + name: "inception_5a/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/double3x3_reduce/bn/sc" + top: "inception_5a/double3x3_reduce/bn/sc" + name: "inception_5a/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/double3x3_reduce/bn/sc" + top: "inception_5a/double3x3a" + name: "inception_5a/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 224 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/double3x3a" + name: "inception_5a/double3x3a/bn" + top: "inception_5a/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/double3x3a/bn" + top: "inception_5a/double3x3a/bn/sc" + name: "inception_5a/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/double3x3a/bn/sc" + top: "inception_5a/double3x3a/bn/sc" + name: "inception_5a/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/double3x3a/bn/sc" + top: "inception_5a/double3x3b" + name: "inception_5a/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 224 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/double3x3b" + name: "inception_5a/double3x3b/bn" + top: "inception_5a/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/double3x3b/bn" + top: "inception_5a/double3x3b/bn/sc" + name: "inception_5a/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/double3x3b/bn/sc" + top: "inception_5a/double3x3b/bn/sc" + name: "inception_5a/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_4e/output" + top: "inception_5a/pool" + name: "inception_5a/pool" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_5a/pool" + top: "inception_5a/pool_proj" + name: "inception_5a/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5a/pool_proj" + name: "inception_5a/pool_proj/bn" + top: "inception_5a/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5a/pool_proj/bn" + top: "inception_5a/pool_proj/bn/sc" + name: "inception_5a/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5a/pool_proj/bn/sc" + top: "inception_5a/pool_proj/bn/sc" + name: "inception_5a/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/1x1/bn/sc" + bottom: "inception_5a/3x3/bn/sc" + bottom: "inception_5a/double3x3b/bn/sc" + bottom: "inception_5a/pool_proj/bn/sc" + top: "inception_5a/output" + name: "inception_5a/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_5a/output" + top: "inception_5b/1x1" + name: "inception_5b/1x1" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 352 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/1x1" + name: "inception_5b/1x1/bn" + top: "inception_5b/1x1/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/1x1/bn" + top: "inception_5b/1x1/bn/sc" + name: "inception_5b/1x1/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/1x1/bn/sc" + top: "inception_5b/1x1/bn/sc" + name: "inception_5b/1x1/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/output" + top: "inception_5b/3x3_reduce" + name: "inception_5b/3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/3x3_reduce" + name: "inception_5b/3x3_reduce/bn" + top: "inception_5b/3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/3x3_reduce/bn" + top: "inception_5b/3x3_reduce/bn/sc" + name: "inception_5b/3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/3x3_reduce/bn/sc" + top: "inception_5b/3x3_reduce/bn/sc" + name: "inception_5b/3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5b/3x3_reduce/bn/sc" + top: "inception_5b/3x3" + name: "inception_5b/3x3" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 320 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/3x3" + name: "inception_5b/3x3/bn" + top: "inception_5b/3x3/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/3x3/bn" + top: "inception_5b/3x3/bn/sc" + name: "inception_5b/3x3/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/3x3/bn/sc" + top: "inception_5b/3x3/bn/sc" + name: "inception_5b/3x3/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/output" + top: "inception_5b/double3x3_reduce" + name: "inception_5b/double3x3_reduce" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 192 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/double3x3_reduce" + name: "inception_5b/double3x3_reduce/bn" + top: "inception_5b/double3x3_reduce/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/double3x3_reduce/bn" + top: "inception_5b/double3x3_reduce/bn/sc" + name: "inception_5b/double3x3_reduce/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/double3x3_reduce/bn/sc" + top: "inception_5b/double3x3_reduce/bn/sc" + name: "inception_5b/double3x3_reduce/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5b/double3x3_reduce/bn/sc" + top: "inception_5b/double3x3a" + name: "inception_5b/double3x3a" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 224 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/double3x3a" + name: "inception_5b/double3x3a/bn" + top: "inception_5b/double3x3a/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/double3x3a/bn" + top: "inception_5b/double3x3a/bn/sc" + name: "inception_5b/double3x3a/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/double3x3a/bn/sc" + top: "inception_5b/double3x3a/bn/sc" + name: "inception_5b/double3x3a/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5b/double3x3a/bn/sc" + top: "inception_5b/double3x3b" + name: "inception_5b/double3x3b" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 224 + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/double3x3b" + name: "inception_5b/double3x3b/bn" + top: "inception_5b/double3x3b/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/double3x3b/bn" + top: "inception_5b/double3x3b/bn/sc" + name: "inception_5b/double3x3b/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/double3x3b/bn/sc" + top: "inception_5b/double3x3b/bn/sc" + name: "inception_5b/double3x3b/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5a/output" + top: "inception_5b/pool" + name: "inception_5b/pool" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 3 + stride: 1 + pad: 1 + } +} +layer { + bottom: "inception_5b/pool" + top: "inception_5b/pool_proj" + name: "inception_5b/pool_proj" + type: "Convolution" + param { + lr_mult: 1 + decay_mult: 1 + } + convolution_param { + + num_output: 128 + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "xavier" + } + bias_term: false + } +} +layer { + bottom: "inception_5b/pool_proj" + name: "inception_5b/pool_proj/bn" + top: "inception_5b/pool_proj/bn" + type: "BatchNorm" + batch_norm_param { + + } +} +layer { + bottom: "inception_5b/pool_proj/bn" + top: "inception_5b/pool_proj/bn/sc" + name: "inception_5b/pool_proj/bn/sc" + type: "Scale" + scale_param { + bias_term: true + } +} +layer { + bottom: "inception_5b/pool_proj/bn/sc" + top: "inception_5b/pool_proj/bn/sc" + name: "inception_5b/pool_proj/bn/sc/relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "inception_5b/1x1/bn/sc" + bottom: "inception_5b/3x3/bn/sc" + bottom: "inception_5b/double3x3b/bn/sc" + bottom: "inception_5b/pool_proj/bn/sc" + top: "inception_5b/output" + name: "inception_5b/output" + type: "Concat" + concat_param { + + } +} +layer { + bottom: "inception_5b/output" + top: "pool5/7x7_s1" + name: "pool5/7x7_s1" + type: "Pooling" + pooling_param { + + pool: AVE + kernel_size: 7 + stride: 1 + } +} +layer { + bottom: "pool5/7x7_s1" + top: "loss3/classifier" + name: "loss3/classifier" + type: "InnerProduct" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 0 + } + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + bottom: "loss3/classifier" + bottom: "label" + top: "loss3/loss" + name: "loss3/loss" + type: "SoftmaxWithLoss" + loss_weight: 1 +} +layer { + bottom: "loss3/classifier" + top: "loss3/prob" + name: "loss3/prob" + type: "Softmax" + include { + phase: TEST + } +} +layer { + bottom: "loss3/prob" + bottom: "label" + top: "loss3/top-1" + name: "loss3/top-1" + type: "Accuracy" + include { + phase: TEST + } +} +layer { + bottom: "loss3/prob" + bottom: "label" + top: "loss3/top-5" + name: "loss3/top-5" + type: "Accuracy" + accuracy_param { + top_k: 5 + } + include { + phase: TEST + } +} diff --git a/models/intel_optimized_models/resnet_50/knm/solver_dummydata.prototxt b/models/intel_optimized_models/resnet_50/knm/solver_dummydata.prototxt new file mode 100644 index 000000000..3d241ead2 --- /dev/null +++ b/models/intel_optimized_models/resnet_50/knm/solver_dummydata.prototxt @@ -0,0 +1,25 @@ +#This is Intel(R) optimized (in terms of time to train) version of solver for model described in the [AlexNet](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks) publication. +#Original solver.prototxt can be found in /models/bvlc_alexnet/ directory of this repository. +#Differences: +#- lr_policy is set to poly instead of step +#- base_lr is decreased to 0.007 +#- max_iter is decreased to 250000 +#- power is set to 0.6 +# +#Top-5 and Top-1 results achieved with this version of solver: +#Top-5: 80.4% +#Top-1: 57.4% +#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +net: "models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt" +test_iter: 1000 +test_interval: 10000 +base_lr: 0.007 +lr_policy: "poly" +power: 0.6 +display: 1 +max_iter: 5000 +momentum: 0.9 +weight_decay: 0.0005 +snapshot: 50000 +snapshot_prefix: "models/intel_optimized_models/resnet_50/knm/resnet_50_train" +solver_mode: CPU diff --git a/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt b/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt new file mode 100644 index 000000000..f0f4ffd60 --- /dev/null +++ b/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt @@ -0,0 +1,2294 @@ +#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. +# +#Top-5 and Top-1 results achieved with this topology: +#Top-5: 92% +#Top-1: 73.9% +#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TRAIN + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 64 dim: 3 dim: 224 dim: 224 } + shape: { dim: 64 dim: 1 dim: 1 dim: 1 } + } +} + +layer { + name: "data" + type: "DummyData" + top: "data" + top: "label" + include { + phase: TEST + } + dummy_data_param { + data_filler { + type: "constant" + value: 0.01 + } + shape: { dim: 128 dim: 3 dim: 224 dim: 224 } + shape: { dim: 128 dim: 1 dim: 1 dim: 1 } + } +} + + +layer { +name: "conv1" +type: "Convolution" +bottom: "data" +top: "conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +param { + lr_mult: 2.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + pad: 3 + kernel_size: 7 + stride: 2 + weight_filler { + type: "msra" + variance_norm: FAN_OUT + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "conv1_bn" +type: "BatchNorm" +bottom: "conv1" +top: "conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "conv1_relu" +type: "ReLU" +bottom: "conv1_pcs_arm_sim" +top: "conv1_pcs_arm_sim" + +} +layer { +name: "conv1_pool" +type: "Pooling" +bottom: "conv1_pcs_arm_sim" +top: "conv1_pool" +pooling_param { + kernel_size: 3 + stride: 2 +} + +} +layer { +name: "layer_64_1_conv1" +type: "Convolution" +bottom: "conv1_pool" +top: "layer_64_1_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_1_bn2" +type: "BatchNorm" +bottom: "layer_64_1_conv1" +top: "layer_64_1_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_1_relu2" +type: "ReLU" +bottom: "layer_64_1_conv1_pcs_arm_sim" +top: "layer_64_1_conv1_pcs_arm_sim" + +} +layer { +name: "layer_64_1_conv2" +type: "Convolution" +bottom: "layer_64_1_conv1_pcs_arm_sim" +top: "layer_64_1_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_1_bn3" +type: "BatchNorm" +bottom: "layer_64_1_conv2" +top: "layer_64_1_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_1_relu3" +type: "ReLU" +bottom: "layer_64_1_conv2_pcs_arm_sim" +top: "layer_64_1_conv2_pcs_arm_sim" + +} +layer { +name: "layer_64_1_conv3" +type: "Convolution" +bottom: "layer_64_1_conv2_pcs_arm_sim" +top: "layer_64_1_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_1_conv_expand" +type: "Convolution" +bottom: "layer_64_1_conv1_pcs_arm_sim" +top: "layer_64_1_conv_expand" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_1_sum" +type: "Eltwise" +bottom: "layer_64_1_conv3" +bottom: "layer_64_1_conv_expand" +top: "layer_64_1_sum" + +} +layer { +name: "layer_64_2_bn1" +type: "BatchNorm" +bottom: "layer_64_1_sum" +top: "layer_64_2_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_2_relu1" +type: "ReLU" +bottom: "layer_64_2_bn1_pcs_arm_sim" +top: "layer_64_2_bn1_pcs_arm_sim" + +} +layer { +name: "layer_64_2_conv1" +type: "Convolution" +bottom: "layer_64_2_bn1_pcs_arm_sim" +top: "layer_64_2_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_2_bn2" +type: "BatchNorm" +bottom: "layer_64_2_conv1" +top: "layer_64_2_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_2_relu2" +type: "ReLU" +bottom: "layer_64_2_conv1_pcs_arm_sim" +top: "layer_64_2_conv1_pcs_arm_sim" + +} +layer { +name: "layer_64_2_conv2" +type: "Convolution" +bottom: "layer_64_2_conv1_pcs_arm_sim" +top: "layer_64_2_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_2_bn3" +type: "BatchNorm" +bottom: "layer_64_2_conv2" +top: "layer_64_2_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_2_relu3" +type: "ReLU" +bottom: "layer_64_2_conv2_pcs_arm_sim" +top: "layer_64_2_conv2_pcs_arm_sim" + +} +layer { +name: "layer_64_2_conv3" +type: "Convolution" +bottom: "layer_64_2_conv2_pcs_arm_sim" +top: "layer_64_2_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_2_sum" +type: "Eltwise" +bottom: "layer_64_2_conv3" +bottom: "layer_64_1_sum" +top: "layer_64_2_sum" + +} +layer { +name: "layer_64_3_bn1" +type: "BatchNorm" +bottom: "layer_64_2_sum" +top: "layer_64_3_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_3_relu1" +type: "ReLU" +bottom: "layer_64_3_bn1_pcs_arm_sim" +top: "layer_64_3_bn1_pcs_arm_sim" + +} +layer { +name: "layer_64_3_conv1" +type: "Convolution" +bottom: "layer_64_3_bn1_pcs_arm_sim" +top: "layer_64_3_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_3_bn2" +type: "BatchNorm" +bottom: "layer_64_3_conv1" +top: "layer_64_3_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_3_relu2" +type: "ReLU" +bottom: "layer_64_3_conv1_pcs_arm_sim" +top: "layer_64_3_conv1_pcs_arm_sim" + +} +layer { +name: "layer_64_3_conv2" +type: "Convolution" +bottom: "layer_64_3_conv1_pcs_arm_sim" +top: "layer_64_3_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 64 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_3_bn3" +type: "BatchNorm" +bottom: "layer_64_3_conv2" +top: "layer_64_3_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_64_3_relu3" +type: "ReLU" +bottom: "layer_64_3_conv2_pcs_arm_sim" +top: "layer_64_3_conv2_pcs_arm_sim" + +} +layer { +name: "layer_64_3_conv3" +type: "Convolution" +bottom: "layer_64_3_conv2_pcs_arm_sim" +top: "layer_64_3_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_64_3_sum" +type: "Eltwise" +bottom: "layer_64_3_conv3" +bottom: "layer_64_2_sum" +top: "layer_64_3_sum" + +} +layer { +name: "layer_128_1_bn1" +type: "BatchNorm" +bottom: "layer_64_3_sum" +top: "layer_128_1_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_1_relu1" +type: "ReLU" +bottom: "layer_128_1_bn1_pcs_arm_sim" +top: "layer_128_1_bn1_pcs_arm_sim" + +} +layer { +name: "layer_128_1_conv1" +type: "Convolution" +bottom: "layer_128_1_bn1_pcs_arm_sim" +top: "layer_128_1_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_1_bn2" +type: "BatchNorm" +bottom: "layer_128_1_conv1" +top: "layer_128_1_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_1_relu2" +type: "ReLU" +bottom: "layer_128_1_conv1_pcs_arm_sim" +top: "layer_128_1_conv1_pcs_arm_sim" + +} +layer { +name: "layer_128_1_conv2" +type: "Convolution" +bottom: "layer_128_1_conv1_pcs_arm_sim" +top: "layer_128_1_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_1_bn3" +type: "BatchNorm" +bottom: "layer_128_1_conv2" +top: "layer_128_1_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_1_relu3" +type: "ReLU" +bottom: "layer_128_1_conv2_pcs_arm_sim" +top: "layer_128_1_conv2_pcs_arm_sim" + +} +layer { +name: "layer_128_1_conv3" +type: "Convolution" +bottom: "layer_128_1_conv2_pcs_arm_sim" +top: "layer_128_1_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_1_conv_expand" +type: "Convolution" +bottom: "layer_128_1_bn1_pcs_arm_sim" +top: "layer_128_1_conv_expand" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_1_sum" +type: "Eltwise" +bottom: "layer_128_1_conv3" +bottom: "layer_128_1_conv_expand" +top: "layer_128_1_sum" + +} +layer { +name: "layer_128_2_bn1" +type: "BatchNorm" +bottom: "layer_128_1_sum" +top: "layer_128_2_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_2_relu1" +type: "ReLU" +bottom: "layer_128_2_bn1_pcs_arm_sim" +top: "layer_128_2_bn1_pcs_arm_sim" + +} +layer { +name: "layer_128_2_conv1" +type: "Convolution" +bottom: "layer_128_2_bn1_pcs_arm_sim" +top: "layer_128_2_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_2_bn2" +type: "BatchNorm" +bottom: "layer_128_2_conv1" +top: "layer_128_2_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_2_relu2" +type: "ReLU" +bottom: "layer_128_2_conv1_pcs_arm_sim" +top: "layer_128_2_conv1_pcs_arm_sim" + +} +layer { +name: "layer_128_2_conv2" +type: "Convolution" +bottom: "layer_128_2_conv1_pcs_arm_sim" +top: "layer_128_2_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_2_bn3" +type: "BatchNorm" +bottom: "layer_128_2_conv2" +top: "layer_128_2_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_2_relu3" +type: "ReLU" +bottom: "layer_128_2_conv2_pcs_arm_sim" +top: "layer_128_2_conv2_pcs_arm_sim" + +} +layer { +name: "layer_128_2_conv3" +type: "Convolution" +bottom: "layer_128_2_conv2_pcs_arm_sim" +top: "layer_128_2_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_2_sum" +type: "Eltwise" +bottom: "layer_128_2_conv3" +bottom: "layer_128_1_sum" +top: "layer_128_2_sum" + +} +layer { +name: "layer_128_3_bn1" +type: "BatchNorm" +bottom: "layer_128_2_sum" +top: "layer_128_3_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_3_relu1" +type: "ReLU" +bottom: "layer_128_3_bn1_pcs_arm_sim" +top: "layer_128_3_bn1_pcs_arm_sim" + +} +layer { +name: "layer_128_3_conv1" +type: "Convolution" +bottom: "layer_128_3_bn1_pcs_arm_sim" +top: "layer_128_3_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_3_bn2" +type: "BatchNorm" +bottom: "layer_128_3_conv1" +top: "layer_128_3_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_3_relu2" +type: "ReLU" +bottom: "layer_128_3_conv1_pcs_arm_sim" +top: "layer_128_3_conv1_pcs_arm_sim" + +} +layer { +name: "layer_128_3_conv2" +type: "Convolution" +bottom: "layer_128_3_conv1_pcs_arm_sim" +top: "layer_128_3_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_3_bn3" +type: "BatchNorm" +bottom: "layer_128_3_conv2" +top: "layer_128_3_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_3_relu3" +type: "ReLU" +bottom: "layer_128_3_conv2_pcs_arm_sim" +top: "layer_128_3_conv2_pcs_arm_sim" + +} +layer { +name: "layer_128_3_conv3" +type: "Convolution" +bottom: "layer_128_3_conv2_pcs_arm_sim" +top: "layer_128_3_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_3_sum" +type: "Eltwise" +bottom: "layer_128_3_conv3" +bottom: "layer_128_2_sum" +top: "layer_128_3_sum" + +} +layer { +name: "layer_128_4_bn1" +type: "BatchNorm" +bottom: "layer_128_3_sum" +top: "layer_128_4_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_4_relu1" +type: "ReLU" +bottom: "layer_128_4_bn1_pcs_arm_sim" +top: "layer_128_4_bn1_pcs_arm_sim" + +} +layer { +name: "layer_128_4_conv1" +type: "Convolution" +bottom: "layer_128_4_bn1_pcs_arm_sim" +top: "layer_128_4_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_4_bn2" +type: "BatchNorm" +bottom: "layer_128_4_conv1" +top: "layer_128_4_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_4_relu2" +type: "ReLU" +bottom: "layer_128_4_conv1_pcs_arm_sim" +top: "layer_128_4_conv1_pcs_arm_sim" + +} +layer { +name: "layer_128_4_conv2" +type: "Convolution" +bottom: "layer_128_4_conv1_pcs_arm_sim" +top: "layer_128_4_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 128 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_4_bn3" +type: "BatchNorm" +bottom: "layer_128_4_conv2" +top: "layer_128_4_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_128_4_relu3" +type: "ReLU" +bottom: "layer_128_4_conv2_pcs_arm_sim" +top: "layer_128_4_conv2_pcs_arm_sim" + +} +layer { +name: "layer_128_4_conv3" +type: "Convolution" +bottom: "layer_128_4_conv2_pcs_arm_sim" +top: "layer_128_4_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_128_4_sum" +type: "Eltwise" +bottom: "layer_128_4_conv3" +bottom: "layer_128_3_sum" +top: "layer_128_4_sum" + +} +layer { +name: "layer_256_1_bn1" +type: "BatchNorm" +bottom: "layer_128_4_sum" +top: "layer_256_1_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_1_relu1" +type: "ReLU" +bottom: "layer_256_1_bn1_pcs_arm_sim" +top: "layer_256_1_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_1_conv1" +type: "Convolution" +bottom: "layer_256_1_bn1_pcs_arm_sim" +top: "layer_256_1_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_1_bn2" +type: "BatchNorm" +bottom: "layer_256_1_conv1" +top: "layer_256_1_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_1_relu2" +type: "ReLU" +bottom: "layer_256_1_conv1_pcs_arm_sim" +top: "layer_256_1_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_1_conv2" +type: "Convolution" +bottom: "layer_256_1_conv1_pcs_arm_sim" +top: "layer_256_1_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_1_bn3" +type: "BatchNorm" +bottom: "layer_256_1_conv2" +top: "layer_256_1_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_1_relu3" +type: "ReLU" +bottom: "layer_256_1_conv2_pcs_arm_sim" +top: "layer_256_1_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_1_conv3" +type: "Convolution" +bottom: "layer_256_1_conv2_pcs_arm_sim" +top: "layer_256_1_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_1_conv_expand" +type: "Convolution" +bottom: "layer_256_1_bn1_pcs_arm_sim" +top: "layer_256_1_conv_expand" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_1_sum" +type: "Eltwise" +bottom: "layer_256_1_conv3" +bottom: "layer_256_1_conv_expand" +top: "layer_256_1_sum" + +} +layer { +name: "layer_256_2_bn1" +type: "BatchNorm" +bottom: "layer_256_1_sum" +top: "layer_256_2_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_2_relu1" +type: "ReLU" +bottom: "layer_256_2_bn1_pcs_arm_sim" +top: "layer_256_2_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_2_conv1" +type: "Convolution" +bottom: "layer_256_2_bn1_pcs_arm_sim" +top: "layer_256_2_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_2_bn2" +type: "BatchNorm" +bottom: "layer_256_2_conv1" +top: "layer_256_2_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_2_relu2" +type: "ReLU" +bottom: "layer_256_2_conv1_pcs_arm_sim" +top: "layer_256_2_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_2_conv2" +type: "Convolution" +bottom: "layer_256_2_conv1_pcs_arm_sim" +top: "layer_256_2_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_2_bn3" +type: "BatchNorm" +bottom: "layer_256_2_conv2" +top: "layer_256_2_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_2_relu3" +type: "ReLU" +bottom: "layer_256_2_conv2_pcs_arm_sim" +top: "layer_256_2_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_2_conv3" +type: "Convolution" +bottom: "layer_256_2_conv2_pcs_arm_sim" +top: "layer_256_2_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_2_sum" +type: "Eltwise" +bottom: "layer_256_2_conv3" +bottom: "layer_256_1_sum" +top: "layer_256_2_sum" + +} +layer { +name: "layer_256_3_bn1" +type: "BatchNorm" +bottom: "layer_256_2_sum" +top: "layer_256_3_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_3_relu1" +type: "ReLU" +bottom: "layer_256_3_bn1_pcs_arm_sim" +top: "layer_256_3_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_3_conv1" +type: "Convolution" +bottom: "layer_256_3_bn1_pcs_arm_sim" +top: "layer_256_3_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_3_bn2" +type: "BatchNorm" +bottom: "layer_256_3_conv1" +top: "layer_256_3_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_3_relu2" +type: "ReLU" +bottom: "layer_256_3_conv1_pcs_arm_sim" +top: "layer_256_3_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_3_conv2" +type: "Convolution" +bottom: "layer_256_3_conv1_pcs_arm_sim" +top: "layer_256_3_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_3_bn3" +type: "BatchNorm" +bottom: "layer_256_3_conv2" +top: "layer_256_3_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_3_relu3" +type: "ReLU" +bottom: "layer_256_3_conv2_pcs_arm_sim" +top: "layer_256_3_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_3_conv3" +type: "Convolution" +bottom: "layer_256_3_conv2_pcs_arm_sim" +top: "layer_256_3_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_3_sum" +type: "Eltwise" +bottom: "layer_256_3_conv3" +bottom: "layer_256_2_sum" +top: "layer_256_3_sum" + +} +layer { +name: "layer_256_4_bn1" +type: "BatchNorm" +bottom: "layer_256_3_sum" +top: "layer_256_4_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_4_relu1" +type: "ReLU" +bottom: "layer_256_4_bn1_pcs_arm_sim" +top: "layer_256_4_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_4_conv1" +type: "Convolution" +bottom: "layer_256_4_bn1_pcs_arm_sim" +top: "layer_256_4_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_4_bn2" +type: "BatchNorm" +bottom: "layer_256_4_conv1" +top: "layer_256_4_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_4_relu2" +type: "ReLU" +bottom: "layer_256_4_conv1_pcs_arm_sim" +top: "layer_256_4_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_4_conv2" +type: "Convolution" +bottom: "layer_256_4_conv1_pcs_arm_sim" +top: "layer_256_4_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_4_bn3" +type: "BatchNorm" +bottom: "layer_256_4_conv2" +top: "layer_256_4_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_4_relu3" +type: "ReLU" +bottom: "layer_256_4_conv2_pcs_arm_sim" +top: "layer_256_4_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_4_conv3" +type: "Convolution" +bottom: "layer_256_4_conv2_pcs_arm_sim" +top: "layer_256_4_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_4_sum" +type: "Eltwise" +bottom: "layer_256_4_conv3" +bottom: "layer_256_3_sum" +top: "layer_256_4_sum" + +} +layer { +name: "layer_256_5_bn1" +type: "BatchNorm" +bottom: "layer_256_4_sum" +top: "layer_256_5_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_5_relu1" +type: "ReLU" +bottom: "layer_256_5_bn1_pcs_arm_sim" +top: "layer_256_5_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_5_conv1" +type: "Convolution" +bottom: "layer_256_5_bn1_pcs_arm_sim" +top: "layer_256_5_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_5_bn2" +type: "BatchNorm" +bottom: "layer_256_5_conv1" +top: "layer_256_5_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_5_relu2" +type: "ReLU" +bottom: "layer_256_5_conv1_pcs_arm_sim" +top: "layer_256_5_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_5_conv2" +type: "Convolution" +bottom: "layer_256_5_conv1_pcs_arm_sim" +top: "layer_256_5_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_5_bn3" +type: "BatchNorm" +bottom: "layer_256_5_conv2" +top: "layer_256_5_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_5_relu3" +type: "ReLU" +bottom: "layer_256_5_conv2_pcs_arm_sim" +top: "layer_256_5_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_5_conv3" +type: "Convolution" +bottom: "layer_256_5_conv2_pcs_arm_sim" +top: "layer_256_5_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_5_sum" +type: "Eltwise" +bottom: "layer_256_5_conv3" +bottom: "layer_256_4_sum" +top: "layer_256_5_sum" + +} +layer { +name: "layer_256_6_bn1" +type: "BatchNorm" +bottom: "layer_256_5_sum" +top: "layer_256_6_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_6_relu1" +type: "ReLU" +bottom: "layer_256_6_bn1_pcs_arm_sim" +top: "layer_256_6_bn1_pcs_arm_sim" + +} +layer { +name: "layer_256_6_conv1" +type: "Convolution" +bottom: "layer_256_6_bn1_pcs_arm_sim" +top: "layer_256_6_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_6_bn2" +type: "BatchNorm" +bottom: "layer_256_6_conv1" +top: "layer_256_6_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_6_relu2" +type: "ReLU" +bottom: "layer_256_6_conv1_pcs_arm_sim" +top: "layer_256_6_conv1_pcs_arm_sim" + +} +layer { +name: "layer_256_6_conv2" +type: "Convolution" +bottom: "layer_256_6_conv1_pcs_arm_sim" +top: "layer_256_6_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 256 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_6_bn3" +type: "BatchNorm" +bottom: "layer_256_6_conv2" +top: "layer_256_6_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_256_6_relu3" +type: "ReLU" +bottom: "layer_256_6_conv2_pcs_arm_sim" +top: "layer_256_6_conv2_pcs_arm_sim" + +} +layer { +name: "layer_256_6_conv3" +type: "Convolution" +bottom: "layer_256_6_conv2_pcs_arm_sim" +top: "layer_256_6_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 1024 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_256_6_sum" +type: "Eltwise" +bottom: "layer_256_6_conv3" +bottom: "layer_256_5_sum" +top: "layer_256_6_sum" + +} +layer { +name: "layer_512_1_bn1" +type: "BatchNorm" +bottom: "layer_256_6_sum" +top: "layer_512_1_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_1_relu1" +type: "ReLU" +bottom: "layer_512_1_bn1_pcs_arm_sim" +top: "layer_512_1_bn1_pcs_arm_sim" + +} +layer { +name: "layer_512_1_conv1" +type: "Convolution" +bottom: "layer_512_1_bn1_pcs_arm_sim" +top: "layer_512_1_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_1_bn2" +type: "BatchNorm" +bottom: "layer_512_1_conv1" +top: "layer_512_1_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_1_relu2" +type: "ReLU" +bottom: "layer_512_1_conv1_pcs_arm_sim" +top: "layer_512_1_conv1_pcs_arm_sim" + +} +layer { +name: "layer_512_1_conv2" +type: "Convolution" +bottom: "layer_512_1_conv1_pcs_arm_sim" +top: "layer_512_1_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_1_bn3" +type: "BatchNorm" +bottom: "layer_512_1_conv2" +top: "layer_512_1_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_1_relu3" +type: "ReLU" +bottom: "layer_512_1_conv2_pcs_arm_sim" +top: "layer_512_1_conv2_pcs_arm_sim" + +} +layer { +name: "layer_512_1_conv3" +type: "Convolution" +bottom: "layer_512_1_conv2_pcs_arm_sim" +top: "layer_512_1_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 2048 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_1_conv_expand" +type: "Convolution" +bottom: "layer_512_1_bn1_pcs_arm_sim" +top: "layer_512_1_conv_expand" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 2048 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 2 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_1_sum" +type: "Eltwise" +bottom: "layer_512_1_conv3" +bottom: "layer_512_1_conv_expand" +top: "layer_512_1_sum" + +} +layer { +name: "layer_512_2_bn1" +type: "BatchNorm" +bottom: "layer_512_1_sum" +top: "layer_512_2_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_2_relu1" +type: "ReLU" +bottom: "layer_512_2_bn1_pcs_arm_sim" +top: "layer_512_2_bn1_pcs_arm_sim" + +} +layer { +name: "layer_512_2_conv1" +type: "Convolution" +bottom: "layer_512_2_bn1_pcs_arm_sim" +top: "layer_512_2_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_2_bn2" +type: "BatchNorm" +bottom: "layer_512_2_conv1" +top: "layer_512_2_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_2_relu2" +type: "ReLU" +bottom: "layer_512_2_conv1_pcs_arm_sim" +top: "layer_512_2_conv1_pcs_arm_sim" + +} +layer { +name: "layer_512_2_conv2" +type: "Convolution" +bottom: "layer_512_2_conv1_pcs_arm_sim" +top: "layer_512_2_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_2_bn3" +type: "BatchNorm" +bottom: "layer_512_2_conv2" +top: "layer_512_2_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_2_relu3" +type: "ReLU" +bottom: "layer_512_2_conv2_pcs_arm_sim" +top: "layer_512_2_conv2_pcs_arm_sim" + +} +layer { +name: "layer_512_2_conv3" +type: "Convolution" +bottom: "layer_512_2_conv2_pcs_arm_sim" +top: "layer_512_2_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 2048 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_2_sum" +type: "Eltwise" +bottom: "layer_512_2_conv3" +bottom: "layer_512_1_sum" +top: "layer_512_2_sum" + +} +layer { +name: "layer_512_3_bn1" +type: "BatchNorm" +bottom: "layer_512_2_sum" +top: "layer_512_3_bn1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_3_relu1" +type: "ReLU" +bottom: "layer_512_3_bn1_pcs_arm_sim" +top: "layer_512_3_bn1_pcs_arm_sim" + +} +layer { +name: "layer_512_3_conv1" +type: "Convolution" +bottom: "layer_512_3_bn1_pcs_arm_sim" +top: "layer_512_3_conv1" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_3_bn2" +type: "BatchNorm" +bottom: "layer_512_3_conv1" +top: "layer_512_3_conv1_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_3_relu2" +type: "ReLU" +bottom: "layer_512_3_conv1_pcs_arm_sim" +top: "layer_512_3_conv1_pcs_arm_sim" + +} +layer { +name: "layer_512_3_conv2" +type: "Convolution" +bottom: "layer_512_3_conv1_pcs_arm_sim" +top: "layer_512_3_conv2" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 512 + bias_term: false + pad: 1 + kernel_size: 3 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_3_bn3" +type: "BatchNorm" +bottom: "layer_512_3_conv2" +top: "layer_512_3_conv2_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "layer_512_3_relu3" +type: "ReLU" +bottom: "layer_512_3_conv2_pcs_arm_sim" +top: "layer_512_3_conv2_pcs_arm_sim" + +} +layer { +name: "layer_512_3_conv3" +type: "Convolution" +bottom: "layer_512_3_conv2_pcs_arm_sim" +top: "layer_512_3_conv3" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +convolution_param { + num_output: 2048 + bias_term: false + pad: 0 + kernel_size: 1 + stride: 1 + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0.0 + } +} + +} +layer { +name: "layer_512_3_sum" +type: "Eltwise" +bottom: "layer_512_3_conv3" +bottom: "layer_512_2_sum" +top: "layer_512_3_sum" + +} +layer { +name: "last_bn" +type: "BatchNorm" +bottom: "layer_512_3_sum" +top: "layer_512_3_sum_pcs_arm_sim" + batch_norm_param { + } +} +layer { +name: "last_relu" +type: "ReLU" +bottom: "layer_512_3_sum_pcs_arm_sim" +top: "layer_512_3_sum_pcs_arm_sim" + +} +layer { +name: "global_pool" +type: "Pooling" +bottom: "layer_512_3_sum_pcs_arm_sim" +top: "global_pool" +pooling_param { + pool: AVE + global_pooling: true +} + +} +layer { +name: "score" +type: "InnerProduct" +bottom: "global_pool" +top: "score" +param { + lr_mult: 1.0 + decay_mult: 1.0 +} +param { + lr_mult: 2.0 + decay_mult: 1.0 +} +inner_product_param { + num_output: 1000 +} + +} +layer { +name: "loss" +type: "SoftmaxWithLoss" +bottom: "score" +bottom: "label" +top: "loss" + +} +layer { +name: "accuracy" +type: "Accuracy" +bottom: "score" +bottom: "label" +top: "accuracy" +include { + phase: TEST +} + +} diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index a4911a65c..f4a2c41cd 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -82,6 +82,8 @@ function detect_cpu model_string=`lscpu | grep "Model name" | awk -F ':' '{print $2}'` if [[ $model_string == *"72"* ]]; then cpu_model="knl" + elif [[ $model_string == *"0000"* ]]; then + cpu_model="knm" elif [[ $model_string == *"8180"* ]]; then cpu_model="skx" elif [[ $model_string == *"6148"* ]]; then @@ -147,12 +149,20 @@ function obtain_average_fwd_bwd_time if [ $numnodes -eq 1 ]; then average_time_line=`cat $result_file | grep "Average Forward-Backward"` + if [ "$average_time_line" = "" ]; then + echo "running intelcaffe failed, please check logs under: $result_file" + exit 1 + fi average_time=`echo $average_time_line | awk -F ' ' '{print $(NF-1)}'` else - start_iteration=1000 + start_iteration=100 iteration_num=100 total_time=0 deltaTimeList=`cat $result_file | grep "DELTA TIME" | tail -n "+${start_iteration}" | head -n ${iteration_num} | awk '{print $(NF-1)}'` + if [ "$deltaTimeList" = "" ]; then + echo "running intelcaffe failed, please check logs under: $result_file" + exit 1 + fi for delta_time in ${deltaTimeList} do diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 6440f916c..a1ceb4cb7 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -82,6 +82,8 @@ function detect_cpu model_string=`lscpu | grep "Model name" | awk -F ':' '{print $2}'` if [[ $model_string == *"72"* ]]; then cpu_model="knl" + elif [[ $model_string == *"0000"* ]]; then + cpu_model="knm" elif [[ $model_string == *"8180"* ]]; then cpu_model="skx" elif [[ $model_string == *"6148"* ]]; then @@ -137,13 +139,18 @@ function init_mpi_envs if [ "$network" == "opa" ]; then export I_MPI_FABRICS=tmi export I_MPI_TMI_PROVIDER=psm2 - if [ "$cpu_model" == "knl" ]; then + if [ "$cpu_model" == "knl" || "$cpu_model" == "knm" ]; then # PSM2 configuration - export PSM2_MQ_RNDV_HFI_WINDOW=4194304 #2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 + export PSM2_MQ_RNDV_HFI_WINDOW=2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 export PSM2_MQ_EAGER_SDMA_SZ=65536 export PSM2_MQ_RNDV_HFI_THRESH=200000 + export HFI_NO_CPUAFFINITY=1 + export I_MPI_DYNAMIC_CONNECTION=0 + export I_MPI_SCALABLE_OPTIMIZATION=0 + export I_MPI_PIN_MODE=lib + export I_MPI_PIN_DOMAIN=node fi - + export PSM2_IDENTIFY=1 # for debug elif [ "$network" == "tcp" ]; then export I_MPI_FABRICS=tcp @@ -258,6 +265,14 @@ function set_env_vars affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" export KMP_HW_SUBSET=1t export KMP_AFFINITY=$affinitystr + if [ "${cpu_model}" == "knl" ] || [ "${cpu_model}" == "knm" ]; then + export KMP_BLOCKTIME=10000000 + export MKL_FAST_MEMORY_LIMIT=0 + if [ ${numnodes} -eq 1 ]; then + affinitystr="compact,1,0,granularity=fine" + export KMP_AFFINITY=$affinitystr + fi + fi } function execute_command From 21f22561d594a057bbf9a5f187a02fd49358f828 Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Mon, 6 Nov 2017 09:47:25 +0800 Subject: [PATCH 04/54] Update the MKLDNN version to b69eabf2631569d6341f3a94a871a8993d6cbdae. --- mkldnn.commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkldnn.commit b/mkldnn.commit index 20f214459..e3133c26d 100644 --- a/mkldnn.commit +++ b/mkldnn.commit @@ -1 +1 @@ -ba482eca9459e3b9a8256ab07f9afa41dba34b9e \ No newline at end of file +b69eabf2631569d6341f3a94a871a8993d6cbdae From a40b5a09a3c6eb75054e4f3264a55b474bf70b31 Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Mon, 6 Nov 2017 16:02:47 +0800 Subject: [PATCH 05/54] fix mkldnn concat layer issue when connecting after flatten layer. --- src/caffe/blob.cpp | 12 ++++-------- src/caffe/layers/mkldnn_concat_layer.cpp | 14 +++++++------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/caffe/blob.cpp b/src/caffe/blob.cpp index 48ae68dc7..3acb1ba96 100644 --- a/src/caffe/blob.cpp +++ b/src/caffe/blob.cpp @@ -68,24 +68,20 @@ void Blob::Reshape(const vector& shape) { } int* shape_data = static_cast(shape_data_->mutable_cpu_data()); #endif - bool actual_reshaping = false; for (int i = 0; i < shape.size(); ++i) { CHECK_GE(shape[i], 0); if (count_ != 0) { CHECK_LE(shape[i], LONG_MAX / count_) << "blob size exceeds LONG_MAX"; } count_ *= shape[i]; - if (shape_[i] != shape[i]) { - actual_reshaping = true; - shape_[i] = shape[i]; - } + shape_[i] = shape[i]; #ifndef CPU_ONLY shape_data[i] = shape[i]; #endif } - // We restart sync objects when there was change of shape - // requested count is bgger than current capacity - if ( (actual_reshaping == true) || (count_ > capacity_) ) { + // We restart sync objects only when the changed shape count + // is bgger than current capacity + if (count_ > capacity_) { capacity_ = count_; data_.reset(new SyncedMemory(capacity_ * sizeof(Dtype))); diff_.reset(new SyncedMemory(capacity_ * sizeof(Dtype))); diff --git a/src/caffe/layers/mkldnn_concat_layer.cpp b/src/caffe/layers/mkldnn_concat_layer.cpp index 278b74b9d..2639d8789 100644 --- a/src/caffe/layers/mkldnn_concat_layer.cpp +++ b/src/caffe/layers/mkldnn_concat_layer.cpp @@ -259,15 +259,15 @@ void MKLDNNConcatLayer::InitConcatFwd(const vector*>& bottom, LOG(INFO) << "size of top blob: " << top[0]->shape().size(); LOG(INFO) << "MKLDNN concat layer only support 4D blob as input! Reshape the 2D input blob into 4D for calculation!"; #endif - vector bottom_4D_shape; - int bottom_4D_height = 1; - int bottom_4D_width = 1; - bottom_4D_shape.push_back(bottom[0]->num()); - bottom_4D_shape.push_back(bottom[0]->channels()); - bottom_4D_shape.push_back(bottom_4D_height); - bottom_4D_shape.push_back(bottom_4D_width); for (auto i = 0; i < num_concats_; i++) { + vector bottom_4D_shape; + int bottom_4D_height = 1; + int bottom_4D_width = 1; + bottom_4D_shape.push_back(bottom[i]->num()); + bottom_4D_shape.push_back(bottom[i]->channels()); + bottom_4D_shape.push_back(bottom_4D_height); + bottom_4D_shape.push_back(bottom_4D_width); bottom[i]->Reshape(bottom_4D_shape); } } From 4ccc9293b4f0d369885b0c30b0ad3c69d5b4715e Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Tue, 7 Nov 2017 09:08:23 +0800 Subject: [PATCH 06/54] fix mkl2017 concat layer issue which couldn't handle non-4d inputs --- src/caffe/blob.cpp | 2 +- src/caffe/layers/mkl_concat_layer.cpp | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/caffe/blob.cpp b/src/caffe/blob.cpp index 3acb1ba96..00c05647a 100644 --- a/src/caffe/blob.cpp +++ b/src/caffe/blob.cpp @@ -80,7 +80,7 @@ void Blob::Reshape(const vector& shape) { #endif } // We restart sync objects only when the changed shape count - // is bgger than current capacity + // is bigger than current capacity if (count_ > capacity_) { capacity_ = count_; data_.reset(new SyncedMemory(capacity_ * sizeof(Dtype))); diff --git a/src/caffe/layers/mkl_concat_layer.cpp b/src/caffe/layers/mkl_concat_layer.cpp index 7471da02b..18c8b6b59 100644 --- a/src/caffe/layers/mkl_concat_layer.cpp +++ b/src/caffe/layers/mkl_concat_layer.cpp @@ -123,6 +123,26 @@ void MKLConcatLayer::LayerSetUp(const vector*>& bottom, template void MKLConcatLayer::Reshape(const vector*>& bottom, const vector*>& top) { + bool has_spatial = (bottom[0]->shape().size() != 2); + if (has_spatial == false) + { +#ifdef DEBUG + LOG(INFO) << "size of bottom blob: " << bottom[0]->shape().size(); + LOG(INFO) << "size of top blob: " << top[0]->shape().size(); + LOG(INFO) << "MKL concat layer only support 4D blob as input! Reshape the 2D input blob into 4D for calculation!"; +#endif + for (auto i = 0; i < num_concats_; i++) + { + vector bottom_4D_shape; + int bottom_4D_height = 1; + int bottom_4D_width = 1; + bottom_4D_shape.push_back(bottom[i]->num()); + bottom_4D_shape.push_back(bottom[i]->channels()); + bottom_4D_shape.push_back(bottom_4D_height); + bottom_4D_shape.push_back(bottom_4D_width); + bottom[i]->Reshape(bottom_4D_shape); + } + } if ((num_ == bottom[0]->num()) && height_ == bottom[0]->height() && width_ == bottom[0]->width()) { From e082b6daadddd70827914c6048dd0b731908f2a8 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Tue, 7 Nov 2017 11:34:00 +0800 Subject: [PATCH 07/54] remove upgrade as it's dangerous and may remove obseleted package --- scripts/prepare_env.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/prepare_env.sh b/scripts/prepare_env.sh index da7dd2b4f..0c4a1887f 100755 --- a/scripts/prepare_env.sh +++ b/scripts/prepare_env.sh @@ -62,7 +62,6 @@ function install_deps { if [ "$os" == "centos" ]; then eval $package_installer clean all - eval $package_installer upgrade eval $package_installer install epel-release eval $package_installer groupinstall "Development Tools" fi @@ -89,7 +88,6 @@ function install_deps_multinode echo $sudo_passwd | sudo -S -E yum -y clean all if [ "$os" == "centos" ]; then - eval $package_installer upgrade eval $package_installer install epel-release eval $package_installer clean all eval $package_installer groupinstall "Development Tools" From 85dded4b2b300944d99247f80d9a4f9066f6ef5e Mon Sep 17 00:00:00 2001 From: Shane Li Date: Wed, 8 Nov 2017 10:45:31 +0800 Subject: [PATCH 08/54] Fix run_intelcaffe issue --- scripts/run_intelcaffe.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index a1ceb4cb7..9c91a6172 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -139,7 +139,7 @@ function init_mpi_envs if [ "$network" == "opa" ]; then export I_MPI_FABRICS=tmi export I_MPI_TMI_PROVIDER=psm2 - if [ "$cpu_model" == "knl" || "$cpu_model" == "knm" ]; then + if [ "$cpu_model" == "knl" ] || [ "$cpu_model" == "knm" ]; then # PSM2 configuration export PSM2_MQ_RNDV_HFI_WINDOW=2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 export PSM2_MQ_EAGER_SDMA_SZ=65536 From d86954f01e4aa7e8ede359519cff1ade9d61b06a Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Wed, 8 Nov 2017 11:09:51 +0800 Subject: [PATCH 09/54] add parameter to blob.reshape() to allow user control if the memory needs to be reinitialized. --- include/caffe/blob.hpp | 2 +- src/caffe/blob.cpp | 14 +++++++++----- src/caffe/layers/mkl_concat_layer.cpp | 2 +- src/caffe/layers/mkldnn_concat_layer.cpp | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/caffe/blob.hpp b/include/caffe/blob.hpp index 47d0d751c..b1ee3f25a 100644 --- a/include/caffe/blob.hpp +++ b/include/caffe/blob.hpp @@ -85,7 +85,7 @@ class Blob { * an error; either Net::Forward or Net::Reshape need to be called to * propagate the new input shape to higher layers. */ - void Reshape(const vector& shape); + void Reshape(const vector& shape, bool reinitialize = true); void Reshape(const BlobShape& shape); void ReshapeLike(const Blob& other); inline string shape_string() const { diff --git a/src/caffe/blob.cpp b/src/caffe/blob.cpp index 00c05647a..914cf290f 100644 --- a/src/caffe/blob.cpp +++ b/src/caffe/blob.cpp @@ -57,7 +57,7 @@ void Blob::Reshape(const int num, const int channels, const int height, } template -void Blob::Reshape(const vector& shape) { +void Blob::Reshape(const vector& shape, bool reinitialize) { CHECK_LE(shape.size(), kMaxBlobAxes); count_ = 1; shape_.resize(shape.size()); @@ -68,20 +68,24 @@ void Blob::Reshape(const vector& shape) { } int* shape_data = static_cast(shape_data_->mutable_cpu_data()); #endif + bool actual_reshaping = false; for (int i = 0; i < shape.size(); ++i) { CHECK_GE(shape[i], 0); if (count_ != 0) { CHECK_LE(shape[i], LONG_MAX / count_) << "blob size exceeds LONG_MAX"; } count_ *= shape[i]; - shape_[i] = shape[i]; + if (shape_[i] != shape[i]) { + actual_reshaping = true; + shape_[i] = shape[i]; + } #ifndef CPU_ONLY shape_data[i] = shape[i]; #endif } - // We restart sync objects only when the changed shape count - // is bigger than current capacity - if (count_ > capacity_) { + // We restart sync objects when there was change of shape + // requested count is bigger than current capacity + if ( reinitialize && ((actual_reshaping == true) || (count_ > capacity_))) { capacity_ = count_; data_.reset(new SyncedMemory(capacity_ * sizeof(Dtype))); diff_.reset(new SyncedMemory(capacity_ * sizeof(Dtype))); diff --git a/src/caffe/layers/mkl_concat_layer.cpp b/src/caffe/layers/mkl_concat_layer.cpp index 18c8b6b59..c18eb6374 100644 --- a/src/caffe/layers/mkl_concat_layer.cpp +++ b/src/caffe/layers/mkl_concat_layer.cpp @@ -140,7 +140,7 @@ void MKLConcatLayer::Reshape(const vector*>& bottom, bottom_4D_shape.push_back(bottom[i]->channels()); bottom_4D_shape.push_back(bottom_4D_height); bottom_4D_shape.push_back(bottom_4D_width); - bottom[i]->Reshape(bottom_4D_shape); + bottom[i]->Reshape(bottom_4D_shape, false); } } if ((num_ == bottom[0]->num()) && diff --git a/src/caffe/layers/mkldnn_concat_layer.cpp b/src/caffe/layers/mkldnn_concat_layer.cpp index 2639d8789..0e7965cc0 100644 --- a/src/caffe/layers/mkldnn_concat_layer.cpp +++ b/src/caffe/layers/mkldnn_concat_layer.cpp @@ -268,7 +268,7 @@ void MKLDNNConcatLayer::InitConcatFwd(const vector*>& bottom, bottom_4D_shape.push_back(bottom[i]->channels()); bottom_4D_shape.push_back(bottom_4D_height); bottom_4D_shape.push_back(bottom_4D_width); - bottom[i]->Reshape(bottom_4D_shape); + bottom[i]->Reshape(bottom_4D_shape, false); } } From 11aea1a36f09488f3263052d4aa5ef7f6cd43a7f Mon Sep 17 00:00:00 2001 From: xiaolil1 Date: Tue, 7 Nov 2017 23:52:02 +0800 Subject: [PATCH 10/54] Fix mkldnn relu layer and mkldnn batchnorm layer for inplace backward issue Change-Id: Ide67d93cb723d4ccef4eed5a14f433fd9cca14bb --- include/caffe/layers/mkldnn_layers.hpp | 2 ++ src/caffe/layers/mkldnn_batch_norm_layer.cpp | 11 +++-------- src/caffe/layers/mkldnn_relu_layer.cpp | 10 ++-------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/include/caffe/layers/mkldnn_layers.hpp b/include/caffe/layers/mkldnn_layers.hpp index 19bcee9da..4360b9790 100644 --- a/include/caffe/layers/mkldnn_layers.hpp +++ b/include/caffe/layers/mkldnn_layers.hpp @@ -104,6 +104,7 @@ class MKLDNNBatchNormLayer : public MKLDNNLayer, public Layer { shared_ptr > bwd_top_diff, bwd_bottom_diff; shared_ptr BatchNormFwd_pd; shared_ptr BatchNormBwd_pd; + shared_ptr input_stats_md; vector > BatchNormFwd, BatchNormBwd; vector > mean_memory, variance_memory; @@ -391,6 +392,7 @@ class MKLDNNReLULayer : public MKLDNNLayer , public NeuronLayer { shared_ptr > bwd_top_diff, bwd_bottom_diff; shared_ptr reluFwd_pd; shared_ptr reluBwd_pd; + shared_ptr bottom_data_md; MKLDNNPrimitive reluFwd, reluBwd; shared_ptr fwd_top_data_memory, bwd_bottom_diff_memory; shared_ptr fwd_bottom_data_primitive, bwd_top_diff_primitive; diff --git a/src/caffe/layers/mkldnn_batch_norm_layer.cpp b/src/caffe/layers/mkldnn_batch_norm_layer.cpp index 2ef51947b..130211db0 100644 --- a/src/caffe/layers/mkldnn_batch_norm_layer.cpp +++ b/src/caffe/layers/mkldnn_batch_norm_layer.cpp @@ -206,7 +206,7 @@ void MKLDNNBatchNormLayer::InitBatchNorm(const vector*>& bott memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr input_md, input_stats_md, output_md, scaleshift_md; + shared_ptr input_md, scaleshift_md; shared_ptr usr_mpd, prv_mpd; shared_ptr scaleshift_mpd; if (bottom_data_is_prv) { @@ -219,7 +219,6 @@ void MKLDNNBatchNormLayer::InitBatchNorm(const vector*>& bott input_md.reset(new memory::desc({{n, ic, ih, iw}}, mpcsn, memory::format::nchw)); //MKLDNN batch norm only support 4D memory descriptor! usr_mpd.reset(new memory::primitive_desc(*input_md, cpu_engine)); } - output_md = input_md; input_stats_md.reset(new memory::desc(*input_md)); CHECK(input_stats_md->data.ndims > 0 && input_stats_md->data.dims[0] == this->num_); @@ -444,7 +443,7 @@ void MKLDNNBatchNormLayer::InitBatchNormBwd( memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr top_diff_md, top_diff_stats_md, top_data_md, output_stats_md; + shared_ptr top_diff_md, top_diff_stats_md; shared_ptr usr_diff_mpd(NULL), prv_diff_mpd(NULL); if (top_diff_is_prv) { shared_ptr > mem_descr @@ -460,14 +459,10 @@ void MKLDNNBatchNormLayer::InitBatchNormBwd( CHECK(top_diff_stats_md->data.ndims > 0 && top_diff_stats_md->data.dims[0] == this->num_); top_diff_stats_md->data.dims[0] = stats_batch_size_; - output_stats_md.reset(new memory::desc(output_memory->get_primitive_desc().desc())); - CHECK(output_stats_md->data.ndims > 0 && - output_stats_md->data.dims[0] == this->num_); - output_stats_md->data.dims[0] = stats_batch_size_; // ---- Initialize bnrm primitive descriptor ------------- batch_normalization_backward::desc BatchNormBwd_desc(prop_kind::backward, - *top_diff_stats_md, *output_stats_md, eps_, + *top_diff_stats_md, *input_stats_md, eps_, flags); // ---- Determining engine to use ----------------------- std::string subengines = this->layer_param_.engine(); diff --git a/src/caffe/layers/mkldnn_relu_layer.cpp b/src/caffe/layers/mkldnn_relu_layer.cpp index e21b24a5c..452cf6264 100644 --- a/src/caffe/layers/mkldnn_relu_layer.cpp +++ b/src/caffe/layers/mkldnn_relu_layer.cpp @@ -88,7 +88,7 @@ void MKLDNNReLULayer::InitReLUFwd(const vector*>& bottom, con engine cpu_engine = CpuEngine::Instance().get_engine(); memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr bottom_data_md, top_data_md; + shared_ptr top_data_md; shared_ptr usr_data_mpd(NULL), prv_data_mpd(NULL); if (bottom_data_is_prv) { shared_ptr > mem_descr @@ -196,10 +196,7 @@ void MKLDNNReLULayer::InitReLUBwd(const vector*>& top memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr bottom_diff_md = NULL; shared_ptr top_diff_md = NULL; - shared_ptr top_data_md = NULL; - shared_ptr usr_diff_mpd = NULL; shared_ptr prv_diff_mpd = NULL; @@ -253,14 +250,11 @@ void MKLDNNReLULayer::InitReLUBwd(const vector*>& top usr_diff_mpd.reset(new memory::primitive_desc(*top_diff_md, cpu_engine)); } - top_data_md = top_diff_md; - bottom_diff_md = top_diff_md; - // ---- Initialize relu primitive descriptor ------------- //relu_backward::desc reluBwd_desc(*top_diff_md, *top_data_md, negative_slope); // MKLDNN is deprecating standalone relu primitive in MKL-DNN. // Now MKLDNN has eltwise primitive with eltwise_relu algorithm inside. - eltwise_backward::desc eltwise_reluBwd_desc(eltwise_relu, *top_diff_md, *top_data_md, negative_slope); + eltwise_backward::desc eltwise_reluBwd_desc(eltwise_relu, *top_diff_md, *bottom_data_md, negative_slope); // ---- Determining engine to use ----------------------- std::string subengines = this->layer_param_.engine(); From 59c0e69b823cfc18ec8cab388df8cc7d4d75d7b4 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Wed, 8 Nov 2017 14:47:28 +0800 Subject: [PATCH 11/54] implement lars from UC Berkeley Change-Id: I5112a9de2d6357e303eea3501e202995dbdcb0bb --- include/caffe/sgd_solvers.hpp | 2 + .../alexnet_bn_32nodes/solver.prototxt | 47 +++ .../alexnet_bn_32nodes/train_val2.prototxt | 361 ++++++++++++++++++ .../alexnet_bn_64nodes/solver.prototxt | 47 +++ .../alexnet_bn_64nodes/train_val2.prototxt | 361 ++++++++++++++++++ src/caffe/proto/caffe.proto | 3 + src/caffe/solvers/sgd_solver.cpp | 46 ++- 7 files changed, 863 insertions(+), 4 deletions(-) create mode 100644 models/intel_optimized_models/multinode/alexnet_bn_32nodes/solver.prototxt create mode 100644 models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt create mode 100644 models/intel_optimized_models/multinode/alexnet_bn_64nodes/solver.prototxt create mode 100644 models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt diff --git a/include/caffe/sgd_solvers.hpp b/include/caffe/sgd_solvers.hpp index 09f6ff26e..bef2be8ca 100644 --- a/include/caffe/sgd_solvers.hpp +++ b/include/caffe/sgd_solvers.hpp @@ -64,6 +64,8 @@ class SGDSolver : public Solver { void PreSolve(); Dtype GetWarmUpLR(int cur_iter, int warmup_iter, Dtype warmup_start_lr); Dtype GetLearningRate(); + Dtype GetLocalRate(int param_id) const; + virtual void ApplyUpdate(); virtual void ApplyUpdate(int param_id); virtual void Normalize(int param_id); diff --git a/models/intel_optimized_models/multinode/alexnet_bn_32nodes/solver.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/solver.prototxt new file mode 100644 index 000000000..b6c6690e1 --- /dev/null +++ b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/solver.prototxt @@ -0,0 +1,47 @@ +net: "models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt" + +test_iter: 1000 # 196 =50000/256 # 1562 = 50000/32 +test_interval: 25 #1250 +test_initialization: false + +display: 10 + +max_iter: 4000 # 100 epochs + +#base_lr: 2 # B=1024 +#base_lr: 10 # B=8K +base_lr: 33 # B=32K + +#min_lr: 0.005 + +local_lr_auto: true +local_gw_ratio: 0.001 + +warmup_start_lr: 1 +warmup_iter: 400 # 10 epochs + +lr_policy: "poly" +power: 2. + +momentum: 0.9 +weight_decay: 0.0005 + +snapshot: 500000 +snapshot_prefix: "models/intel_optimized_models/multinode/alexnet_bn_32nodes/alexnet_bn_32nodes" +#snapshot_after_train: false + +solver_mode: CPU + +# Train dataset size = 1,281,167 +# Test dataset size = 50,000 + +# batch 64 --> epoch = 20,000 +# batch 96 --> epoch = 15,000 +# batch 128 --> epoch = 10,000 +# batch 256 --> epoch = 5,000 +# batch 512 --> epoch = 2,500 +# batch 1024--> epoch = 1,250 +# batch 2048--> epoch = 625 +# batch 4096--> epoch = 312 +# batch 8192--> epoch = 156 +# batch 16384--> epoch = 78 diff --git a/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt new file mode 100644 index 000000000..48046d17d --- /dev/null +++ b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt @@ -0,0 +1,361 @@ +#------------------------------------------ +# Alexnet wih BatchNorm instead of LRN +#------------------------------------------ +name: "AlexNet_bn" + +#default_conv_algos_override: "1,1,1" +#default_cudnn_math_override: 0 + +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + transform_param { + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + mirror: true + crop_size: 227 + scale: 0.00390625 + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 1024 + backend: LMDB + # cache: true + shuffle: true + } + include { phase: TRAIN } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + transform_param { + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + mirror: false + crop_size: 227 + scale: 0.00390625 + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } + include { phase: TEST } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "bn2" + type: "BatchNorm" + bottom: "pool1" + top: "bn2" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} + +layer { + name: "conv2" + type: "Convolution" + bottom: "bn2" + top: "conv2" + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "pool2" + type: "Pooling" + bottom: "conv2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "bn3" + type: "BatchNorm" + bottom: "pool2" + top: "bn3" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} + +layer { + name: "conv3" + type: "Convolution" + bottom: "bn3" + top: "conv3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "bn4" + type: "BatchNorm" + bottom: "conv3" + top: "bn4" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} +layer { + name: "conv4" + type: "Convolution" + bottom: "bn4" + top: "conv4" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} + + +layer { + name: "relu4" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "bn5" + type: "BatchNorm" + bottom: "conv4" + top: "bn5" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} +layer { + name: "conv5" + type: "Convolution" + bottom: "bn5" + top: "conv5" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu5" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "drop6" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "drop7" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} +layer { + name: "top-1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy/top-1" + accuracy_param { top_k: 1 } +# include { phase: TEST } +} +layer { + name: "top-5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy/top-5" + accuracy_param { top_k: 5 } + include { phase: TEST } +} diff --git a/models/intel_optimized_models/multinode/alexnet_bn_64nodes/solver.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/solver.prototxt new file mode 100644 index 000000000..70506cb0d --- /dev/null +++ b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/solver.prototxt @@ -0,0 +1,47 @@ +net: "models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt" + +test_iter: 196 # 196 =50000/256 # 1562 = 50000/32 +test_interval: 40 #1250 +test_initialization: false + +display: 10 + +max_iter: 4000 # 100 epochs + +#base_lr: 2 # B=1024 +#base_lr: 10 # B=8K +base_lr: 32 # B=32K + +#min_lr: 0.005 + +local_lr_auto: true +local_gw_ratio: 0.001 + +warmup_start_lr: 1 +warmup_iter: 400 # 10 epochs + +lr_policy: "poly" +power: 2. + +momentum: 0.9 +weight_decay: 0.0005 + +snapshot: 500000 +snapshot_prefix: "models/intel_optimized_models/multinode/alexnet_bn_64nodes/alexnet_bn_64nodes" +#snapshot_after_train: false + +solver_mode: CPU + +# Train dataset size = 1,281,167 +# Test dataset size = 50,000 + +# batch 64 --> epoch = 20,000 +# batch 96 --> epoch = 15,000 +# batch 128 --> epoch = 10,000 +# batch 256 --> epoch = 5,000 +# batch 512 --> epoch = 2,500 +# batch 1024--> epoch = 1,250 +# batch 2048--> epoch = 625 +# batch 4096--> epoch = 312 +# batch 8192--> epoch = 156 +# batch 16384--> epoch = 78 diff --git a/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt new file mode 100644 index 000000000..f02068fcc --- /dev/null +++ b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt @@ -0,0 +1,361 @@ +#------------------------------------------ +# Alexnet wih BatchNorm instead of LRN +#------------------------------------------ +name: "AlexNet_bn" + +#default_conv_algos_override: "1,1,1" +#default_cudnn_math_override: 0 + +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + transform_param { + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + mirror: true + crop_size: 227 + scale: 0.00390625 + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 512 + backend: LMDB + # cache: true + shuffle: true + } + include { phase: TRAIN } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + transform_param { + mean_file: "data/ilsvrc12/imagenet_mean.binaryproto" + mirror: false + crop_size: 227 + scale: 0.00390625 + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 256 + backend: LMDB + } + include { phase: TEST } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "bn2" + type: "BatchNorm" + bottom: "pool1" + top: "bn2" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} + +layer { + name: "conv2" + type: "Convolution" + bottom: "bn2" + top: "conv2" + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "pool2" + type: "Pooling" + bottom: "conv2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "bn3" + type: "BatchNorm" + bottom: "pool2" + top: "bn3" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} + +layer { + name: "conv3" + type: "Convolution" + bottom: "bn3" + top: "conv3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "bn4" + type: "BatchNorm" + bottom: "conv3" + top: "bn4" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} +layer { + name: "conv4" + type: "Convolution" + bottom: "bn4" + top: "conv4" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} + + +layer { + name: "relu4" + type: "ReLU" + bottom: "conv4" + top: "conv4" +} +layer { + name: "bn5" + type: "BatchNorm" + bottom: "conv4" + top: "bn5" + batch_norm_param { + moving_average_fraction: 0.9 + eps: 0.0001 + # scale_bias: false + } +} +layer { + name: "conv5" + type: "Convolution" + bottom: "bn5" + top: "conv5" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "relu5" + type: "ReLU" + bottom: "conv5" + top: "conv5" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "drop6" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + inner_product_param { + num_output: 4096 + weight_filler { + type: "gaussian" + std: 0.005 + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "drop7" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0.01 + } + } +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} +layer { + name: "top-1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy/top-1" + accuracy_param { top_k: 1 } +# include { phase: TEST } +} +layer { + name: "top-5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy/top-5" + accuracy_param { top_k: 5 } + include { phase: TEST } +} diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index 1d4608dec..a1f6e4d74 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -415,6 +415,9 @@ message SolverParameter { optional string engine = 47 [default = ""]; optional int32 warmup_iter = 48 [default = 0]; optional float warmup_start_lr = 49 [default = 0]; + + optional bool local_lr_auto = 50 [default = false]; + optional float local_gw_ratio = 51 [default = 0.001]; } // A message that stores the solver snapshots diff --git a/src/caffe/solvers/sgd_solver.cpp b/src/caffe/solvers/sgd_solver.cpp index 4b643c495..4142fef35 100644 --- a/src/caffe/solvers/sgd_solver.cpp +++ b/src/caffe/solvers/sgd_solver.cpp @@ -336,9 +336,8 @@ void SGDSolver::SGDFusion(int param_id, Dtype rate) { Dtype local_decay = weight_decay * net_params_weight_decay[param_id]; //ComputeUpdateValue initialization - const vector& net_params_lr = this->net_->params_lr(); Dtype momentum = this->param_.momentum(); - Dtype local_rate = rate * net_params_lr[param_id]; + Dtype local_rate = rate * GetLocalRate(param_id); //#pragma endregion //#pragma region 2. Common condition judgement @@ -579,9 +578,8 @@ void sgd_update_gpu(int N, Dtype* g, Dtype* h, Dtype momentum, template void SGDSolver::ComputeUpdateValue(int param_id, Dtype rate) { const vector*>& net_params = this->net_->learnable_params(); - const vector& net_params_lr = this->net_->params_lr(); Dtype momentum = this->param_.momentum(); - Dtype local_rate = rate * net_params_lr[param_id]; + Dtype local_rate = rate * GetLocalRate(param_id); if (this->param_.warmup_iter() > 0 && this->iter_ < this->param_.warmup_iter()) { @@ -636,6 +634,46 @@ void SGDSolver::ComputeUpdateValue(int param_id, Dtype rate) { } } +// +// LARS (Layer-wise Adaptive Rate Scaling) is implemented by Yang You, Ignor Gitman and Boris Ginsburg in UC Berkeley. +// please refer to the papers below: +// Scaling SGD Batch Size to 32K for ImageNet Training (https://www2.eecs.berkeley.edu/Pubs/TechRpts/2017/EECS-2017-149.html). +// Large Batch Training of Convolutional Networks (https://arxiv.org/abs/1708.03888). +template +Dtype SGDSolver::GetLocalRate(int param_id) const { + const vector& net_params_lr = this->net_->params_lr(); + float local_lr = net_params_lr[param_id]; + + if (this->param_.local_lr_auto()) { + Blob* param = this->net_->learnable_params()[param_id]; + const float w_norm = std::sqrt(param->sumsq_data()); + const float wgrad_norm = std::sqrt(param->sumsq_diff()); + const float gw_ratio = this->param_.local_gw_ratio(); + float rate = 1.F; + + float weight_decay = this->param_.weight_decay(); + if (w_norm > 0.F && wgrad_norm > 0.F) { + rate = gw_ratio * w_norm / (wgrad_norm + weight_decay * w_norm); + } + if (local_lr > 0.F) { + local_lr = rate; + } + +#ifdef DEBUG + if (Caffe::root_solver() + && this->param_.display() + && (this->iter_ % this->param_.display() == 0)) { + const int layer_id = this->net_->param_layer_indices(param_id).first; + const string& layer_name = this->net_->layer_names()[layer_id]; + const int blob_id = this->net_->param_layer_indicces(param_id).second; + LOG(INFO) << layer_name << "." << blob_id << " lr=" << local_lr + << ".\t w=" << w_norm << "\t dw=" << wgrad_norm; + } +#endif + } + return local_lr; +} + template void SGDSolver::SnapshotSolverState(const string& model_filename) { switch (this->param_.snapshot_format()) { From dde0b0846dadf942189e7d8fc0672e7fd1b100ba Mon Sep 17 00:00:00 2001 From: fzou1 Date: Wed, 8 Nov 2017 16:40:11 +0800 Subject: [PATCH 12/54] separate scripts according to functionalities(install_deps.sh to install deps; build_intelcaffe.sh to build caffe; set_env.sh to set up environment). support installing deps for ubuntu (verified on single node with ubuntu 14.04) --- scripts/build_intelcaffe.sh | 170 +++++++++++++++++++++++++ scripts/install_deps.sh | 193 ++++++++++++++++++++++++++++ scripts/prepare_env.sh | 245 ++---------------------------------- scripts/run_benchmark.sh | 6 +- scripts/run_intelcaffe.sh | 180 ++++---------------------- scripts/set_env.sh | 225 +++++++++++++++++++++++++++++++++ 6 files changed, 630 insertions(+), 389 deletions(-) create mode 100755 scripts/build_intelcaffe.sh create mode 100755 scripts/install_deps.sh create mode 100755 scripts/set_env.sh diff --git a/scripts/build_intelcaffe.sh b/scripts/build_intelcaffe.sh new file mode 100755 index 000000000..2857d86a4 --- /dev/null +++ b/scripts/build_intelcaffe.sh @@ -0,0 +1,170 @@ +#!/bin/bash + +function usage +{ + script_name=$0 + echo "Usage:" + echo " $script_name [--multinode] [--compiler icc/gcc] [--rebuild]" + echo "" + echo " Parameters:" + echo " multinode: specify it to build caffe for multinode. build for single node" + echo " by default." + echo " compiler: specify compiler to build intel caffe. default compiler is icc." + echo " rebuild: make clean/remove build directory before building caffe if the " + echo " option is specified. not to make clean by default." +} + +function check_dependency +{ + dep=$1 + which $dep >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Warning: cannot find $dep" + return 1 + fi + return 0 +} + +function build_caffe_gcc +{ + is_multinode_=$1 + + cp Makefile.config.example Makefile.config + + if [ $is_multinode_ -eq 1 ]; then + echo "USE_MLSL := 1" >> Makefile.config + echo "CAFFE_PER_LAYER_TIMINGS := 1" >> Makefile.config + + mlslvars_sh=`find external/mlsl/ -name mlslvars.sh` + if [ -f $mlslvars_sh ]; then + source $mlslvars_sh + fi + fi + + if [ $is_rebuild -eq 1 ]; then + make clean + fi + + make -j 8 +} + +root_dir=$(cd $(dirname $(dirname $0)); pwd) +boost_root=${root_dir} + +function download_build_boost +{ + # download boost + pushd ${root_dir} + + boost_lib=boost_1_64_0 + boost_zip_file=${boost_lib}.tar.bz2 + # clean + if [ -f $boost_zip_file ]; then + rm $boost_zip_file + fi + + echo "Download boost library..." + wget -c -t 0 https://dl.bintray.com/boostorg/release/1.64.0/source/${boost_zip_file} + echo "Unzip..." + tar -jxf ${boost_zip_file} + pushd ${boost_lib} + + # build boost + echo "Build boost library..." + boost_root=${root_dir}/${boost_lib}/install + ./bootstrap.sh + ./b2 install --prefix=$boost_root + + popd + popd +} + +function build_caffe_icc +{ + is_multinode_=$1 + cmake_params="-DCPU_ONLY=1 -DBOOST_ROOT=$boost_root" + if [ $is_multinode_ -eq 1 ]; then + cmake_params+=" -DUSE_MLSL=1 -DCAFFE_PER_LAYER_TIMINGS=1" + fi + + build_dir=$root_dir/build + if [ $is_rebuild -eq 1 ] && [ -d $build_dir ]; then + rm -r $build_dir + fi + + mkdir $build_dir + cd $build_dir + + CC=icc CXX=icpc cmake .. $cmake_params + CC=icc CXX=icpc make all -j 8 +} + +function sync_caffe_dir +{ + caffe_dir=`pwd` + caffe_parent_dir=`dirname $caffe_dir` + ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" +} + +is_rebuild=0 +compiler="icc" +is_multinode=0 +while [[ $# -gt 1 ]] +do + key="$1" + case $key in + --multinode) + is_multinode=1 + ;; + --rebuild) + is_rebuild=1 + ;; + --compiler) + compiler="$2" + shift + ;; + --help) + usage + exit 0 + ;; + *) + echo "Unknown option: $key" + usage + exit 1 + ;; + esac + shift +done + + +# check compiler +cplus_compiler="" +if [ "$compiler" == "icc" ]; then + cplus_compiler="icpc" +elif [ $compiler == "gcc" ]; then + cplus_compiler="g++" +else + echo "Invalid compiler: $compiler. Exit." + exit 1 +fi + +for bin in $compiler $cplus_compiler +do + check_dependency $bin + if [ $? -ne 0 ]; then + exit 1 + fi +done + +echo "Build Intel Caffe by $compiler..." +if [ "$compiler" == "icc" ]; then + download_build_boost + build_caffe_icc $is_multinode +else + build_caffe_gcc $is_multinode +fi + +if [ $is_multinode -eq 1 ]; then + sync_caffe_dir +fi + diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh new file mode 100755 index 000000000..76802ac6c --- /dev/null +++ b/scripts/install_deps.sh @@ -0,0 +1,193 @@ +#!/bin/bash + +function usage +{ + script_name=$0 + echo "Usage:" + echo " $script_name [--hostfile host_file]" + echo "" + echo " Parameters:" + echo " host: host file includes list of nodes. Only used when you want to install dependencies for multinode" +} + +os="centos" +function check_os +{ + echo "Check OS and the version..." + + centos_ver_file="/etc/centos-release" + if [ -f $centos_ver_file ]; then + os="centos" + cat $centos_ver_file + else + ubuntu_ver_cmd="lsb_release" + check_dependency $ubuntu_ver_cmd + if [ $? -eq 0 ]; then + os="ubuntu" + eval "$ubuntu_ver_cmd -a" + else + echo "Unknown OS. Exit." + exit 1 + fi + fi + echo "Detected OS: $os." +} + +function check_dependency +{ + dep=$1 + which $dep >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Warning: cannot find $dep" + return 1 + fi + return 0 +} + + +sudo_passwd="" + +function is_sudoer +{ + echo $sudo_passwd | sudo -S -E -v >/dev/null + if [ $? -eq 1 ]; then + echo "User $(whoami) is not sudoer, and cannot install dependencies." + exit 1 + fi +} + +# centos: yum; ubuntu: apt-get +install_command="" + +check_os +if [ "$os" == "centos" ]; then + install_command="yum" +elif [ "$os" == "ubuntu" ]; then + install_command="apt-get" +fi +check_dependency $install_command +if [ $? -ne 0 ]; then + echo "Please check if $os and $install_command is installed correctly." + exit 1 +fi + +package_installer="$install_command -y " + +function install_deps +{ + echo "Install dependencies..." + if [ "$os" == "centos" ]; then + eval $package_installer clean all + eval $package_installer install epel-release + eval $package_installer groupinstall "Development Tools" + eval $package_installer install python-devel boost boost-devel numpy \ + numpy-devel gflags gflags-devel glog glog-devel protobuf protobuf-devel hdf5 \ + hdf5-devel lmdb lmdb-devel leveldb leveldb-devel snappy-devel opencv \ + opencv-devel scipy + elif [ "$os" == "ubuntu" ]; then + eval $package_installer update + eval $package_installer install build-essential + eval $package_installer install pkg-config libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler + eval $package_installer install --no-install-recommends libboost-all-dev + eval $package_installer install libgflags-dev libgoogle-glog-dev liblmdb-dev + eval $package_installer install python-pip + eval $package_installer install python-dev + eval $package_installer install python-numpy python-scipy + eval $package_installer install libopencv-dev + fi + + eval $package_installer install cmake wget bc numactl +} + +function install_deps_multinode +{ + host_file=$1 + host_list=(`cat $host_file | sort | uniq`) + + host_cnt=${#host_list[@]} + if [ $host_cnt -eq 0 ]; then + echo "Error: empty host list. Exit." + exit 1 + fi + + echo "Make sure you're executing command on host ${host_list[0]}" + + if [ "$os" == "centos" ]; then + eval $package_installer install epel-release + eval $package_installer clean all + eval $package_installer groupinstall "Development Tools" + elif [ "$os" == "ubuntu" ]; then + eval $package_installer update + eval $package_installer install build-essential + fi + + eval $package_installer install ansible + + tmp_host_file=ansible_hosts.tmp + ansible_host_file=/etc/ansible/hosts + echo -e "[ourmaster]\n${host_list[0]}\n[ourcluster]\n" >$tmp_host_file + for ((i=1; i<${#host_list[@]}; i++)) + do + echo -e "${host_list[$i]}\n" >>$tmp_host_file + done + $command_prefix mv -f $tmp_host_file $ansible_host_file + + ssh-keygen -t rsa -q + for host in ${host_list[@]} + do + ssh-copy-id -i ~/.ssh/id_rsa.pub $host + done + ansible ourcluster -m ping + + if [ "$os" == "centos" ]; then + ansible all -m shell -a "$package_installer install python-devel boost boost-devel numpy numpy-devel gflags gflags-devel glog glog-devel protobuf protobuf-devel hdf5 hdf5-devel lmdb lmdb-devel leveldb leveldb-devel snappy-devel opencv opencv-devel scipy" + elif [ "$os" == "ubuntu" ]; then + ansible all -m shell -a "$package_installer install pkg-config libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler" + ansible all -m shell -a "$package_installer install --no-install-recommends libboost-all-dev" + ansible all -m shell -a "$package_installer install libgflags-dev libgoogle-glog-dev liblmdb-dev" + ansible all -m shell -a "$package_installer install python-pip" + ansible all -m shell -a "$package_installer install python-dev" + ansible all -m shell -a "$package_installer install python-numpy python-scipy" + ansible all -m shell -a "$package_installer install libopencv-dev" + fi + + ansible all -m shell -a "$package_installer install mc cpuinfo htop tmux screen iftop iperf vim wget bc numactl cmake" + ansible all -m shell -a "systemctl stop firewalld.service" +} + +host_file="" +while [[ $# -gt 1 ]] +do + key="$1" + case $key in + --hostfile) + host_file="$2" + shift + ;; + --help) + usage + exit 0 + ;; + *) + echo "Unknown option: $key" + usage + exit 1 + ;; + esac + shift +done + +# install dependencies +username=`whoami` +if [ "$username" != "root" ]; then + read -s -p "Enter password for $username: " sudo_passwd + package_installer="echo $sudo_passwd | sudo -S -E $install_command -y " + is_sudoer +fi + +echo "Install dependencies..." +if [ "$host_file" == "" ]; then + install_deps +else + install_deps_multinode $host_file +fi diff --git a/scripts/prepare_env.sh b/scripts/prepare_env.sh index 0c4a1887f..d44e98cef 100755 --- a/scripts/prepare_env.sh +++ b/scripts/prepare_env.sh @@ -4,193 +4,13 @@ function usage { script_name=$0 echo "Usage:" - echo " $script_name [--host host_file] [--compiler icc/gcc]" + echo " $script_name [--hostfile host_file] [--compiler icc/gcc]" echo "" echo " Parameters:" echo " host: host file includes list of nodes. Only used when you want to install dependencies for multinode" echo " compiler: specify compiler to build intel caffe. default compiler is icc." } -function check_os -{ - # echo "Check OS and the version..." - echo "Only CentOS is supported." -} - -function check_dependency -{ - dep=$1 - which $dep >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "Warning: cannot find $dep" - return 1 - fi - return 0 -} - - -sudo_passwd="" - -function is_sudoer -{ - echo $sudo_passwd | sudo -S -E -v >/dev/null - if [ $? -eq 1 ]; then - echo "User $(whoami) is not sudoer, and cannot install dependencies." - return 1 - fi - return 0 -} - -# centos: yum; ubuntu: apt-get -os="centos" -install_command="" - -check_os -if [ "$os" == "centos" ]; then - install_command="yum" - check_dependency $install_command - if [ $? -ne 0 ]; then - echo "Please check if CentOS and $install_command is installed correctly." - exit 1 - fi -fi - -package_installer="$install_command -y " - - -function install_deps -{ - if [ "$os" == "centos" ]; then - eval $package_installer clean all - eval $package_installer install epel-release - eval $package_installer groupinstall "Development Tools" - fi - - eval $package_installer install python-devel boost boost-devel cmake numpy \ - numpy-devel gflags gflags-devel glog glog-devel protobuf protobuf-devel hdf5 \ - hdf5-devel lmdb lmdb-devel leveldb leveldb-devel snappy-devel opencv \ - opencv-devel wget bc numactl -} - -function install_deps_multinode -{ - host_file=$1 - host_list=(`cat $host_file | sort | uniq`) - - host_cnt=${#host_list[@]} - if [ $host_cnt -eq 0 ]; then - echo "Error: empty host list. Exit." - exit 1 - fi - - echo "Make sure you're executing command on host ${host_list[0]}" - - echo $sudo_passwd | sudo -S -E yum -y clean all - - if [ "$os" == "centos" ]; then - eval $package_installer install epel-release - eval $package_installer clean all - eval $package_installer groupinstall "Development Tools" - fi - - eval $package_installer install ansible - - tmp_host_file=ansible_hosts.tmp - ansible_host_file=/etc/ansible/hosts - echo -e "[ourmaster]\n${host_list[0]}\n[ourcluster]\n" >$tmp_host_file - for ((i=1; i<${#host_list[@]}; i++)) - do - echo -e "${host_list[$i]}\n" >>$tmp_host_file - done - $command_prefix mv -f $tmp_host_file $ansible_host_file - - ssh-keygen -t rsa -q - for host in ${host_list[@]} - do - ssh-copy-id -i ~/.ssh/id_rsa.pub $host - done - ansible ourcluster -m ping - - ansible all -m shell -a "$package_installer install python-devel boost boost-devel cmake numpy numpy-devel gflags gflags-devel glog glog-devel protobuf protobuf-devel hdf5 hdf5-devel lmdb lmdb-devel leveldb leveldb-devel snappy-devel opencv opencv-devel" - - ansible all -m shell -a "$package_installer install mc cpuinfo htop tmux screen iftop iperf vim wget bc numactl" - ansible all -m shell -a "systemctl stop firewalld.service" -} - -function build_caffe_gcc -{ - is_multinode_=$1 - - echo "Build Intel Caffe..." - cp Makefile.config.example Makefile.config - - if [ $is_multinode_ -eq 1 ]; then - echo "USE_MLSL := 1" >> Makefile.config - echo "CAFFE_PER_LAYER_TIMINGS := 1" >> Makefile.config - - mlslvars_sh=`find external/mlsl/ -name mlslvars.sh` - if [ -f $mlslvars_sh ]; then - source $mlslvars_sh - fi - fi - - make -j 8 -} - -root_dir=$(cd $(dirname $(dirname $0)); pwd) -boost_root=${root_dir} - -function download_build_boost -{ - # download boost - pushd ${root_dir} - - boost_lib=boost_1_64_0 - boost_zip_file=${boost_lib}.tar.bz2 - # clean - if [ -f $boost_zip_file ]; then - rm $boost_zip_file - fi - - echo "Download boost library..." - wget -c -t 0 https://dl.bintray.com/boostorg/release/1.64.0/source/${boost_zip_file} - echo "Unzip..." - tar -jxf ${boost_zip_file} - pushd ${boost_lib} - - # build boost - echo "Build boost library..." - boost_root=${root_dir}/${boost_lib}/install - ./bootstrap.sh - ./b2 install --prefix=$boost_root - - popd - popd -} - -function build_caffe_icc -{ - is_multinode_=$1 - cmake_params="-DCPU_ONLY=1 -DBOOST_ROOT=$boost_root" - if [ $is_multinode_ -eq 1 ]; then - cmake_params+=" -DUSE_MLSL=1 -DCAFFE_PER_LAYER_TIMINGS=1" - fi - - echo "Build Intel Caffe..." - mkdir build - cd build - - CC=icc CXX=icpc cmake .. $cmake_params - CC=icc CXX=icpc make all -j 8 -} - - -function sync_caffe_dir -{ - caffe_dir=`pwd` - caffe_parent_dir=`dirname $caffe_dir` - ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" -} compiler="icc" host_file="" @@ -198,7 +18,7 @@ while [[ $# -gt 1 ]] do key="$1" case $key in - --host) + --hostfile) host_file="$2" shift ;; @@ -219,61 +39,20 @@ do shift done -# install dependencies -username=`whoami` -if [ "$username" != "root" ]; -then - read -s -p "Enter password for $username: " sudo_passwd - package_installer="echo $sudo_passwd | sudo -S -E $install_command -y " - is_sudoer -fi - -if [ $? -eq 0 ]; then - echo "Install dependencies..." -if [ "$host_file" == "" ]; then - install_deps -else - install_deps_multinode $host_file -fi -fi - -# build - -# check compiler -cplus_compiler="" -if [ "$compiler" == "icc" ]; then - cplus_compiler="icpc" -elif [ $compiler == "gcc" ]; then - cplus_compiler="g++" -else - echo "Invalid compiler: $compiler. Exit." - exit 1 -fi - -for bin in $compiler $cplus_compiler -do - check_dependency $bin - if [ $? -ne 0 ]; then - echo "Canot find compiler: $bin." - exit 1 - fi -done +script_dir=$(cd $(dirname $0); pwd) -is_multinode=0 -if [ "$host_file" != "" ]; then - is_multinode=1 -fi -echo "Build caffe by $compiler..." -if [ "$compiler" == "icc" ]; then - download_build_boost - build_caffe_icc $is_multinode -else - build_caffe_gcc $is_multinode +params="" +if [ "$host_file" != "" ] && [ -f $host_file ]; then + params+=" --hostfile $host_file" fi +$script_dir/install_deps.sh $params -if [ $is_multinode -eq 1 ]; then - sync_caffe_dir +echo "Build caffe..." +params="--compiler $compiler --rebuild " +if [ "$host_file" != "" ] && [ -f $host_file ]; then + params+=" --multinode" fi +$script_dir/build_intelcaffe.sh $params echo "Done." diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index f4a2c41cd..3d71de65d 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -41,7 +41,7 @@ function usage { script_name=$0 echo "Usage:" - echo " $script_name --topology network_topology [--host_file host_file] [--network opa/tcp] [--netmask tcp_netmask]" + echo " $script_name --topology network_topology [--hostfile host_file] [--network opa/tcp] [--netmask tcp_netmask]" echo "" echo " Parameters:" echo " topology: network topology used to benchmark, support alexnet, googlenet, googlenet_v2, resnet_50" @@ -103,7 +103,7 @@ function run_specific_model exec_command="${caffe_bin} --model_file ${model_file} --mode time --iteration ${iterations} --benchmark none" else solver_file="models/intel_optimized_models/${model}/${cpu_model}/solver_dummydata.prototxt" - exec_command="${caffe_bin} --host $host_file --solver $solver_file --network $network --netmask $tcp_netmask --benchmark none" + exec_command="${caffe_bin} --hostfile $host_file --solver $solver_file --network $network --netmask $tcp_netmask --benchmark none" fi # Result file to save detailed run intelcaffe results @@ -252,7 +252,7 @@ do topology="$2" shift ;; - --host_file) + --hostfile) host_file="$2" shift ;; diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 9c91a6172..db2ce7b4f 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -22,6 +22,11 @@ tcp_netmask="" # specify number of MLSL ep servers in command num_mlsl_servers=-1 +debug="off" + +# time/train/resume_train +mode="train" + # parameters for caffe time iteration=0 model_file="" @@ -37,15 +42,16 @@ engine="MKLDNN" numanode=0 result_dir="" -debug="off" mpibench_bin="IMB-MPI1" mpibench_param="allreduce" +script_dir=$(dirname $0) + function usage { script_name=$0 echo "Usage:" - echo " $script_name [--host host_file] [--solver solver_file]" + echo " $script_name [--hostfile host_file] [--solver solver_file]" echo " [--network opa/tcp] [--netmask tcp_netmask] [--debug on/off]" echo " [--mode train/resume_train/time/none] [--benchmark all/qperf/mpi/none]" echo " [--iteration iter] [--model_file deploy.prototxt]" @@ -129,152 +135,6 @@ function check_dependency } -function init_mpi_envs -{ - if [ ${numnodes} -eq 1 ]; then - return - fi - - # IMPI configuration - if [ "$network" == "opa" ]; then - export I_MPI_FABRICS=tmi - export I_MPI_TMI_PROVIDER=psm2 - if [ "$cpu_model" == "knl" ] || [ "$cpu_model" == "knm" ]; then - # PSM2 configuration - export PSM2_MQ_RNDV_HFI_WINDOW=2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 - export PSM2_MQ_EAGER_SDMA_SZ=65536 - export PSM2_MQ_RNDV_HFI_THRESH=200000 - export HFI_NO_CPUAFFINITY=1 - export I_MPI_DYNAMIC_CONNECTION=0 - export I_MPI_SCALABLE_OPTIMIZATION=0 - export I_MPI_PIN_MODE=lib - export I_MPI_PIN_DOMAIN=node - fi - - export PSM2_IDENTIFY=1 # for debug - elif [ "$network" == "tcp" ]; then - export I_MPI_FABRICS=tcp - export I_MPI_TCP_NETMASK=$tcp_netmask - else - echo "Invalid network: $network" - exit 1 - fi - - export I_MPI_FALLBACK=0 - export I_MPI_DEBUG=6 -} - - -function clear_shm -{ - clear_command="rm -rf /dev/shm/*" - check_shm_command="df -h | grep shm" - - # TODO: check if 40G is the minimum shm size? - min_shm_size=40 - shm_unit="G" - - for node in "${nodenames[@]}" - do - ssh ${node} "$clear_command" - shm_line=`ssh ${node} "$check_shm_command"` - shm_string=`echo $shm_line | awk -F ' ' '{print $(NF-2)}'` - unit="${shm_string:(-1)}" - shm_size=${shm_string::-1} - if [ "$unit" == "$shm_unit" ] && [ $shm_size -ge ${min_shm_size} ]; then - continue - else - echo "Warning: /dev/shm free size = ${shm_size}${unit}, on node: ${node}." - echo " Better to larger than ${min_shm_size}${shm_unit}." - echo " Please clean or enlarge the partition." - fi - done -} - -function kill_zombie_processes -{ - kill_command="for process in ep_server caffe mpiexec.hydra; do for i in \$(ps -e | grep -w \$process | awk -F ' ' '{print \$1}'); do kill -9 \$i; echo \"\$process \$i killed.\"; done done" - for node in "${nodenames[@]}" - do - ssh ${node} "$kill_command" - done -} - -function clear_envs -{ - clear_shm - kill_zombie_processes -} - -function set_mlsl_vars -{ - if [ ${num_mlsl_servers} -eq -1 ]; then - if [ ${numnodes} -eq 1 ]; then - numservers=0 - else - if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then - numservers=2 - else - numservers=4 - fi - fi - else - numservers=$((num_mlsl_servers)) - fi - - echo "MLSL_NUM_SERVERS: $numservers" - export MLSL_NUM_SERVERS=${numservers} - - if [ ${numservers} -gt 0 ]; then - if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then - listep=6,7,8,9 - else - listep=6,7,8,9,10,11,12,13 - fi - export MLSL_SERVER_AFFINITY="${listep}" - echo "MLSL_SERVER_AFFINITY: ${listep}" - fi - - # MLSL configuration - if [ "$debug" == "on" ]; then - export MLSL_LOG_LEVEL=3 - else - export MLSL_LOG_LEVEL=0 - fi -} - -function set_env_vars -{ - set_mlsl_vars - init_mpi_envs - - ppncpu=1 - threadspercore=1 - - cores=`lscpu | grep "Core(s) per socket:" | awk '{print $4}'` - sockets=`lscpu | grep "Socket(s)" | awk '{print $2}'` - maxcores=$((cores*sockets)) - - numthreads=$(((maxcores-numservers)*threadspercore)) - numthreads_per_proc=$((numthreads/ppncpu)) - - export OMP_NUM_THREADS=${numthreads_per_proc} - - # OMP configuration - # threadspercore=1 - affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" - export KMP_HW_SUBSET=1t - export KMP_AFFINITY=$affinitystr - if [ "${cpu_model}" == "knl" ] || [ "${cpu_model}" == "knm" ]; then - export KMP_BLOCKTIME=10000000 - export MKL_FAST_MEMORY_LIMIT=0 - if [ ${numnodes} -eq 1 ]; then - affinitystr="compact,1,0,granularity=fine" - export KMP_AFFINITY=$affinitystr - fi - fi -} - function execute_command { local xeonbin_=$1 @@ -301,8 +161,6 @@ function execute_command fi log_file=$result_dir_/outputCluster-${cpu_model}-${numnodes}.txt - clear_envs - sensors_bin="sensors" check_dependency $sensors_bin has_sensors=$? @@ -375,6 +233,9 @@ function run_mpi_bench fi xeonbin="$mpibench_bin $mpibench_param" + if [ "$mpibench_bin" == "IMB-MPI1" ] || [ "$mpibench_bin" == "IMB-NBC" ]; then + xeonbin+=" -msglog 29 -iter 10 -iter_policy off" + fi mpibench_bin_bname=`basename $mpibench_bin` @@ -428,7 +289,6 @@ function run_benchmark fi if [ "$benchmark_mode" == "all" ] || [ "$benchmark_mode" == "mpi" ]; then - set_env_vars run_mpi_bench fi fi @@ -447,7 +307,6 @@ function run_caffe fi fi - set_env_vars execute_command "$xeonbin" $result_dir } @@ -467,7 +326,7 @@ do solver_file="$2" shift ;; - --host) + --hostfile) host_file="$2" shift ;; @@ -623,6 +482,21 @@ if [ ! -d $result_dir ]; then mkdir -p $result_dir fi +env_params="--debug $debug --network $network --netmask $tcp_netmask --num_mlsl_servers $num_mlsl_servers" +if [ "$host_file" != "" ]; then + env_params+=" --hostfile $host_file" +fi +source ${script_dir}/set_env.sh $env_params + +# test connection between nodes via ssh +host_list=( `cat $host_file | sort | uniq ` ) +for host in ${host_list[@]} +do + hostname=`ssh $host "hostname"` + ssh $hostname "ls" +done + + if [ "${benchmark_mode}" != "none" ]; then run_benchmark fi diff --git a/scripts/set_env.sh b/scripts/set_env.sh new file mode 100755 index 000000000..659378151 --- /dev/null +++ b/scripts/set_env.sh @@ -0,0 +1,225 @@ +#!/bin/bash + +# by default, run intel caffe on single node +numnodes=1 + +debug="off" + +# it's assigned by detect_cpu +cpu_model="skx" + +nodenames="" +# a list of nodes +host_file="" + +# network parameters +network="opa" +tcp_netmask="" + +# specify number of MLSL ep servers in command +num_mlsl_servers=-1 + + +function init_mpi_envs +{ + if [ ${numnodes} -eq 1 ]; then + return + fi + + # IMPI configuration + if [ "$network" == "opa" ]; then + export I_MPI_FABRICS=tmi + export I_MPI_TMI_PROVIDER=psm2 + if [ "$cpu_model" == "knl" ] || [ "$cpu_model" == "knm" ]; then + # PSM2 configuration + export PSM2_MQ_RNDV_HFI_WINDOW=2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 + export PSM2_MQ_EAGER_SDMA_SZ=65536 + export PSM2_MQ_RNDV_HFI_THRESH=200000 + export HFI_NO_CPUAFFINITY=1 + export I_MPI_DYNAMIC_CONNECTION=0 + export I_MPI_SCALABLE_OPTIMIZATION=0 + export I_MPI_PIN_MODE=lib + export I_MPI_PIN_DOMAIN=node + fi + + export PSM2_IDENTIFY=1 # for debug + elif [ "$network" == "tcp" ]; then + export I_MPI_FABRICS=tcp + export I_MPI_TCP_NETMASK=$tcp_netmask + else + echo "Invalid network: $network" + exit 1 + fi + + export I_MPI_FALLBACK=0 + export I_MPI_DEBUG=6 +} + + +function clear_shm +{ + clear_command="rm -rf /dev/shm/*" + check_shm_command="df -h | grep shm" + + # TODO: check if 40G is the minimum shm size? + min_shm_size=40 + shm_unit="G" + + for node in "${nodenames[@]}" + do + if [ "${node}" == "" ]; then + echo "Warning: empty node name." + continue + fi + + ssh ${node} "$clear_command" + shm_line=`ssh ${node} "$check_shm_command"` + shm_string=`echo $shm_line | awk -F ' ' '{print $(NF-2)}'` + unit="${shm_string:(-1)}" + shm_size=${shm_string::-1} + if [ "$unit" == "$shm_unit" ] && [ $shm_size -ge ${min_shm_size} ]; then + continue + else + echo "Warning: /dev/shm free size = ${shm_size}${unit}, on node: ${node}." + echo " Better to larger than ${min_shm_size}${shm_unit}." + echo " Please clean or enlarge the partition." + fi + done +} + +function kill_zombie_processes +{ + kill_command="for process in ep_server caffe mpiexec.hydra; do for i in \$(ps -e | grep -w \$process | awk -F ' ' '{print \$1}'); do kill -9 \$i; echo \"\$process \$i killed.\"; done done" + for node in "${nodenames[@]}" + do + ssh ${node} "$kill_command" + done +} + +function clear_envs +{ + clear_shm + kill_zombie_processes +} + +function set_mlsl_vars +{ + if [ ${num_mlsl_servers} -eq -1 ]; then + if [ ${numnodes} -eq 1 ]; then + numservers=0 + else + if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then + numservers=2 + else + numservers=4 + fi + fi + else + numservers=$((num_mlsl_servers)) + fi + + echo "MLSL_NUM_SERVERS: $numservers" + export MLSL_NUM_SERVERS=${numservers} + + if [ ${numservers} -gt 0 ]; then + if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then + listep=6,7,8,9 + else + listep=6,7,8,9,10,11,12,13 + fi + export MLSL_SERVER_AFFINITY="${listep}" + echo "MLSL_SERVER_AFFINITY: ${listep}" + fi + + # MLSL configuration + if [ "$debug" == "on" ]; then + export MLSL_LOG_LEVEL=3 + else + export MLSL_LOG_LEVEL=0 + fi +} + +function set_openmp_envs +{ + ppncpu=1 + threadspercore=1 + + cores=`lscpu | grep "Core(s) per socket:" | awk '{print $4}'` + sockets=`lscpu | grep "Socket(s)" | awk '{print $2}'` + maxcores=$((cores*sockets)) + + numthreads=$(((maxcores-numservers)*threadspercore)) + numthreads_per_proc=$((numthreads/ppncpu)) + + export OMP_NUM_THREADS=${numthreads_per_proc} + + # OMP configuration + # threadspercore=1 + affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" + export KMP_HW_SUBSET=1t + if [ "${cpu_model}" == "knl" ] || [ "${cpu_model}" == "knm" ]; then + export KMP_BLOCKTIME=10000000 + export MKL_FAST_MEMORY_LIMIT=0 + if [ ${numnodes} -eq 1 ]; then + affinitystr="compact,1,0,granularity=fine" + fi + fi + export KMP_AFFINITY=$affinitystr +} + +function set_env_vars +{ + set_mlsl_vars + init_mpi_envs + + # depend on numservers set in set_mlsl_vars function + set_openmp_envs +} + +while [[ $# -gt 1 ]] +do + key="$1" + case $key in + --hostfile) + host_file="$2" + shift + ;; + --network) + network="$2" + shift + ;; + --netmask) + tcp_netmask="$2" + shift + ;; + --debug) + debug="$2" + shift + ;; + --num_mlsl_servers) + num_mlsl_servers=$2 + shift + ;; + *) + echo "Unknown option: $key" + usage + exit 1 + ;; + esac + shift +done + +# Names to configfile, binary (executable) files # +# Add check for host_file's existence to support single node +if [[ $host_file != "" ]]; then + nodenames=( `cat $host_file | sort | uniq ` ) + if [ ${#nodenames[@]} -eq 0 ]; then + echo "Error: empty host file! Exit." + exit 0 + fi + numnodes=${#nodenames[@]} +fi +echo " Number of nodes: $numnodes" + +clear_envs +set_env_vars From 4e5556ef8da557e3c4a7389f173fa967a4d69afd Mon Sep 17 00:00:00 2001 From: fzou1 Date: Fri, 10 Nov 2017 22:41:31 +0800 Subject: [PATCH 13/54] fix an issue in run_intelcaffe.sh for single node; print message in stdout; set MLSL environment if MLSL_ROOT is not defined; update next available ID in caffe.proto --- scripts/run_benchmark.sh | 4 ++-- scripts/run_intelcaffe.sh | 23 +++++++++++++++-------- scripts/set_env.sh | 22 ++++++++++++++-------- src/caffe/proto/caffe.proto | 2 +- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index 3d71de65d..03a85d0a3 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -46,7 +46,7 @@ function usage echo " Parameters:" echo " topology: network topology used to benchmark, support alexnet, googlenet, googlenet_v2, resnet_50" echo " , by specifying it as 'all', we run all supported topologies." - echo " host_file: host_file needed in multinodes mode, should contain list of nodes ips or hostnames" + echo " hostfile: host_file needed in multinodes mode, should contain list of nodes ips or hostnames" echo " network: opa(default), tcp, used in multinodes mode to specify the network type" echo " netmask: only used if network is tcp, set as the net work card name within your network" echo "" @@ -112,7 +112,7 @@ function run_specific_model else result_log_file="result-unknown-${model}-`date +%Y%m%d%H%M%S`.log" fi - $exec_command > $result_log_file 2>&1 + $exec_command 2>&1 | tee $result_log_file obtain_intelcaffe_log $result_log_file calculate_images_per_second $intelcaffe_log_file } diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index db2ce7b4f..80ae550d2 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -310,6 +310,18 @@ function run_caffe execute_command "$xeonbin" $result_dir } +function test_ssh_connection +{ + host_file_=$1 + if [ "$host_file_" != "" ]; then + host_list=( `cat $host_file_ | sort | uniq ` ) + for host in ${host_list[@]} + do + hostname=`ssh $host "hostname"` + ssh $hostname "ls" + done + fi +} if [ $# -le 1 ]; then usage @@ -473,6 +485,9 @@ if [[ $host_file != "" ]]; then fi echo " Number of nodes: $numnodes" +# test connection between nodes via ssh +test_ssh_connection $host_file + detect_cpu set_numa_node @@ -488,14 +503,6 @@ if [ "$host_file" != "" ]; then fi source ${script_dir}/set_env.sh $env_params -# test connection between nodes via ssh -host_list=( `cat $host_file | sort | uniq ` ) -for host in ${host_list[@]} -do - hostname=`ssh $host "hostname"` - ssh $hostname "ls" -done - if [ "${benchmark_mode}" != "none" ]; then run_benchmark diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 659378151..8620b0239 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -18,7 +18,7 @@ tcp_netmask="" # specify number of MLSL ep servers in command num_mlsl_servers=-1 - +numservers=0 function init_mpi_envs { @@ -104,15 +104,21 @@ function clear_envs function set_mlsl_vars { + if [ ${numnodes} -eq 1 ]; then + return + fi + + if [ -z $MLSL_ROOT ]; then + # use built-in mlsl if nothing is specified in ini + mlslvars_sh=`find external/mlsl/ -name mlslvars.sh` + source $mlslvars_sh + fi + if [ ${num_mlsl_servers} -eq -1 ]; then - if [ ${numnodes} -eq 1 ]; then - numservers=0 + if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then + numservers=2 else - if [ "${cpu_model}" == "bdw" ] || [ "${cpu_model}" == "skx" ]; then - numservers=2 - else - numservers=4 - fi + numservers=4 fi else numservers=$((num_mlsl_servers)) diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index a1f6e4d74..d86b36e78 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -254,7 +254,7 @@ message SolverBatchSizePair { // NOTE // Update the next available ID when you add a new SolverParameter field. // -// SolverParameter next available ID: 50 (last added: warm_up_start_lr) +// SolverParameter next available ID: 52 (last added: local_gw_ratio) message SolverParameter { ////////////////////////////////////////////////////////////////////////////// // Specifying the train and test networks From 03a4cf148758533fc1bde4746cf7c24e08bc2661 Mon Sep 17 00:00:00 2001 From: linxinan Date: Mon, 13 Nov 2017 16:21:52 +0800 Subject: [PATCH 14/54] 1. Add vgg_16 16 nodes 1K batch size model 2. Rename vgg_16_8nodes to vgg_16_8nodes_512_batch --- .../vgg_16_16nodes_1k_batch/solver.prototxt | 17 + .../train_val.prototxt | 612 ++++++++++++++++++ .../solver.prototxt | 0 .../train_val.prototxt | 0 4 files changed, 629 insertions(+) create mode 100755 models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt create mode 100755 models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt rename models/intel_optimized_models/multinode/{vgg_16_8nodes => vgg_16_8nodes_512_batch}/solver.prototxt (100%) rename models/intel_optimized_models/multinode/{vgg_16_8nodes => vgg_16_8nodes_512_batch}/train_val.prototxt (100%) diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt new file mode 100755 index 000000000..deab9510e --- /dev/null +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt @@ -0,0 +1,17 @@ +net: "models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt" +warmup_iter: 6255 # 1281167 / 1024 * 5 epochs +warmup_start_lr: 0.003 + +test_iter: 1000 +test_interval: 8000 +momentum: 0.9 +weight_decay: 0.0005 +base_lr: 0.06 +lr_policy: "poly" +power: 2 +max_iter: 80000 # 60 epoch +display: 40 +snapshot: 10000 +solver_mode: CPU +random_seed: 1 +snapshot_prefix: "models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/snapshot" diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt new file mode 100755 index 000000000..9ec8487e6 --- /dev/null +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt @@ -0,0 +1,612 @@ +name: "VGG_ILSVRC_16_layer" +layer { + name: "data" + type: "Data" + include { + phase: TRAIN + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: true + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 64 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "data" + type: "Data" + include { + phase: TEST + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: false + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "conv1_1" + type: "Convolution" + bottom: "data" + top: "conv1_1" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_1" + top: "conv1_1" + name: "relu1_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_1" + top: "conv1_2" + name: "conv1_2" + type: "Convolution" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_2" + top: "conv1_2" + name: "relu1_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_2" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool1" + top: "conv2_1" + name: "conv2_1" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_1" + top: "conv2_1" + name: "relu2_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_1" + top: "conv2_2" + name: "conv2_2" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_2" + top: "conv2_2" + name: "relu2_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_2" + top: "pool2" + name: "pool2" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool2" + top: "conv3_1" + name: "conv3_1" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_1" + top: "conv3_1" + name: "relu3_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_1" + top: "conv3_2" + name: "conv3_2" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_2" + top: "conv3_2" + name: "relu3_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_2" + top: "conv3_3" + name: "conv3_3" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_3" + top: "conv3_3" + name: "relu3_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_3" + top: "pool3" + name: "pool3" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool3" + top: "conv4_1" + name: "conv4_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_1" + top: "conv4_1" + name: "relu4_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_1" + top: "conv4_2" + name: "conv4_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_2" + top: "conv4_2" + name: "relu4_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_2" + top: "conv4_3" + name: "conv4_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_3" + top: "conv4_3" + name: "relu4_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_3" + top: "pool4" + name: "pool4" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool4" + top: "conv5_1" + name: "conv5_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_1" + top: "conv5_1" + name: "relu5_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_1" + top: "conv5_2" + name: "conv5_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_2" + top: "conv5_2" + name: "relu5_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_2" + top: "conv5_3" + name: "conv5_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.0 + } + } + + +} +layer { + bottom: "conv5_3" + top: "conv5_3" + name: "relu5_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_3" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool5" + top: "fc6" + name: "fc6" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc6" + top: "fc6" + name: "relu6" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc6" + top: "fc6" + name: "drop6" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + bottom: "fc6" + top: "fc7" + name: "fc7" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc7" + top: "fc7" + name: "relu7" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc7" + top: "fc7" + name: "drop7" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + bottom: "fc7" + top: "fc8" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss/loss" +} +layer { + name: "accuracy/top1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@1" + include: { phase: TEST } + accuracy_param { + top_k: 1 + } +} +layer { + name: "accuracy/top5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@5" + include: { phase: TEST } + accuracy_param { + top_k: 5 + } +} diff --git a/models/intel_optimized_models/multinode/vgg_16_8nodes/solver.prototxt b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt similarity index 100% rename from models/intel_optimized_models/multinode/vgg_16_8nodes/solver.prototxt rename to models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt diff --git a/models/intel_optimized_models/multinode/vgg_16_8nodes/train_val.prototxt b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt similarity index 100% rename from models/intel_optimized_models/multinode/vgg_16_8nodes/train_val.prototxt rename to models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt From e5950303502a33f4eb8307c0ac82997a9203d550 Mon Sep 17 00:00:00 2001 From: Haihao Shen Date: Tue, 14 Nov 2017 08:16:02 +0800 Subject: [PATCH 15/54] Upgrade MKLML version to 1007 --- external/mkl/prepare_mkl.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/external/mkl/prepare_mkl.sh b/external/mkl/prepare_mkl.sh index 362858b8b..d05340e44 100755 --- a/external/mkl/prepare_mkl.sh +++ b/external/mkl/prepare_mkl.sh @@ -74,10 +74,10 @@ echo $VERSION_LINE # Return Version Line # MKL DST=`dirname $0` OMP=0 -VERSION_MATCH=20170908 -ARCHIVE_BASENAME=mklml_lnx_2018.0.20170908.tgz +VERSION_MATCH=20171007 +ARCHIVE_BASENAME=mklml_lnx_2018.0.1.20171007.tgz MKL_CONTENT_DIR=`echo $ARCHIVE_BASENAME | rev | cut -d "." -f 2- | rev` -GITHUB_RELEASE_TAG=1.0.3 +GITHUB_RELEASE_TAG=1.0.6 MKLURL="https://github.com/intel/caffe/releases/download/$GITHUB_RELEASE_TAG/$ARCHIVE_BASENAME" # there are diffrent MKL lib to be used for GCC and for ICC From e29781c549462db36672dd80cd61068817097c69 Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Tue, 14 Nov 2017 08:40:34 +0800 Subject: [PATCH 16/54] reinitialize vectors used in fw/bw mkldnn primitive creation for reshape case. --- src/caffe/layers/mkldnn_concat_layer.cpp | 6 ++++++ src/caffe/layers/mkldnn_eltwise_layer.cpp | 3 +++ src/caffe/layers/mkldnn_split_layer.cpp | 3 +++ 3 files changed, 12 insertions(+) diff --git a/src/caffe/layers/mkldnn_concat_layer.cpp b/src/caffe/layers/mkldnn_concat_layer.cpp index 0e7965cc0..7da1fb8c8 100644 --- a/src/caffe/layers/mkldnn_concat_layer.cpp +++ b/src/caffe/layers/mkldnn_concat_layer.cpp @@ -281,6 +281,9 @@ void MKLDNNConcatLayer::InitConcatFwd(const vector*>& bottom, std::vector srcs_mpd; std::vector srcs; + fwd_bottom_data.clear(); + fwd_input_primitives_.clear(); + fwd_input_primitives_at_.clear(); for (auto i = 0; i < num_concats_; i++) { fwd_bottom_data.push_back(boost::shared_ptr >()); @@ -385,6 +388,9 @@ void MKLDNNConcatLayer::InitConcatBwd(const vector*>& top, bwd_reorder_input_memory = bwd_top_diff->create_input(false); + bwd_bottom_diff.clear(); + reorders.clear(); + bwd_reorder_output_memory.clear(); for (auto i = 0; i < num_concats_; i++) { bwd_bottom_diff.push_back(boost::shared_ptr >()); reorders.push_back(MKLDNNPrimitive()); diff --git a/src/caffe/layers/mkldnn_eltwise_layer.cpp b/src/caffe/layers/mkldnn_eltwise_layer.cpp index 57ec7497c..ba47f1fa5 100644 --- a/src/caffe/layers/mkldnn_eltwise_layer.cpp +++ b/src/caffe/layers/mkldnn_eltwise_layer.cpp @@ -150,6 +150,9 @@ void MKLDNNEltwiseLayer::InitEltwiseFwd(const vector*>& botto shared_ptr bottom_data_md, top_data_md; std::vector bottom_data_mpd; + fwd_bottom_data.clear(); + fwd_bottom_data_primitives_.clear(); + fwd_bottom_data_primitives_at_.clear(); for (auto i = 0; i < num_bottoms_; i++) { fwd_bottom_data.push_back(boost::shared_ptr >()); diff --git a/src/caffe/layers/mkldnn_split_layer.cpp b/src/caffe/layers/mkldnn_split_layer.cpp index fe46dd085..c307352b0 100644 --- a/src/caffe/layers/mkldnn_split_layer.cpp +++ b/src/caffe/layers/mkldnn_split_layer.cpp @@ -143,6 +143,9 @@ void MKLDNNSplitLayer::InitSplitBwd(const vector*>& bottom, // Gather diff descriptors of top difs (inputs for BW) std::vector prv_diff_srcs_mpd; boost::shared_ptr mpd_ptr; + bwd_top_diffs_.clear(); + bwd_top_diff_primitives_.clear(); + bwd_top_diffs_primitives_at_.clear(); for (int i = 0; i < top.size(); ++i) { // If diff is in private layout then copy descriptor from it memory::format diff_src_mfmt = mfmt_nchw; From d9369f4555181b0eae29fe709f25606ea5580ddf Mon Sep 17 00:00:00 2001 From: linxinan Date: Tue, 14 Nov 2017 11:55:47 +0800 Subject: [PATCH 17/54] Add shuffle for data layer in vgg_16 multi-node topology --- .../multinode/vgg_16_16nodes_1k_batch/train_val.prototxt | 2 ++ .../multinode/vgg_16_8nodes_512_batch/train_val.prototxt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt index 9ec8487e6..ca14497d5 100755 --- a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val.prototxt @@ -14,6 +14,7 @@ layer { } data_param { source: "examples/imagenet/ilsvrc12_train_lmdb" + shuffle: true batch_size: 64 backend: LMDB } @@ -35,6 +36,7 @@ layer { } data_param { source: "examples/imagenet/ilsvrc12_val_lmdb" + shuffle: false batch_size: 50 backend: LMDB } diff --git a/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt index 5571737db..f203ab1db 100644 --- a/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt +++ b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt @@ -14,6 +14,7 @@ layer { } data_param { source: "examples/imagenet/ilsvrc12_train_lmdb" + shuffle: true batch_size: 32 backend: LMDB } @@ -35,6 +36,7 @@ layer { } data_param { source: "examples/imagenet/ilsvrc12_val_lmdb" + shuffle: false batch_size: 50 backend: LMDB } From 3a224ba06ae970b281d608ad0e5364b9beb53e5a Mon Sep 17 00:00:00 2001 From: Shane Li Date: Tue, 14 Nov 2017 14:07:17 +0800 Subject: [PATCH 18/54] Change KNM and SKX cpu model string official support, and use default resnet topology files --- .../bdw/train_val_dummydata.prototxt | 4471 ++++++++++------- .../knl/train_val_dummydata.prototxt | 4471 ++++++++++------- .../knm/train_val_dummydata.prototxt | 4471 ++++++++++------- .../skx/train_val_dummydata.prototxt | 4471 ++++++++++------- scripts/run_benchmark.sh | 8 +- scripts/run_intelcaffe.sh | 8 +- 6 files changed, 10464 insertions(+), 7436 deletions(-) diff --git a/models/intel_optimized_models/resnet_50/bdw/train_val_dummydata.prototxt b/models/intel_optimized_models/resnet_50/bdw/train_val_dummydata.prototxt index aa37d1c88..ba298f468 100644 --- a/models/intel_optimized_models/resnet_50/bdw/train_val_dummydata.prototxt +++ b/models/intel_optimized_models/resnet_50/bdw/train_val_dummydata.prototxt @@ -1,2294 +1,3051 @@ -#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. -# -#Top-5 and Top-1 results achieved with this topology: -#Top-5: 92% -#Top-1: 73.9% -#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +name: "ResNet-50" layer { name: "data" type: "DummyData" top: "data" - top: "label" include { phase: TRAIN } dummy_data_param { + shape: { dim: 32 dim: 3 dim: 224 dim: 224 } data_filler { - type: "constant" - value: 0.01 + type: "constant" + value: 0.01 } - shape: { dim: 32 dim: 3 dim: 224 dim: 224 } - shape: { dim: 32 dim: 1 dim: 1 dim: 1 } } } - layer { name: "data" type: "DummyData" - top: "data" top: "label" include { - phase: TEST + phase: TRAIN } dummy_data_param { + shape: { dim: 32 } data_filler { type: "constant" - value: 0.01 } - shape: { dim: 32 dim: 3 dim: 224 dim: 224 } - shape: { dim: 32 dim: 1 dim: 1 dim: 1 } } } - layer { -name: "conv1" -type: "Convolution" -bottom: "data" -top: "conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - pad: 3 - kernel_size: 7 - stride: 2 - weight_filler { - type: "msra" - variance_norm: FAN_OUT - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "data" + top: "conv1" + name: "conv1" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 7 + pad: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "conv1_bn" -type: "BatchNorm" -bottom: "conv1" -top: "conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "conv1" + top: "conv1" + name: "bn_conv1" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "conv1_relu" -type: "ReLU" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pcs_arm_sim" -} layer { -name: "conv1_pool" -type: "Pooling" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pool" -pooling_param { - kernel_size: 3 - stride: 2 + bottom: "conv1" + top: "conv1" + name: "scale_conv1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_conv1" -type: "Convolution" -bottom: "conv1_pool" -top: "layer_64_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "conv1" + top: "conv1" + name: "conv1_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "conv1" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + kernel_size: 3 + stride: 2 + pool: MAX + } } + layer { -name: "layer_64_1_bn2" -type: "BatchNorm" -bottom: "layer_64_1_conv1" -top: "layer_64_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch1" + name: "res2a_branch1" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu2" -type: "ReLU" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv1_pcs_arm_sim" + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "bn2a_branch1" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv2" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "scale2a_branch1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_bn3" -type: "BatchNorm" -bottom: "layer_64_1_conv2" -top: "layer_64_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch2a" + name: "res2a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu3" -type: "ReLU" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv2_pcs_arm_sim" + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "bn2a_branch2a" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv3" -type: "Convolution" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "scale2a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "res2a_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_1_conv_expand" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2a" + top: "res2a_branch2b" + name: "res2a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_1_sum" -type: "Eltwise" -bottom: "layer_64_1_conv3" -bottom: "layer_64_1_conv_expand" -top: "layer_64_1_sum" + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "bn2a_branch2b" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_2_bn1" -type: "BatchNorm" -bottom: "layer_64_1_sum" -top: "layer_64_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "scale2a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu1" -type: "ReLU" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_bn1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv1" -type: "Convolution" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "res2a_branch2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_2_bn2" -type: "BatchNorm" -bottom: "layer_64_2_conv1" -top: "layer_64_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2c" + name: "res2a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_2_relu2" -type: "ReLU" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv2" -type: "Convolution" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "bn2a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_2_bn3" -type: "BatchNorm" -bottom: "layer_64_2_conv2" -top: "layer_64_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "scale2a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu3" -type: "ReLU" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv2_pcs_arm_sim" -} layer { -name: "layer_64_2_conv3" -type: "Convolution" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch1" + bottom: "res2a_branch2c" + top: "res2a" + name: "res2a" + type: "Eltwise" + eltwise_param { + } } -} layer { -name: "layer_64_2_sum" -type: "Eltwise" -bottom: "layer_64_2_conv3" -bottom: "layer_64_1_sum" -top: "layer_64_2_sum" - + bottom: "res2a" + top: "res2a" + name: "res2a_relu" + type: "ReLU" + relu_param { + + } } + layer { -name: "layer_64_3_bn1" -type: "BatchNorm" -bottom: "layer_64_2_sum" -top: "layer_64_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a" + top: "res2b_branch2a" + name: "res2b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu1" -type: "ReLU" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_bn1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv1" -type: "Convolution" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "bn2b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "scale2b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "res2b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_3_bn2" -type: "BatchNorm" -bottom: "layer_64_3_conv1" -top: "layer_64_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2a" + top: "res2b_branch2b" + name: "res2b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu2" -type: "ReLU" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv2" -type: "Convolution" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "bn2b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_3_bn3" -type: "BatchNorm" -bottom: "layer_64_3_conv2" -top: "layer_64_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "scale2b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_3_relu3" -type: "ReLU" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv2_pcs_arm_sim" -} layer { -name: "layer_64_3_conv3" -type: "Convolution" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "res2b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2c" + name: "res2b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_3_sum" -type: "Eltwise" -bottom: "layer_64_3_conv3" -bottom: "layer_64_2_sum" -top: "layer_64_3_sum" - + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "bn2b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_128_1_bn1" -type: "BatchNorm" -bottom: "layer_64_3_sum" -top: "layer_128_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "scale2b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_1_relu1" -type: "ReLU" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_bn1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv1" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a" + bottom: "res2b_branch2c" + top: "res2b" + name: "res2b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2b" + top: "res2b" + name: "res2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn2" -type: "BatchNorm" -bottom: "layer_128_1_conv1" -top: "layer_128_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b" + top: "res2c_branch2a" + name: "res2c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu2" -type: "ReLU" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv2" -type: "Convolution" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "bn2c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "scale2c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "res2c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn3" -type: "BatchNorm" -bottom: "layer_128_1_conv2" -top: "layer_128_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2c_branch2a" + top: "res2c_branch2b" + name: "res2c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu3" -type: "ReLU" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv2_pcs_arm_sim" -} layer { -name: "layer_128_1_conv3" -type: "Convolution" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "bn2c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_1_conv_expand" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "scale2c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "res2c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2c" + name: "res2c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "bn2c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "scale2c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b" + bottom: "res2c_branch2c" + top: "res2c" + name: "res2c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2c" + top: "res2c" + name: "res2c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_sum" -type: "Eltwise" -bottom: "layer_128_1_conv3" -bottom: "layer_128_1_conv_expand" -top: "layer_128_1_sum" - + bottom: "res2c" + top: "res3a_branch1" + name: "res3a_branch1" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "bn3a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "scale3a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c" + top: "res3a_branch2a" + name: "res3a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "bn3a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "scale3a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "res3a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2b" + name: "res3a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_2_bn1" -type: "BatchNorm" -bottom: "layer_128_1_sum" -top: "layer_128_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "bn3a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "scale3a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "res3a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2c" + name: "res3a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu1" -type: "ReLU" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_bn1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv1" -type: "Convolution" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "bn3a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_2_bn2" -type: "BatchNorm" -bottom: "layer_128_2_conv1" -top: "layer_128_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "scale3a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_2_relu2" -type: "ReLU" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv2" -type: "Convolution" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a_branch1" + bottom: "res3a_branch2c" + top: "res3a" + name: "res3a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3a" + top: "res3a" + name: "res3a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_bn3" -type: "BatchNorm" -bottom: "layer_128_2_conv2" -top: "layer_128_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a" + top: "res3b_branch2a" + name: "res3b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu3" -type: "ReLU" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv2_pcs_arm_sim" -} layer { -name: "layer_128_2_conv3" -type: "Convolution" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "bn3b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "scale3b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "res3b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_sum" -type: "Eltwise" -bottom: "layer_128_2_conv3" -bottom: "layer_128_1_sum" -top: "layer_128_2_sum" - + bottom: "res3b_branch2a" + top: "res3b_branch2b" + name: "res3b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_3_bn1" -type: "BatchNorm" -bottom: "layer_128_2_sum" -top: "layer_128_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "bn3b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_3_relu1" -type: "ReLU" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_bn1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv1" -type: "Convolution" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "scale3b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_128_3_bn2" -type: "BatchNorm" -bottom: "layer_128_3_conv1" -top: "layer_128_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "res3b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2c" + name: "res3b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_3_relu2" -type: "ReLU" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv2" -type: "Convolution" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "bn3b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_3_bn3" -type: "BatchNorm" -bottom: "layer_128_3_conv2" -top: "layer_128_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "scale3b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_3_relu3" -type: "ReLU" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv2_pcs_arm_sim" -} layer { -name: "layer_128_3_conv3" -type: "Convolution" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a" + bottom: "res3b_branch2c" + top: "res3b" + name: "res3b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3b" + top: "res3b" + name: "res3b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_3_sum" -type: "Eltwise" -bottom: "layer_128_3_conv3" -bottom: "layer_128_2_sum" -top: "layer_128_3_sum" - + bottom: "res3b" + top: "res3c_branch2a" + name: "res3c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_4_bn1" -type: "BatchNorm" -bottom: "layer_128_3_sum" -top: "layer_128_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "bn3c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_4_relu1" -type: "ReLU" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_bn1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv1" -type: "Convolution" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "scale3c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "res3c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_4_bn2" -type: "BatchNorm" -bottom: "layer_128_4_conv1" -top: "layer_128_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2b" + name: "res3c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_4_relu2" -type: "ReLU" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv2" -type: "Convolution" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "bn3c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_4_bn3" -type: "BatchNorm" -bottom: "layer_128_4_conv2" -top: "layer_128_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "scale3c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_4_relu3" -type: "ReLU" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv2_pcs_arm_sim" -} layer { -name: "layer_128_4_conv3" -type: "Convolution" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "res3c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2c" + name: "res3c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_128_4_sum" -type: "Eltwise" -bottom: "layer_128_4_conv3" -bottom: "layer_128_3_sum" -top: "layer_128_4_sum" - + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "bn3c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_1_bn1" -type: "BatchNorm" -bottom: "layer_128_4_sum" -top: "layer_256_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "scale3c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_1_relu1" -type: "ReLU" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_bn1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv1" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3b" + bottom: "res3c_branch2c" + top: "res3c" + name: "res3c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3c" + top: "res3c" + name: "res3c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn2" -type: "BatchNorm" -bottom: "layer_256_1_conv1" -top: "layer_256_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c" + top: "res3d_branch2a" + name: "res3d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu2" -type: "ReLU" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv2" -type: "Convolution" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "bn3d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "scale3d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "res3d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn3" -type: "BatchNorm" -bottom: "layer_256_1_conv2" -top: "layer_256_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3d_branch2a" + top: "res3d_branch2b" + name: "res3d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu3" -type: "ReLU" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv2_pcs_arm_sim" -} layer { -name: "layer_256_1_conv3" -type: "Convolution" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "bn3d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_1_conv_expand" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "scale3d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "res3d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2c" + name: "res3d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "bn3d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "scale3d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c" + bottom: "res3d_branch2c" + top: "res3d" + name: "res3d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3d" + top: "res3d" + name: "res3d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_sum" -type: "Eltwise" -bottom: "layer_256_1_conv3" -bottom: "layer_256_1_conv_expand" -top: "layer_256_1_sum" - + bottom: "res3d" + top: "res4a_branch1" + name: "res4a_branch1" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "bn4a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "scale4a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d" + top: "res4a_branch2a" + name: "res4a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "bn4a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "scale4a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "res4a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2b" + name: "res4a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_2_bn1" -type: "BatchNorm" -bottom: "layer_256_1_sum" -top: "layer_256_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "bn4a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "scale4a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "res4a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2c" + name: "res4a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu1" -type: "ReLU" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_bn1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv1" -type: "Convolution" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "bn4a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_2_bn2" -type: "BatchNorm" -bottom: "layer_256_2_conv1" -top: "layer_256_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "scale4a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_2_relu2" -type: "ReLU" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv2" -type: "Convolution" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a_branch1" + bottom: "res4a_branch2c" + top: "res4a" + name: "res4a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4a" + top: "res4a" + name: "res4a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_bn3" -type: "BatchNorm" -bottom: "layer_256_2_conv2" -top: "layer_256_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a" + top: "res4b_branch2a" + name: "res4b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu3" -type: "ReLU" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv2_pcs_arm_sim" -} layer { -name: "layer_256_2_conv3" -type: "Convolution" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "bn4b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "scale4b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "res4b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_sum" -type: "Eltwise" -bottom: "layer_256_2_conv3" -bottom: "layer_256_1_sum" -top: "layer_256_2_sum" - + bottom: "res4b_branch2a" + top: "res4b_branch2b" + name: "res4b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_3_bn1" -type: "BatchNorm" -bottom: "layer_256_2_sum" -top: "layer_256_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "bn4b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_3_relu1" -type: "ReLU" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_bn1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv1" -type: "Convolution" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "scale4b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_256_3_bn2" -type: "BatchNorm" -bottom: "layer_256_3_conv1" -top: "layer_256_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "res4b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2c" + name: "res4b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_3_relu2" -type: "ReLU" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv2" -type: "Convolution" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "bn4b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_3_bn3" -type: "BatchNorm" -bottom: "layer_256_3_conv2" -top: "layer_256_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "scale4b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_3_relu3" -type: "ReLU" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv2_pcs_arm_sim" -} layer { -name: "layer_256_3_conv3" -type: "Convolution" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a" + bottom: "res4b_branch2c" + top: "res4b" + name: "res4b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4b" + top: "res4b" + name: "res4b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_3_sum" -type: "Eltwise" -bottom: "layer_256_3_conv3" -bottom: "layer_256_2_sum" -top: "layer_256_3_sum" - + bottom: "res4b" + top: "res4c_branch2a" + name: "res4c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_4_bn1" -type: "BatchNorm" -bottom: "layer_256_3_sum" -top: "layer_256_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "bn4c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_4_relu1" -type: "ReLU" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_bn1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv1" -type: "Convolution" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "scale4c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "res4c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_4_bn2" -type: "BatchNorm" -bottom: "layer_256_4_conv1" -top: "layer_256_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2b" + name: "res4c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_4_relu2" -type: "ReLU" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv2" -type: "Convolution" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "bn4c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_4_bn3" -type: "BatchNorm" -bottom: "layer_256_4_conv2" -top: "layer_256_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "scale4c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_4_relu3" -type: "ReLU" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv2_pcs_arm_sim" -} layer { -name: "layer_256_4_conv3" -type: "Convolution" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "res4c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2c" + name: "res4c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_256_4_sum" -type: "Eltwise" -bottom: "layer_256_4_conv3" -bottom: "layer_256_3_sum" -top: "layer_256_4_sum" - + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "bn4c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_5_bn1" -type: "BatchNorm" -bottom: "layer_256_4_sum" -top: "layer_256_5_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "scale4c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_5_relu1" -type: "ReLU" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_bn1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv1" -type: "Convolution" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4b" + bottom: "res4c_branch2c" + top: "res4c" + name: "res4c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4c" + top: "res4c" + name: "res4c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn2" -type: "BatchNorm" -bottom: "layer_256_5_conv1" -top: "layer_256_5_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c" + top: "res4d_branch2a" + name: "res4d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu2" -type: "ReLU" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv2" -type: "Convolution" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "bn4d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "scale4d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "res4d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn3" -type: "BatchNorm" -bottom: "layer_256_5_conv2" -top: "layer_256_5_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2a" + top: "res4d_branch2b" + name: "res4d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu3" -type: "ReLU" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv2_pcs_arm_sim" -} layer { -name: "layer_256_5_conv3" -type: "Convolution" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "bn4d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_5_sum" -type: "Eltwise" -bottom: "layer_256_5_conv3" -bottom: "layer_256_4_sum" -top: "layer_256_5_sum" - + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "scale4d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "layer_256_6_bn1" -type: "BatchNorm" -bottom: "layer_256_5_sum" -top: "layer_256_6_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "res4d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2c" + name: "res4d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu1" -type: "ReLU" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_bn1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv1" -type: "Convolution" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "bn4d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_6_bn2" -type: "BatchNorm" -bottom: "layer_256_6_conv1" -top: "layer_256_6_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "scale4d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_6_relu2" -type: "ReLU" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv2" -type: "Convolution" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c" + bottom: "res4d_branch2c" + top: "res4d" + name: "res4d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4d" + top: "res4d" + name: "res4d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_bn3" -type: "BatchNorm" -bottom: "layer_256_6_conv2" -top: "layer_256_6_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d" + top: "res4e_branch2a" + name: "res4e_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu3" -type: "ReLU" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv2_pcs_arm_sim" -} layer { -name: "layer_256_6_conv3" -type: "Convolution" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "bn4e_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "scale4e_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "res4e_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_sum" -type: "Eltwise" -bottom: "layer_256_6_conv3" -bottom: "layer_256_5_sum" -top: "layer_256_6_sum" - + bottom: "res4e_branch2a" + top: "res4e_branch2b" + name: "res4e_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_bn1" -type: "BatchNorm" -bottom: "layer_256_6_sum" -top: "layer_512_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "bn4e_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_1_relu1" -type: "ReLU" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_bn1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv1" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "scale4e_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_1_bn2" -type: "BatchNorm" -bottom: "layer_512_1_conv1" -top: "layer_512_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "res4e_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2c" + name: "res4e_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_1_relu2" -type: "ReLU" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv2" -type: "Convolution" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "bn4e_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_512_1_bn3" -type: "BatchNorm" -bottom: "layer_512_1_conv2" -top: "layer_512_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "scale4e_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_512_1_relu3" -type: "ReLU" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv2_pcs_arm_sim" -} layer { -name: "layer_512_1_conv3" -type: "Convolution" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4d" + bottom: "res4e_branch2c" + top: "res4e" + name: "res4e" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4e" + top: "res4e" + name: "res4e_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "res4e" + top: "res4f_branch2a" + name: "res4f_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_conv_expand" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "bn4f_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "scale4f_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "res4f_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_1_sum" -type: "Eltwise" -bottom: "layer_512_1_conv3" -bottom: "layer_512_1_conv_expand" -top: "layer_512_1_sum" - + bottom: "res4f_branch2a" + top: "res4f_branch2b" + name: "res4f_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_bn1" -type: "BatchNorm" -bottom: "layer_512_1_sum" -top: "layer_512_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "bn4f_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_2_relu1" -type: "ReLU" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_bn1_pcs_arm_sim" -} layer { -name: "layer_512_2_conv1" -type: "Convolution" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "scale4f_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "res4f_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2c" + name: "res4f_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "bn4f_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "scale4f_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e" + bottom: "res4f_branch2c" + top: "res4f" + name: "res4f" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4f" + top: "res4f" + name: "res4f_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn2" -type: "BatchNorm" -bottom: "layer_512_2_conv1" -top: "layer_512_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f" + top: "res5a_branch1" + name: "res5a_branch1" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "bn5a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "scale5a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f" + top: "res5a_branch2a" + name: "res5a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "bn5a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "scale5a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "res5a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2b" + name: "res5a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_relu2" -type: "ReLU" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv1_pcs_arm_sim" + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "bn5a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "scale5a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "res5a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2c" + name: "res5a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "bn5a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_2_conv2" -type: "Convolution" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "scale5a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a_branch1" + bottom: "res5a_branch2c" + top: "res5a" + name: "res5a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5a" + top: "res5a" + name: "res5a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn3" -type: "BatchNorm" -bottom: "layer_512_2_conv2" -top: "layer_512_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5a" + top: "res5b_branch2a" + name: "res5b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_2_relu3" -type: "ReLU" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv2_pcs_arm_sim" -} layer { -name: "layer_512_2_conv3" -type: "Convolution" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "bn5b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "scale5b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "res5b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_sum" -type: "Eltwise" -bottom: "layer_512_2_conv3" -bottom: "layer_512_1_sum" -top: "layer_512_2_sum" - + bottom: "res5b_branch2a" + top: "res5b_branch2b" + name: "res5b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_3_bn1" -type: "BatchNorm" -bottom: "layer_512_2_sum" -top: "layer_512_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "bn5b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_3_relu1" -type: "ReLU" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_bn1_pcs_arm_sim" -} layer { -name: "layer_512_3_conv1" -type: "Convolution" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "scale5b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_3_bn2" -type: "BatchNorm" -bottom: "layer_512_3_conv1" -top: "layer_512_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "res5b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2c" + name: "res5b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu2" -type: "ReLU" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv1_pcs_arm_sim" +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "bn5b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_3_conv2" -type: "Convolution" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "scale5b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a" + bottom: "res5b_branch2c" + top: "res5b" + name: "res5b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5b" + top: "res5b" + name: "res5b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_bn3" -type: "BatchNorm" -bottom: "layer_512_3_conv2" -top: "layer_512_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b" + top: "res5c_branch2a" + name: "res5c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu3" -type: "ReLU" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv2_pcs_arm_sim" -} layer { -name: "layer_512_3_conv3" -type: "Convolution" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "bn5c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "scale5c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "res5c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_sum" -type: "Eltwise" -bottom: "layer_512_3_conv3" -bottom: "layer_512_2_sum" -top: "layer_512_3_sum" - + bottom: "res5c_branch2a" + top: "res5c_branch2b" + name: "res5c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "last_bn" -type: "BatchNorm" -bottom: "layer_512_3_sum" -top: "layer_512_3_sum_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "bn5c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "last_relu" -type: "ReLU" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "layer_512_3_sum_pcs_arm_sim" -} layer { -name: "global_pool" -type: "Pooling" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "global_pool" -pooling_param { - pool: AVE - global_pooling: true + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "scale5c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "score" -type: "InnerProduct" -bottom: "global_pool" -top: "score" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "res5c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2c" + name: "res5c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -inner_product_param { - num_output: 1000 + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "bn5c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "scale5c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "loss" -type: "SoftmaxWithLoss" -bottom: "score" -bottom: "label" -top: "loss" + bottom: "res5b" + bottom: "res5c_branch2c" + top: "res5c" + name: "res5c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5c" + top: "res5c" + name: "res5c_relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "res5c" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + kernel_size: 7 + stride: 1 + pool: AVE + } } + layer { -name: "accuracy" -type: "Accuracy" -bottom: "score" -bottom: "label" -top: "accuracy" -include { - phase: TEST + bottom: "pool5" + top: "fc1000" + name: "fc1000" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } } +layer { + bottom: "fc1000" + bottom: "label" + top: "prob" + name: "prob" + type: "SoftmaxWithLoss" + include { + phase: TRAIN + } +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } } diff --git a/models/intel_optimized_models/resnet_50/knl/train_val_dummydata.prototxt b/models/intel_optimized_models/resnet_50/knl/train_val_dummydata.prototxt index f0f4ffd60..00c35771f 100644 --- a/models/intel_optimized_models/resnet_50/knl/train_val_dummydata.prototxt +++ b/models/intel_optimized_models/resnet_50/knl/train_val_dummydata.prototxt @@ -1,2294 +1,3051 @@ -#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. -# -#Top-5 and Top-1 results achieved with this topology: -#Top-5: 92% -#Top-1: 73.9% -#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +name: "ResNet-50" layer { name: "data" type: "DummyData" top: "data" - top: "label" include { phase: TRAIN } dummy_data_param { + shape: { dim: 64 dim: 3 dim: 224 dim: 224 } data_filler { - type: "constant" - value: 0.01 + type: "constant" + value: 0.01 } - shape: { dim: 64 dim: 3 dim: 224 dim: 224 } - shape: { dim: 64 dim: 1 dim: 1 dim: 1 } } } - layer { name: "data" type: "DummyData" - top: "data" top: "label" include { - phase: TEST + phase: TRAIN } dummy_data_param { + shape: { dim: 64 } data_filler { type: "constant" - value: 0.01 } - shape: { dim: 128 dim: 3 dim: 224 dim: 224 } - shape: { dim: 128 dim: 1 dim: 1 dim: 1 } } } - layer { -name: "conv1" -type: "Convolution" -bottom: "data" -top: "conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - pad: 3 - kernel_size: 7 - stride: 2 - weight_filler { - type: "msra" - variance_norm: FAN_OUT - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "data" + top: "conv1" + name: "conv1" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 7 + pad: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "conv1_bn" -type: "BatchNorm" -bottom: "conv1" -top: "conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "conv1" + top: "conv1" + name: "bn_conv1" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "conv1_relu" -type: "ReLU" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pcs_arm_sim" -} layer { -name: "conv1_pool" -type: "Pooling" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pool" -pooling_param { - kernel_size: 3 - stride: 2 + bottom: "conv1" + top: "conv1" + name: "scale_conv1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_conv1" -type: "Convolution" -bottom: "conv1_pool" -top: "layer_64_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "conv1" + top: "conv1" + name: "conv1_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "conv1" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + kernel_size: 3 + stride: 2 + pool: MAX + } } + layer { -name: "layer_64_1_bn2" -type: "BatchNorm" -bottom: "layer_64_1_conv1" -top: "layer_64_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch1" + name: "res2a_branch1" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu2" -type: "ReLU" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv1_pcs_arm_sim" + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "bn2a_branch1" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv2" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "scale2a_branch1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_bn3" -type: "BatchNorm" -bottom: "layer_64_1_conv2" -top: "layer_64_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch2a" + name: "res2a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu3" -type: "ReLU" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv2_pcs_arm_sim" + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "bn2a_branch2a" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv3" -type: "Convolution" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "scale2a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "res2a_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_1_conv_expand" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2a" + top: "res2a_branch2b" + name: "res2a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_1_sum" -type: "Eltwise" -bottom: "layer_64_1_conv3" -bottom: "layer_64_1_conv_expand" -top: "layer_64_1_sum" + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "bn2a_branch2b" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_2_bn1" -type: "BatchNorm" -bottom: "layer_64_1_sum" -top: "layer_64_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "scale2a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu1" -type: "ReLU" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_bn1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv1" -type: "Convolution" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "res2a_branch2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_2_bn2" -type: "BatchNorm" -bottom: "layer_64_2_conv1" -top: "layer_64_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2c" + name: "res2a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_2_relu2" -type: "ReLU" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv2" -type: "Convolution" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "bn2a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_2_bn3" -type: "BatchNorm" -bottom: "layer_64_2_conv2" -top: "layer_64_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "scale2a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu3" -type: "ReLU" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv2_pcs_arm_sim" -} layer { -name: "layer_64_2_conv3" -type: "Convolution" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch1" + bottom: "res2a_branch2c" + top: "res2a" + name: "res2a" + type: "Eltwise" + eltwise_param { + } } -} layer { -name: "layer_64_2_sum" -type: "Eltwise" -bottom: "layer_64_2_conv3" -bottom: "layer_64_1_sum" -top: "layer_64_2_sum" - + bottom: "res2a" + top: "res2a" + name: "res2a_relu" + type: "ReLU" + relu_param { + + } } + layer { -name: "layer_64_3_bn1" -type: "BatchNorm" -bottom: "layer_64_2_sum" -top: "layer_64_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a" + top: "res2b_branch2a" + name: "res2b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu1" -type: "ReLU" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_bn1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv1" -type: "Convolution" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "bn2b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "scale2b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "res2b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_3_bn2" -type: "BatchNorm" -bottom: "layer_64_3_conv1" -top: "layer_64_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2a" + top: "res2b_branch2b" + name: "res2b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu2" -type: "ReLU" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv2" -type: "Convolution" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "bn2b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_3_bn3" -type: "BatchNorm" -bottom: "layer_64_3_conv2" -top: "layer_64_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "scale2b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_3_relu3" -type: "ReLU" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv2_pcs_arm_sim" -} layer { -name: "layer_64_3_conv3" -type: "Convolution" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "res2b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2c" + name: "res2b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_3_sum" -type: "Eltwise" -bottom: "layer_64_3_conv3" -bottom: "layer_64_2_sum" -top: "layer_64_3_sum" - + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "bn2b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_128_1_bn1" -type: "BatchNorm" -bottom: "layer_64_3_sum" -top: "layer_128_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "scale2b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_1_relu1" -type: "ReLU" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_bn1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv1" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a" + bottom: "res2b_branch2c" + top: "res2b" + name: "res2b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2b" + top: "res2b" + name: "res2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn2" -type: "BatchNorm" -bottom: "layer_128_1_conv1" -top: "layer_128_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b" + top: "res2c_branch2a" + name: "res2c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu2" -type: "ReLU" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv2" -type: "Convolution" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "bn2c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "scale2c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "res2c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn3" -type: "BatchNorm" -bottom: "layer_128_1_conv2" -top: "layer_128_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2c_branch2a" + top: "res2c_branch2b" + name: "res2c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu3" -type: "ReLU" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv2_pcs_arm_sim" -} layer { -name: "layer_128_1_conv3" -type: "Convolution" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "bn2c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_1_conv_expand" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "scale2c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "res2c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2c" + name: "res2c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "bn2c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "scale2c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b" + bottom: "res2c_branch2c" + top: "res2c" + name: "res2c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2c" + top: "res2c" + name: "res2c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_sum" -type: "Eltwise" -bottom: "layer_128_1_conv3" -bottom: "layer_128_1_conv_expand" -top: "layer_128_1_sum" - + bottom: "res2c" + top: "res3a_branch1" + name: "res3a_branch1" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "bn3a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "scale3a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c" + top: "res3a_branch2a" + name: "res3a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "bn3a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "scale3a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "res3a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2b" + name: "res3a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_2_bn1" -type: "BatchNorm" -bottom: "layer_128_1_sum" -top: "layer_128_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "bn3a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "scale3a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "res3a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2c" + name: "res3a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu1" -type: "ReLU" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_bn1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv1" -type: "Convolution" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "bn3a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_2_bn2" -type: "BatchNorm" -bottom: "layer_128_2_conv1" -top: "layer_128_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "scale3a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_2_relu2" -type: "ReLU" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv2" -type: "Convolution" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a_branch1" + bottom: "res3a_branch2c" + top: "res3a" + name: "res3a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3a" + top: "res3a" + name: "res3a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_bn3" -type: "BatchNorm" -bottom: "layer_128_2_conv2" -top: "layer_128_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a" + top: "res3b_branch2a" + name: "res3b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu3" -type: "ReLU" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv2_pcs_arm_sim" -} layer { -name: "layer_128_2_conv3" -type: "Convolution" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "bn3b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "scale3b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "res3b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_sum" -type: "Eltwise" -bottom: "layer_128_2_conv3" -bottom: "layer_128_1_sum" -top: "layer_128_2_sum" - + bottom: "res3b_branch2a" + top: "res3b_branch2b" + name: "res3b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_3_bn1" -type: "BatchNorm" -bottom: "layer_128_2_sum" -top: "layer_128_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "bn3b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_3_relu1" -type: "ReLU" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_bn1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv1" -type: "Convolution" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "scale3b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_128_3_bn2" -type: "BatchNorm" -bottom: "layer_128_3_conv1" -top: "layer_128_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "res3b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2c" + name: "res3b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_3_relu2" -type: "ReLU" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv2" -type: "Convolution" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "bn3b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_3_bn3" -type: "BatchNorm" -bottom: "layer_128_3_conv2" -top: "layer_128_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "scale3b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_3_relu3" -type: "ReLU" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv2_pcs_arm_sim" -} layer { -name: "layer_128_3_conv3" -type: "Convolution" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a" + bottom: "res3b_branch2c" + top: "res3b" + name: "res3b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3b" + top: "res3b" + name: "res3b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_3_sum" -type: "Eltwise" -bottom: "layer_128_3_conv3" -bottom: "layer_128_2_sum" -top: "layer_128_3_sum" - + bottom: "res3b" + top: "res3c_branch2a" + name: "res3c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_4_bn1" -type: "BatchNorm" -bottom: "layer_128_3_sum" -top: "layer_128_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "bn3c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_4_relu1" -type: "ReLU" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_bn1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv1" -type: "Convolution" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "scale3c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "res3c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_4_bn2" -type: "BatchNorm" -bottom: "layer_128_4_conv1" -top: "layer_128_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2b" + name: "res3c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_4_relu2" -type: "ReLU" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv2" -type: "Convolution" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "bn3c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_4_bn3" -type: "BatchNorm" -bottom: "layer_128_4_conv2" -top: "layer_128_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "scale3c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_4_relu3" -type: "ReLU" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv2_pcs_arm_sim" -} layer { -name: "layer_128_4_conv3" -type: "Convolution" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "res3c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2c" + name: "res3c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_128_4_sum" -type: "Eltwise" -bottom: "layer_128_4_conv3" -bottom: "layer_128_3_sum" -top: "layer_128_4_sum" - + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "bn3c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_1_bn1" -type: "BatchNorm" -bottom: "layer_128_4_sum" -top: "layer_256_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "scale3c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_1_relu1" -type: "ReLU" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_bn1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv1" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3b" + bottom: "res3c_branch2c" + top: "res3c" + name: "res3c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3c" + top: "res3c" + name: "res3c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn2" -type: "BatchNorm" -bottom: "layer_256_1_conv1" -top: "layer_256_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c" + top: "res3d_branch2a" + name: "res3d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu2" -type: "ReLU" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv2" -type: "Convolution" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "bn3d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "scale3d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "res3d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn3" -type: "BatchNorm" -bottom: "layer_256_1_conv2" -top: "layer_256_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3d_branch2a" + top: "res3d_branch2b" + name: "res3d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu3" -type: "ReLU" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv2_pcs_arm_sim" -} layer { -name: "layer_256_1_conv3" -type: "Convolution" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "bn3d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_1_conv_expand" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "scale3d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "res3d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2c" + name: "res3d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "bn3d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "scale3d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c" + bottom: "res3d_branch2c" + top: "res3d" + name: "res3d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3d" + top: "res3d" + name: "res3d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_sum" -type: "Eltwise" -bottom: "layer_256_1_conv3" -bottom: "layer_256_1_conv_expand" -top: "layer_256_1_sum" - + bottom: "res3d" + top: "res4a_branch1" + name: "res4a_branch1" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "bn4a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "scale4a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d" + top: "res4a_branch2a" + name: "res4a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "bn4a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "scale4a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "res4a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2b" + name: "res4a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_2_bn1" -type: "BatchNorm" -bottom: "layer_256_1_sum" -top: "layer_256_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "bn4a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "scale4a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "res4a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2c" + name: "res4a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu1" -type: "ReLU" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_bn1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv1" -type: "Convolution" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "bn4a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_2_bn2" -type: "BatchNorm" -bottom: "layer_256_2_conv1" -top: "layer_256_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "scale4a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_2_relu2" -type: "ReLU" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv2" -type: "Convolution" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a_branch1" + bottom: "res4a_branch2c" + top: "res4a" + name: "res4a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4a" + top: "res4a" + name: "res4a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_bn3" -type: "BatchNorm" -bottom: "layer_256_2_conv2" -top: "layer_256_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a" + top: "res4b_branch2a" + name: "res4b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu3" -type: "ReLU" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv2_pcs_arm_sim" -} layer { -name: "layer_256_2_conv3" -type: "Convolution" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "bn4b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "scale4b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "res4b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_sum" -type: "Eltwise" -bottom: "layer_256_2_conv3" -bottom: "layer_256_1_sum" -top: "layer_256_2_sum" - + bottom: "res4b_branch2a" + top: "res4b_branch2b" + name: "res4b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_3_bn1" -type: "BatchNorm" -bottom: "layer_256_2_sum" -top: "layer_256_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "bn4b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_3_relu1" -type: "ReLU" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_bn1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv1" -type: "Convolution" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "scale4b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_256_3_bn2" -type: "BatchNorm" -bottom: "layer_256_3_conv1" -top: "layer_256_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "res4b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2c" + name: "res4b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_3_relu2" -type: "ReLU" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv2" -type: "Convolution" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "bn4b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_3_bn3" -type: "BatchNorm" -bottom: "layer_256_3_conv2" -top: "layer_256_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "scale4b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_3_relu3" -type: "ReLU" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv2_pcs_arm_sim" -} layer { -name: "layer_256_3_conv3" -type: "Convolution" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a" + bottom: "res4b_branch2c" + top: "res4b" + name: "res4b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4b" + top: "res4b" + name: "res4b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_3_sum" -type: "Eltwise" -bottom: "layer_256_3_conv3" -bottom: "layer_256_2_sum" -top: "layer_256_3_sum" - + bottom: "res4b" + top: "res4c_branch2a" + name: "res4c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_4_bn1" -type: "BatchNorm" -bottom: "layer_256_3_sum" -top: "layer_256_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "bn4c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_4_relu1" -type: "ReLU" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_bn1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv1" -type: "Convolution" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "scale4c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "res4c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_4_bn2" -type: "BatchNorm" -bottom: "layer_256_4_conv1" -top: "layer_256_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2b" + name: "res4c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_4_relu2" -type: "ReLU" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv2" -type: "Convolution" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "bn4c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_4_bn3" -type: "BatchNorm" -bottom: "layer_256_4_conv2" -top: "layer_256_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "scale4c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_4_relu3" -type: "ReLU" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv2_pcs_arm_sim" -} layer { -name: "layer_256_4_conv3" -type: "Convolution" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "res4c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2c" + name: "res4c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_256_4_sum" -type: "Eltwise" -bottom: "layer_256_4_conv3" -bottom: "layer_256_3_sum" -top: "layer_256_4_sum" - + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "bn4c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_5_bn1" -type: "BatchNorm" -bottom: "layer_256_4_sum" -top: "layer_256_5_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "scale4c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_5_relu1" -type: "ReLU" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_bn1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv1" -type: "Convolution" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4b" + bottom: "res4c_branch2c" + top: "res4c" + name: "res4c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4c" + top: "res4c" + name: "res4c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn2" -type: "BatchNorm" -bottom: "layer_256_5_conv1" -top: "layer_256_5_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c" + top: "res4d_branch2a" + name: "res4d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu2" -type: "ReLU" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv2" -type: "Convolution" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "bn4d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "scale4d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "res4d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn3" -type: "BatchNorm" -bottom: "layer_256_5_conv2" -top: "layer_256_5_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2a" + top: "res4d_branch2b" + name: "res4d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu3" -type: "ReLU" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv2_pcs_arm_sim" -} layer { -name: "layer_256_5_conv3" -type: "Convolution" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "bn4d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_5_sum" -type: "Eltwise" -bottom: "layer_256_5_conv3" -bottom: "layer_256_4_sum" -top: "layer_256_5_sum" - + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "scale4d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "layer_256_6_bn1" -type: "BatchNorm" -bottom: "layer_256_5_sum" -top: "layer_256_6_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "res4d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2c" + name: "res4d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu1" -type: "ReLU" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_bn1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv1" -type: "Convolution" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "bn4d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_6_bn2" -type: "BatchNorm" -bottom: "layer_256_6_conv1" -top: "layer_256_6_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "scale4d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_6_relu2" -type: "ReLU" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv2" -type: "Convolution" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c" + bottom: "res4d_branch2c" + top: "res4d" + name: "res4d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4d" + top: "res4d" + name: "res4d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_bn3" -type: "BatchNorm" -bottom: "layer_256_6_conv2" -top: "layer_256_6_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d" + top: "res4e_branch2a" + name: "res4e_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu3" -type: "ReLU" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv2_pcs_arm_sim" -} layer { -name: "layer_256_6_conv3" -type: "Convolution" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "bn4e_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "scale4e_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "res4e_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_sum" -type: "Eltwise" -bottom: "layer_256_6_conv3" -bottom: "layer_256_5_sum" -top: "layer_256_6_sum" - + bottom: "res4e_branch2a" + top: "res4e_branch2b" + name: "res4e_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_bn1" -type: "BatchNorm" -bottom: "layer_256_6_sum" -top: "layer_512_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "bn4e_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_1_relu1" -type: "ReLU" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_bn1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv1" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "scale4e_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_1_bn2" -type: "BatchNorm" -bottom: "layer_512_1_conv1" -top: "layer_512_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "res4e_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2c" + name: "res4e_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_1_relu2" -type: "ReLU" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv2" -type: "Convolution" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "bn4e_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_512_1_bn3" -type: "BatchNorm" -bottom: "layer_512_1_conv2" -top: "layer_512_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "scale4e_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_512_1_relu3" -type: "ReLU" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv2_pcs_arm_sim" -} layer { -name: "layer_512_1_conv3" -type: "Convolution" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4d" + bottom: "res4e_branch2c" + top: "res4e" + name: "res4e" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4e" + top: "res4e" + name: "res4e_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "res4e" + top: "res4f_branch2a" + name: "res4f_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_conv_expand" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "bn4f_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "scale4f_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "res4f_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_1_sum" -type: "Eltwise" -bottom: "layer_512_1_conv3" -bottom: "layer_512_1_conv_expand" -top: "layer_512_1_sum" - + bottom: "res4f_branch2a" + top: "res4f_branch2b" + name: "res4f_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_bn1" -type: "BatchNorm" -bottom: "layer_512_1_sum" -top: "layer_512_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "bn4f_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_2_relu1" -type: "ReLU" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_bn1_pcs_arm_sim" -} layer { -name: "layer_512_2_conv1" -type: "Convolution" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "scale4f_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "res4f_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2c" + name: "res4f_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "bn4f_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "scale4f_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e" + bottom: "res4f_branch2c" + top: "res4f" + name: "res4f" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4f" + top: "res4f" + name: "res4f_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn2" -type: "BatchNorm" -bottom: "layer_512_2_conv1" -top: "layer_512_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f" + top: "res5a_branch1" + name: "res5a_branch1" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "bn5a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "scale5a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f" + top: "res5a_branch2a" + name: "res5a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "bn5a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "scale5a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "res5a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2b" + name: "res5a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_relu2" -type: "ReLU" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv1_pcs_arm_sim" + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "bn5a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "scale5a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "res5a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2c" + name: "res5a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "bn5a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_2_conv2" -type: "Convolution" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "scale5a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a_branch1" + bottom: "res5a_branch2c" + top: "res5a" + name: "res5a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5a" + top: "res5a" + name: "res5a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn3" -type: "BatchNorm" -bottom: "layer_512_2_conv2" -top: "layer_512_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5a" + top: "res5b_branch2a" + name: "res5b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_2_relu3" -type: "ReLU" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv2_pcs_arm_sim" -} layer { -name: "layer_512_2_conv3" -type: "Convolution" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "bn5b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "scale5b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "res5b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_sum" -type: "Eltwise" -bottom: "layer_512_2_conv3" -bottom: "layer_512_1_sum" -top: "layer_512_2_sum" - + bottom: "res5b_branch2a" + top: "res5b_branch2b" + name: "res5b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_3_bn1" -type: "BatchNorm" -bottom: "layer_512_2_sum" -top: "layer_512_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "bn5b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_3_relu1" -type: "ReLU" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_bn1_pcs_arm_sim" -} layer { -name: "layer_512_3_conv1" -type: "Convolution" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "scale5b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_3_bn2" -type: "BatchNorm" -bottom: "layer_512_3_conv1" -top: "layer_512_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "res5b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2c" + name: "res5b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu2" -type: "ReLU" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv1_pcs_arm_sim" +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "bn5b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_3_conv2" -type: "Convolution" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "scale5b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a" + bottom: "res5b_branch2c" + top: "res5b" + name: "res5b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5b" + top: "res5b" + name: "res5b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_bn3" -type: "BatchNorm" -bottom: "layer_512_3_conv2" -top: "layer_512_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b" + top: "res5c_branch2a" + name: "res5c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu3" -type: "ReLU" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv2_pcs_arm_sim" -} layer { -name: "layer_512_3_conv3" -type: "Convolution" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "bn5c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "scale5c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "res5c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_sum" -type: "Eltwise" -bottom: "layer_512_3_conv3" -bottom: "layer_512_2_sum" -top: "layer_512_3_sum" - + bottom: "res5c_branch2a" + top: "res5c_branch2b" + name: "res5c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "last_bn" -type: "BatchNorm" -bottom: "layer_512_3_sum" -top: "layer_512_3_sum_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "bn5c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "last_relu" -type: "ReLU" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "layer_512_3_sum_pcs_arm_sim" -} layer { -name: "global_pool" -type: "Pooling" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "global_pool" -pooling_param { - pool: AVE - global_pooling: true + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "scale5c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "score" -type: "InnerProduct" -bottom: "global_pool" -top: "score" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "res5c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2c" + name: "res5c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -inner_product_param { - num_output: 1000 + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "bn5c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "scale5c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "loss" -type: "SoftmaxWithLoss" -bottom: "score" -bottom: "label" -top: "loss" + bottom: "res5b" + bottom: "res5c_branch2c" + top: "res5c" + name: "res5c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5c" + top: "res5c" + name: "res5c_relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "res5c" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + kernel_size: 7 + stride: 1 + pool: AVE + } } + layer { -name: "accuracy" -type: "Accuracy" -bottom: "score" -bottom: "label" -top: "accuracy" -include { - phase: TEST + bottom: "pool5" + top: "fc1000" + name: "fc1000" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } } +layer { + bottom: "fc1000" + bottom: "label" + top: "prob" + name: "prob" + type: "SoftmaxWithLoss" + include { + phase: TRAIN + } +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } } diff --git a/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt b/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt index f0f4ffd60..00c35771f 100644 --- a/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt +++ b/models/intel_optimized_models/resnet_50/knm/train_val_dummydata.prototxt @@ -1,2294 +1,3051 @@ -#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. -# -#Top-5 and Top-1 results achieved with this topology: -#Top-5: 92% -#Top-1: 73.9% -#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +name: "ResNet-50" layer { name: "data" type: "DummyData" top: "data" - top: "label" include { phase: TRAIN } dummy_data_param { + shape: { dim: 64 dim: 3 dim: 224 dim: 224 } data_filler { - type: "constant" - value: 0.01 + type: "constant" + value: 0.01 } - shape: { dim: 64 dim: 3 dim: 224 dim: 224 } - shape: { dim: 64 dim: 1 dim: 1 dim: 1 } } } - layer { name: "data" type: "DummyData" - top: "data" top: "label" include { - phase: TEST + phase: TRAIN } dummy_data_param { + shape: { dim: 64 } data_filler { type: "constant" - value: 0.01 } - shape: { dim: 128 dim: 3 dim: 224 dim: 224 } - shape: { dim: 128 dim: 1 dim: 1 dim: 1 } } } - layer { -name: "conv1" -type: "Convolution" -bottom: "data" -top: "conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - pad: 3 - kernel_size: 7 - stride: 2 - weight_filler { - type: "msra" - variance_norm: FAN_OUT - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "data" + top: "conv1" + name: "conv1" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 7 + pad: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "conv1_bn" -type: "BatchNorm" -bottom: "conv1" -top: "conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "conv1" + top: "conv1" + name: "bn_conv1" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "conv1_relu" -type: "ReLU" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pcs_arm_sim" -} layer { -name: "conv1_pool" -type: "Pooling" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pool" -pooling_param { - kernel_size: 3 - stride: 2 + bottom: "conv1" + top: "conv1" + name: "scale_conv1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_conv1" -type: "Convolution" -bottom: "conv1_pool" -top: "layer_64_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "conv1" + top: "conv1" + name: "conv1_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "conv1" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + kernel_size: 3 + stride: 2 + pool: MAX + } } + layer { -name: "layer_64_1_bn2" -type: "BatchNorm" -bottom: "layer_64_1_conv1" -top: "layer_64_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch1" + name: "res2a_branch1" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu2" -type: "ReLU" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv1_pcs_arm_sim" + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "bn2a_branch1" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv2" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "scale2a_branch1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_bn3" -type: "BatchNorm" -bottom: "layer_64_1_conv2" -top: "layer_64_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch2a" + name: "res2a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu3" -type: "ReLU" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv2_pcs_arm_sim" + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "bn2a_branch2a" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv3" -type: "Convolution" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "scale2a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "res2a_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_1_conv_expand" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2a" + top: "res2a_branch2b" + name: "res2a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_1_sum" -type: "Eltwise" -bottom: "layer_64_1_conv3" -bottom: "layer_64_1_conv_expand" -top: "layer_64_1_sum" + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "bn2a_branch2b" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_2_bn1" -type: "BatchNorm" -bottom: "layer_64_1_sum" -top: "layer_64_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "scale2a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu1" -type: "ReLU" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_bn1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv1" -type: "Convolution" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "res2a_branch2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_2_bn2" -type: "BatchNorm" -bottom: "layer_64_2_conv1" -top: "layer_64_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2c" + name: "res2a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_2_relu2" -type: "ReLU" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv2" -type: "Convolution" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "bn2a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_2_bn3" -type: "BatchNorm" -bottom: "layer_64_2_conv2" -top: "layer_64_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "scale2a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu3" -type: "ReLU" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv2_pcs_arm_sim" -} layer { -name: "layer_64_2_conv3" -type: "Convolution" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch1" + bottom: "res2a_branch2c" + top: "res2a" + name: "res2a" + type: "Eltwise" + eltwise_param { + } } -} layer { -name: "layer_64_2_sum" -type: "Eltwise" -bottom: "layer_64_2_conv3" -bottom: "layer_64_1_sum" -top: "layer_64_2_sum" - + bottom: "res2a" + top: "res2a" + name: "res2a_relu" + type: "ReLU" + relu_param { + + } } + layer { -name: "layer_64_3_bn1" -type: "BatchNorm" -bottom: "layer_64_2_sum" -top: "layer_64_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a" + top: "res2b_branch2a" + name: "res2b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu1" -type: "ReLU" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_bn1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv1" -type: "Convolution" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "bn2b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "scale2b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "res2b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_3_bn2" -type: "BatchNorm" -bottom: "layer_64_3_conv1" -top: "layer_64_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2a" + top: "res2b_branch2b" + name: "res2b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu2" -type: "ReLU" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv2" -type: "Convolution" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "bn2b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_3_bn3" -type: "BatchNorm" -bottom: "layer_64_3_conv2" -top: "layer_64_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "scale2b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_3_relu3" -type: "ReLU" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv2_pcs_arm_sim" -} layer { -name: "layer_64_3_conv3" -type: "Convolution" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "res2b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2c" + name: "res2b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_3_sum" -type: "Eltwise" -bottom: "layer_64_3_conv3" -bottom: "layer_64_2_sum" -top: "layer_64_3_sum" - + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "bn2b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_128_1_bn1" -type: "BatchNorm" -bottom: "layer_64_3_sum" -top: "layer_128_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "scale2b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_1_relu1" -type: "ReLU" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_bn1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv1" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a" + bottom: "res2b_branch2c" + top: "res2b" + name: "res2b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2b" + top: "res2b" + name: "res2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn2" -type: "BatchNorm" -bottom: "layer_128_1_conv1" -top: "layer_128_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b" + top: "res2c_branch2a" + name: "res2c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu2" -type: "ReLU" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv2" -type: "Convolution" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "bn2c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "scale2c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "res2c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn3" -type: "BatchNorm" -bottom: "layer_128_1_conv2" -top: "layer_128_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2c_branch2a" + top: "res2c_branch2b" + name: "res2c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu3" -type: "ReLU" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv2_pcs_arm_sim" -} layer { -name: "layer_128_1_conv3" -type: "Convolution" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "bn2c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_1_conv_expand" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "scale2c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "res2c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2c" + name: "res2c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "bn2c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "scale2c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b" + bottom: "res2c_branch2c" + top: "res2c" + name: "res2c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2c" + top: "res2c" + name: "res2c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_sum" -type: "Eltwise" -bottom: "layer_128_1_conv3" -bottom: "layer_128_1_conv_expand" -top: "layer_128_1_sum" - + bottom: "res2c" + top: "res3a_branch1" + name: "res3a_branch1" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "bn3a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "scale3a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c" + top: "res3a_branch2a" + name: "res3a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "bn3a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "scale3a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "res3a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2b" + name: "res3a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_2_bn1" -type: "BatchNorm" -bottom: "layer_128_1_sum" -top: "layer_128_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "bn3a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "scale3a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "res3a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2c" + name: "res3a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu1" -type: "ReLU" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_bn1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv1" -type: "Convolution" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "bn3a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_2_bn2" -type: "BatchNorm" -bottom: "layer_128_2_conv1" -top: "layer_128_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "scale3a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_2_relu2" -type: "ReLU" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv2" -type: "Convolution" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a_branch1" + bottom: "res3a_branch2c" + top: "res3a" + name: "res3a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3a" + top: "res3a" + name: "res3a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_bn3" -type: "BatchNorm" -bottom: "layer_128_2_conv2" -top: "layer_128_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a" + top: "res3b_branch2a" + name: "res3b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu3" -type: "ReLU" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv2_pcs_arm_sim" -} layer { -name: "layer_128_2_conv3" -type: "Convolution" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "bn3b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "scale3b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "res3b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_sum" -type: "Eltwise" -bottom: "layer_128_2_conv3" -bottom: "layer_128_1_sum" -top: "layer_128_2_sum" - + bottom: "res3b_branch2a" + top: "res3b_branch2b" + name: "res3b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_3_bn1" -type: "BatchNorm" -bottom: "layer_128_2_sum" -top: "layer_128_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "bn3b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_3_relu1" -type: "ReLU" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_bn1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv1" -type: "Convolution" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "scale3b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_128_3_bn2" -type: "BatchNorm" -bottom: "layer_128_3_conv1" -top: "layer_128_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "res3b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2c" + name: "res3b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_3_relu2" -type: "ReLU" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv2" -type: "Convolution" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "bn3b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_3_bn3" -type: "BatchNorm" -bottom: "layer_128_3_conv2" -top: "layer_128_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "scale3b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_3_relu3" -type: "ReLU" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv2_pcs_arm_sim" -} layer { -name: "layer_128_3_conv3" -type: "Convolution" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a" + bottom: "res3b_branch2c" + top: "res3b" + name: "res3b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3b" + top: "res3b" + name: "res3b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_3_sum" -type: "Eltwise" -bottom: "layer_128_3_conv3" -bottom: "layer_128_2_sum" -top: "layer_128_3_sum" - + bottom: "res3b" + top: "res3c_branch2a" + name: "res3c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_4_bn1" -type: "BatchNorm" -bottom: "layer_128_3_sum" -top: "layer_128_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "bn3c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_4_relu1" -type: "ReLU" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_bn1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv1" -type: "Convolution" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "scale3c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "res3c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_4_bn2" -type: "BatchNorm" -bottom: "layer_128_4_conv1" -top: "layer_128_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2b" + name: "res3c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_4_relu2" -type: "ReLU" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv2" -type: "Convolution" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "bn3c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_4_bn3" -type: "BatchNorm" -bottom: "layer_128_4_conv2" -top: "layer_128_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "scale3c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_4_relu3" -type: "ReLU" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv2_pcs_arm_sim" -} layer { -name: "layer_128_4_conv3" -type: "Convolution" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "res3c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2c" + name: "res3c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_128_4_sum" -type: "Eltwise" -bottom: "layer_128_4_conv3" -bottom: "layer_128_3_sum" -top: "layer_128_4_sum" - + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "bn3c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_1_bn1" -type: "BatchNorm" -bottom: "layer_128_4_sum" -top: "layer_256_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "scale3c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_1_relu1" -type: "ReLU" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_bn1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv1" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3b" + bottom: "res3c_branch2c" + top: "res3c" + name: "res3c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3c" + top: "res3c" + name: "res3c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn2" -type: "BatchNorm" -bottom: "layer_256_1_conv1" -top: "layer_256_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c" + top: "res3d_branch2a" + name: "res3d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu2" -type: "ReLU" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv2" -type: "Convolution" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "bn3d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "scale3d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "res3d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn3" -type: "BatchNorm" -bottom: "layer_256_1_conv2" -top: "layer_256_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3d_branch2a" + top: "res3d_branch2b" + name: "res3d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu3" -type: "ReLU" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv2_pcs_arm_sim" -} layer { -name: "layer_256_1_conv3" -type: "Convolution" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "bn3d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_1_conv_expand" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "scale3d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "res3d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2c" + name: "res3d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "bn3d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "scale3d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c" + bottom: "res3d_branch2c" + top: "res3d" + name: "res3d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3d" + top: "res3d" + name: "res3d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_sum" -type: "Eltwise" -bottom: "layer_256_1_conv3" -bottom: "layer_256_1_conv_expand" -top: "layer_256_1_sum" - + bottom: "res3d" + top: "res4a_branch1" + name: "res4a_branch1" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "bn4a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "scale4a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d" + top: "res4a_branch2a" + name: "res4a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "bn4a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "scale4a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "res4a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2b" + name: "res4a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_2_bn1" -type: "BatchNorm" -bottom: "layer_256_1_sum" -top: "layer_256_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "bn4a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "scale4a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "res4a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2c" + name: "res4a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu1" -type: "ReLU" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_bn1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv1" -type: "Convolution" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "bn4a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_2_bn2" -type: "BatchNorm" -bottom: "layer_256_2_conv1" -top: "layer_256_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "scale4a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_2_relu2" -type: "ReLU" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv2" -type: "Convolution" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a_branch1" + bottom: "res4a_branch2c" + top: "res4a" + name: "res4a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4a" + top: "res4a" + name: "res4a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_bn3" -type: "BatchNorm" -bottom: "layer_256_2_conv2" -top: "layer_256_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a" + top: "res4b_branch2a" + name: "res4b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu3" -type: "ReLU" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv2_pcs_arm_sim" -} layer { -name: "layer_256_2_conv3" -type: "Convolution" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "bn4b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "scale4b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "res4b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_sum" -type: "Eltwise" -bottom: "layer_256_2_conv3" -bottom: "layer_256_1_sum" -top: "layer_256_2_sum" - + bottom: "res4b_branch2a" + top: "res4b_branch2b" + name: "res4b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_3_bn1" -type: "BatchNorm" -bottom: "layer_256_2_sum" -top: "layer_256_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "bn4b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_3_relu1" -type: "ReLU" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_bn1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv1" -type: "Convolution" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "scale4b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_256_3_bn2" -type: "BatchNorm" -bottom: "layer_256_3_conv1" -top: "layer_256_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "res4b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2c" + name: "res4b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_3_relu2" -type: "ReLU" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv2" -type: "Convolution" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "bn4b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_3_bn3" -type: "BatchNorm" -bottom: "layer_256_3_conv2" -top: "layer_256_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "scale4b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_3_relu3" -type: "ReLU" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv2_pcs_arm_sim" -} layer { -name: "layer_256_3_conv3" -type: "Convolution" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a" + bottom: "res4b_branch2c" + top: "res4b" + name: "res4b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4b" + top: "res4b" + name: "res4b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_3_sum" -type: "Eltwise" -bottom: "layer_256_3_conv3" -bottom: "layer_256_2_sum" -top: "layer_256_3_sum" - + bottom: "res4b" + top: "res4c_branch2a" + name: "res4c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_4_bn1" -type: "BatchNorm" -bottom: "layer_256_3_sum" -top: "layer_256_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "bn4c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_4_relu1" -type: "ReLU" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_bn1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv1" -type: "Convolution" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "scale4c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "res4c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_4_bn2" -type: "BatchNorm" -bottom: "layer_256_4_conv1" -top: "layer_256_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2b" + name: "res4c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_4_relu2" -type: "ReLU" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv2" -type: "Convolution" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "bn4c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_4_bn3" -type: "BatchNorm" -bottom: "layer_256_4_conv2" -top: "layer_256_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "scale4c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_4_relu3" -type: "ReLU" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv2_pcs_arm_sim" -} layer { -name: "layer_256_4_conv3" -type: "Convolution" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "res4c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2c" + name: "res4c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_256_4_sum" -type: "Eltwise" -bottom: "layer_256_4_conv3" -bottom: "layer_256_3_sum" -top: "layer_256_4_sum" - + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "bn4c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_5_bn1" -type: "BatchNorm" -bottom: "layer_256_4_sum" -top: "layer_256_5_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "scale4c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_5_relu1" -type: "ReLU" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_bn1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv1" -type: "Convolution" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4b" + bottom: "res4c_branch2c" + top: "res4c" + name: "res4c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4c" + top: "res4c" + name: "res4c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn2" -type: "BatchNorm" -bottom: "layer_256_5_conv1" -top: "layer_256_5_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c" + top: "res4d_branch2a" + name: "res4d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu2" -type: "ReLU" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv2" -type: "Convolution" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "bn4d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "scale4d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "res4d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn3" -type: "BatchNorm" -bottom: "layer_256_5_conv2" -top: "layer_256_5_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2a" + top: "res4d_branch2b" + name: "res4d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu3" -type: "ReLU" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv2_pcs_arm_sim" -} layer { -name: "layer_256_5_conv3" -type: "Convolution" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "bn4d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_5_sum" -type: "Eltwise" -bottom: "layer_256_5_conv3" -bottom: "layer_256_4_sum" -top: "layer_256_5_sum" - + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "scale4d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "layer_256_6_bn1" -type: "BatchNorm" -bottom: "layer_256_5_sum" -top: "layer_256_6_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "res4d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2c" + name: "res4d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu1" -type: "ReLU" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_bn1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv1" -type: "Convolution" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "bn4d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_6_bn2" -type: "BatchNorm" -bottom: "layer_256_6_conv1" -top: "layer_256_6_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "scale4d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_6_relu2" -type: "ReLU" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv2" -type: "Convolution" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c" + bottom: "res4d_branch2c" + top: "res4d" + name: "res4d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4d" + top: "res4d" + name: "res4d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_bn3" -type: "BatchNorm" -bottom: "layer_256_6_conv2" -top: "layer_256_6_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d" + top: "res4e_branch2a" + name: "res4e_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu3" -type: "ReLU" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv2_pcs_arm_sim" -} layer { -name: "layer_256_6_conv3" -type: "Convolution" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "bn4e_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "scale4e_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "res4e_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_sum" -type: "Eltwise" -bottom: "layer_256_6_conv3" -bottom: "layer_256_5_sum" -top: "layer_256_6_sum" - + bottom: "res4e_branch2a" + top: "res4e_branch2b" + name: "res4e_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_bn1" -type: "BatchNorm" -bottom: "layer_256_6_sum" -top: "layer_512_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "bn4e_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_1_relu1" -type: "ReLU" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_bn1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv1" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "scale4e_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_1_bn2" -type: "BatchNorm" -bottom: "layer_512_1_conv1" -top: "layer_512_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "res4e_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2c" + name: "res4e_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_1_relu2" -type: "ReLU" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv2" -type: "Convolution" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "bn4e_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_512_1_bn3" -type: "BatchNorm" -bottom: "layer_512_1_conv2" -top: "layer_512_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "scale4e_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_512_1_relu3" -type: "ReLU" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv2_pcs_arm_sim" -} layer { -name: "layer_512_1_conv3" -type: "Convolution" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4d" + bottom: "res4e_branch2c" + top: "res4e" + name: "res4e" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4e" + top: "res4e" + name: "res4e_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "res4e" + top: "res4f_branch2a" + name: "res4f_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_conv_expand" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "bn4f_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "scale4f_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "res4f_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_1_sum" -type: "Eltwise" -bottom: "layer_512_1_conv3" -bottom: "layer_512_1_conv_expand" -top: "layer_512_1_sum" - + bottom: "res4f_branch2a" + top: "res4f_branch2b" + name: "res4f_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_bn1" -type: "BatchNorm" -bottom: "layer_512_1_sum" -top: "layer_512_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "bn4f_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_2_relu1" -type: "ReLU" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_bn1_pcs_arm_sim" -} layer { -name: "layer_512_2_conv1" -type: "Convolution" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "scale4f_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "res4f_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2c" + name: "res4f_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "bn4f_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "scale4f_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e" + bottom: "res4f_branch2c" + top: "res4f" + name: "res4f" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4f" + top: "res4f" + name: "res4f_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn2" -type: "BatchNorm" -bottom: "layer_512_2_conv1" -top: "layer_512_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f" + top: "res5a_branch1" + name: "res5a_branch1" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "bn5a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "scale5a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f" + top: "res5a_branch2a" + name: "res5a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "bn5a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "scale5a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "res5a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2b" + name: "res5a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_relu2" -type: "ReLU" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv1_pcs_arm_sim" + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "bn5a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "scale5a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "res5a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2c" + name: "res5a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "bn5a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_2_conv2" -type: "Convolution" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "scale5a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a_branch1" + bottom: "res5a_branch2c" + top: "res5a" + name: "res5a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5a" + top: "res5a" + name: "res5a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn3" -type: "BatchNorm" -bottom: "layer_512_2_conv2" -top: "layer_512_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5a" + top: "res5b_branch2a" + name: "res5b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_2_relu3" -type: "ReLU" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv2_pcs_arm_sim" -} layer { -name: "layer_512_2_conv3" -type: "Convolution" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "bn5b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "scale5b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "res5b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_sum" -type: "Eltwise" -bottom: "layer_512_2_conv3" -bottom: "layer_512_1_sum" -top: "layer_512_2_sum" - + bottom: "res5b_branch2a" + top: "res5b_branch2b" + name: "res5b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_3_bn1" -type: "BatchNorm" -bottom: "layer_512_2_sum" -top: "layer_512_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "bn5b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_3_relu1" -type: "ReLU" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_bn1_pcs_arm_sim" -} layer { -name: "layer_512_3_conv1" -type: "Convolution" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "scale5b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_3_bn2" -type: "BatchNorm" -bottom: "layer_512_3_conv1" -top: "layer_512_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "res5b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2c" + name: "res5b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu2" -type: "ReLU" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv1_pcs_arm_sim" +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "bn5b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_3_conv2" -type: "Convolution" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "scale5b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a" + bottom: "res5b_branch2c" + top: "res5b" + name: "res5b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5b" + top: "res5b" + name: "res5b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_bn3" -type: "BatchNorm" -bottom: "layer_512_3_conv2" -top: "layer_512_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b" + top: "res5c_branch2a" + name: "res5c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu3" -type: "ReLU" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv2_pcs_arm_sim" -} layer { -name: "layer_512_3_conv3" -type: "Convolution" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "bn5c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "scale5c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "res5c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_sum" -type: "Eltwise" -bottom: "layer_512_3_conv3" -bottom: "layer_512_2_sum" -top: "layer_512_3_sum" - + bottom: "res5c_branch2a" + top: "res5c_branch2b" + name: "res5c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "last_bn" -type: "BatchNorm" -bottom: "layer_512_3_sum" -top: "layer_512_3_sum_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "bn5c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "last_relu" -type: "ReLU" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "layer_512_3_sum_pcs_arm_sim" -} layer { -name: "global_pool" -type: "Pooling" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "global_pool" -pooling_param { - pool: AVE - global_pooling: true + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "scale5c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "score" -type: "InnerProduct" -bottom: "global_pool" -top: "score" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "res5c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2c" + name: "res5c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -inner_product_param { - num_output: 1000 + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "bn5c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "scale5c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "loss" -type: "SoftmaxWithLoss" -bottom: "score" -bottom: "label" -top: "loss" + bottom: "res5b" + bottom: "res5c_branch2c" + top: "res5c" + name: "res5c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5c" + top: "res5c" + name: "res5c_relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "res5c" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + kernel_size: 7 + stride: 1 + pool: AVE + } } + layer { -name: "accuracy" -type: "Accuracy" -bottom: "score" -bottom: "label" -top: "accuracy" -include { - phase: TEST + bottom: "pool5" + top: "fc1000" + name: "fc1000" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } } +layer { + bottom: "fc1000" + bottom: "label" + top: "prob" + name: "prob" + type: "SoftmaxWithLoss" + include { + phase: TRAIN + } +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } } diff --git a/models/intel_optimized_models/resnet_50/skx/train_val_dummydata.prototxt b/models/intel_optimized_models/resnet_50/skx/train_val_dummydata.prototxt index f0f4ffd60..00c35771f 100644 --- a/models/intel_optimized_models/resnet_50/skx/train_val_dummydata.prototxt +++ b/models/intel_optimized_models/resnet_50/skx/train_val_dummydata.prototxt @@ -1,2294 +1,3051 @@ -#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. -# -#Top-5 and Top-1 results achieved with this topology: -#Top-5: 92% -#Top-1: 73.9% -#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. +name: "ResNet-50" layer { name: "data" type: "DummyData" top: "data" - top: "label" include { phase: TRAIN } dummy_data_param { + shape: { dim: 64 dim: 3 dim: 224 dim: 224 } data_filler { - type: "constant" - value: 0.01 + type: "constant" + value: 0.01 } - shape: { dim: 64 dim: 3 dim: 224 dim: 224 } - shape: { dim: 64 dim: 1 dim: 1 dim: 1 } } } - layer { name: "data" type: "DummyData" - top: "data" top: "label" include { - phase: TEST + phase: TRAIN } dummy_data_param { + shape: { dim: 64 } data_filler { type: "constant" - value: 0.01 } - shape: { dim: 128 dim: 3 dim: 224 dim: 224 } - shape: { dim: 128 dim: 1 dim: 1 dim: 1 } } } - layer { -name: "conv1" -type: "Convolution" -bottom: "data" -top: "conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - pad: 3 - kernel_size: 7 - stride: 2 - weight_filler { - type: "msra" - variance_norm: FAN_OUT - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "data" + top: "conv1" + name: "conv1" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 7 + pad: 3 + stride: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "conv1_bn" -type: "BatchNorm" -bottom: "conv1" -top: "conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "conv1" + top: "conv1" + name: "bn_conv1" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "conv1_relu" -type: "ReLU" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pcs_arm_sim" -} layer { -name: "conv1_pool" -type: "Pooling" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pool" -pooling_param { - kernel_size: 3 - stride: 2 + bottom: "conv1" + top: "conv1" + name: "scale_conv1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_conv1" -type: "Convolution" -bottom: "conv1_pool" -top: "layer_64_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "conv1" + top: "conv1" + name: "conv1_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "conv1" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + kernel_size: 3 + stride: 2 + pool: MAX + } } + layer { -name: "layer_64_1_bn2" -type: "BatchNorm" -bottom: "layer_64_1_conv1" -top: "layer_64_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch1" + name: "res2a_branch1" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu2" -type: "ReLU" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv1_pcs_arm_sim" + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "bn2a_branch1" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv2" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "scale2a_branch1" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_64_1_bn3" -type: "BatchNorm" -bottom: "layer_64_1_conv2" -top: "layer_64_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "pool1" + top: "res2a_branch2a" + name: "res2a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_64_1_relu3" -type: "ReLU" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv2_pcs_arm_sim" + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "bn2a_branch2a" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_1_conv3" -type: "Convolution" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "scale2a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "res2a_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_1_conv_expand" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2a" + top: "res2a_branch2b" + name: "res2a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_1_sum" -type: "Eltwise" -bottom: "layer_64_1_conv3" -bottom: "layer_64_1_conv_expand" -top: "layer_64_1_sum" + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "bn2a_branch2b" + type: "BatchNorm" + batch_norm_param { + + } } + layer { -name: "layer_64_2_bn1" -type: "BatchNorm" -bottom: "layer_64_1_sum" -top: "layer_64_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "scale2a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu1" -type: "ReLU" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_bn1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv1" -type: "Convolution" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "res2a_branch2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_2_bn2" -type: "BatchNorm" -bottom: "layer_64_2_conv1" -top: "layer_64_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2b" + top: "res2a_branch2c" + name: "res2a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_2_relu2" -type: "ReLU" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv1_pcs_arm_sim" -} layer { -name: "layer_64_2_conv2" -type: "Convolution" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "bn2a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_2_bn3" -type: "BatchNorm" -bottom: "layer_64_2_conv2" -top: "layer_64_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "scale2a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_2_relu3" -type: "ReLU" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv2_pcs_arm_sim" -} layer { -name: "layer_64_2_conv3" -type: "Convolution" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a_branch1" + bottom: "res2a_branch2c" + top: "res2a" + name: "res2a" + type: "Eltwise" + eltwise_param { + } } -} layer { -name: "layer_64_2_sum" -type: "Eltwise" -bottom: "layer_64_2_conv3" -bottom: "layer_64_1_sum" -top: "layer_64_2_sum" - + bottom: "res2a" + top: "res2a" + name: "res2a_relu" + type: "ReLU" + relu_param { + + } } + layer { -name: "layer_64_3_bn1" -type: "BatchNorm" -bottom: "layer_64_2_sum" -top: "layer_64_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2a" + top: "res2b_branch2a" + name: "res2b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu1" -type: "ReLU" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_bn1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv1" -type: "Convolution" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "bn2b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "scale2b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "res2b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_64_3_bn2" -type: "BatchNorm" -bottom: "layer_64_3_conv1" -top: "layer_64_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2a" + top: "res2b_branch2b" + name: "res2b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_64_3_relu2" -type: "ReLU" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv1_pcs_arm_sim" -} layer { -name: "layer_64_3_conv2" -type: "Convolution" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "bn2b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_64_3_bn3" -type: "BatchNorm" -bottom: "layer_64_3_conv2" -top: "layer_64_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "scale2b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_64_3_relu3" -type: "ReLU" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv2_pcs_arm_sim" -} layer { -name: "layer_64_3_conv3" -type: "Convolution" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "res2b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2c" + name: "res2b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_64_3_sum" -type: "Eltwise" -bottom: "layer_64_3_conv3" -bottom: "layer_64_2_sum" -top: "layer_64_3_sum" - + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "bn2b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_128_1_bn1" -type: "BatchNorm" -bottom: "layer_64_3_sum" -top: "layer_128_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "scale2b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_1_relu1" -type: "ReLU" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_bn1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv1" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res2a" + bottom: "res2b_branch2c" + top: "res2b" + name: "res2b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2b" + top: "res2b" + name: "res2b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn2" -type: "BatchNorm" -bottom: "layer_128_1_conv1" -top: "layer_128_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2b" + top: "res2c_branch2a" + name: "res2c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu2" -type: "ReLU" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv1_pcs_arm_sim" -} layer { -name: "layer_128_1_conv2" -type: "Convolution" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "bn2c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "scale2c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "res2c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_bn3" -type: "BatchNorm" -bottom: "layer_128_1_conv2" -top: "layer_128_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res2c_branch2a" + top: "res2c_branch2b" + name: "res2c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_1_relu3" -type: "ReLU" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv2_pcs_arm_sim" -} layer { -name: "layer_128_1_conv3" -type: "Convolution" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "bn2c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_1_conv_expand" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "scale2c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "res2c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2c" + name: "res2c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "bn2c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "scale2c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b" + bottom: "res2c_branch2c" + top: "res2c" + name: "res2c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2c" + top: "res2c" + name: "res2c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_1_sum" -type: "Eltwise" -bottom: "layer_128_1_conv3" -bottom: "layer_128_1_conv_expand" -top: "layer_128_1_sum" - + bottom: "res2c" + top: "res3a_branch1" + name: "res3a_branch1" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "bn3a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "scale3a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c" + top: "res3a_branch2a" + name: "res3a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "bn3a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "scale3a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "res3a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2b" + name: "res3a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_2_bn1" -type: "BatchNorm" -bottom: "layer_128_1_sum" -top: "layer_128_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "bn3a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "scale3a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "res3a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2c" + name: "res3a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu1" -type: "ReLU" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_bn1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv1" -type: "Convolution" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "bn3a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_2_bn2" -type: "BatchNorm" -bottom: "layer_128_2_conv1" -top: "layer_128_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "scale3a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_2_relu2" -type: "ReLU" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv1_pcs_arm_sim" -} layer { -name: "layer_128_2_conv2" -type: "Convolution" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a_branch1" + bottom: "res3a_branch2c" + top: "res3a" + name: "res3a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3a" + top: "res3a" + name: "res3a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_bn3" -type: "BatchNorm" -bottom: "layer_128_2_conv2" -top: "layer_128_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3a" + top: "res3b_branch2a" + name: "res3b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_2_relu3" -type: "ReLU" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv2_pcs_arm_sim" -} layer { -name: "layer_128_2_conv3" -type: "Convolution" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "bn3b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "scale3b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "res3b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_2_sum" -type: "Eltwise" -bottom: "layer_128_2_conv3" -bottom: "layer_128_1_sum" -top: "layer_128_2_sum" - + bottom: "res3b_branch2a" + top: "res3b_branch2b" + name: "res3b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_3_bn1" -type: "BatchNorm" -bottom: "layer_128_2_sum" -top: "layer_128_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "bn3b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_3_relu1" -type: "ReLU" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_bn1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv1" -type: "Convolution" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "scale3b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_128_3_bn2" -type: "BatchNorm" -bottom: "layer_128_3_conv1" -top: "layer_128_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "res3b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2c" + name: "res3b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_3_relu2" -type: "ReLU" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv1_pcs_arm_sim" -} layer { -name: "layer_128_3_conv2" -type: "Convolution" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "bn3b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_3_bn3" -type: "BatchNorm" -bottom: "layer_128_3_conv2" -top: "layer_128_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "scale3b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_3_relu3" -type: "ReLU" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv2_pcs_arm_sim" -} layer { -name: "layer_128_3_conv3" -type: "Convolution" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3a" + bottom: "res3b_branch2c" + top: "res3b" + name: "res3b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3b" + top: "res3b" + name: "res3b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_3_sum" -type: "Eltwise" -bottom: "layer_128_3_conv3" -bottom: "layer_128_2_sum" -top: "layer_128_3_sum" - + bottom: "res3b" + top: "res3c_branch2a" + name: "res3c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_128_4_bn1" -type: "BatchNorm" -bottom: "layer_128_3_sum" -top: "layer_128_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "bn3c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_128_4_relu1" -type: "ReLU" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_bn1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv1" -type: "Convolution" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "scale3c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "res3c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_128_4_bn2" -type: "BatchNorm" -bottom: "layer_128_4_conv1" -top: "layer_128_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2a" + top: "res3c_branch2b" + name: "res3c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_128_4_relu2" -type: "ReLU" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv1_pcs_arm_sim" -} layer { -name: "layer_128_4_conv2" -type: "Convolution" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "bn3c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_128_4_bn3" -type: "BatchNorm" -bottom: "layer_128_4_conv2" -top: "layer_128_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "scale3c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_128_4_relu3" -type: "ReLU" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv2_pcs_arm_sim" -} layer { -name: "layer_128_4_conv3" -type: "Convolution" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "res3c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2c" + name: "res3c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_128_4_sum" -type: "Eltwise" -bottom: "layer_128_4_conv3" -bottom: "layer_128_3_sum" -top: "layer_128_4_sum" - + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "bn3c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_1_bn1" -type: "BatchNorm" -bottom: "layer_128_4_sum" -top: "layer_256_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "scale3c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_1_relu1" -type: "ReLU" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_bn1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv1" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res3b" + bottom: "res3c_branch2c" + top: "res3c" + name: "res3c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3c" + top: "res3c" + name: "res3c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn2" -type: "BatchNorm" -bottom: "layer_256_1_conv1" -top: "layer_256_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3c" + top: "res3d_branch2a" + name: "res3d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu2" -type: "ReLU" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv1_pcs_arm_sim" -} layer { -name: "layer_256_1_conv2" -type: "Convolution" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "bn3d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "scale3d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "res3d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_bn3" -type: "BatchNorm" -bottom: "layer_256_1_conv2" -top: "layer_256_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res3d_branch2a" + top: "res3d_branch2b" + name: "res3d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_1_relu3" -type: "ReLU" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv2_pcs_arm_sim" -} layer { -name: "layer_256_1_conv3" -type: "Convolution" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "bn3d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_1_conv_expand" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "scale3d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "res3d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2c" + name: "res3d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "bn3d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "scale3d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c" + bottom: "res3d_branch2c" + top: "res3d" + name: "res3d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3d" + top: "res3d" + name: "res3d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_1_sum" -type: "Eltwise" -bottom: "layer_256_1_conv3" -bottom: "layer_256_1_conv_expand" -top: "layer_256_1_sum" - + bottom: "res3d" + top: "res4a_branch1" + name: "res4a_branch1" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "bn4a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "scale4a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d" + top: "res4a_branch2a" + name: "res4a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "bn4a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "scale4a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "res4a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2b" + name: "res4a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_2_bn1" -type: "BatchNorm" -bottom: "layer_256_1_sum" -top: "layer_256_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "bn4a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "scale4a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "res4a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2c" + name: "res4a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu1" -type: "ReLU" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_bn1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv1" -type: "Convolution" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "bn4a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_2_bn2" -type: "BatchNorm" -bottom: "layer_256_2_conv1" -top: "layer_256_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "scale4a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_2_relu2" -type: "ReLU" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv1_pcs_arm_sim" -} layer { -name: "layer_256_2_conv2" -type: "Convolution" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a_branch1" + bottom: "res4a_branch2c" + top: "res4a" + name: "res4a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4a" + top: "res4a" + name: "res4a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_bn3" -type: "BatchNorm" -bottom: "layer_256_2_conv2" -top: "layer_256_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4a" + top: "res4b_branch2a" + name: "res4b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_2_relu3" -type: "ReLU" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv2_pcs_arm_sim" -} layer { -name: "layer_256_2_conv3" -type: "Convolution" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "bn4b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "scale4b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "res4b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_2_sum" -type: "Eltwise" -bottom: "layer_256_2_conv3" -bottom: "layer_256_1_sum" -top: "layer_256_2_sum" - + bottom: "res4b_branch2a" + top: "res4b_branch2b" + name: "res4b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_3_bn1" -type: "BatchNorm" -bottom: "layer_256_2_sum" -top: "layer_256_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "bn4b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_3_relu1" -type: "ReLU" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_bn1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv1" -type: "Convolution" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "scale4b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_256_3_bn2" -type: "BatchNorm" -bottom: "layer_256_3_conv1" -top: "layer_256_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "res4b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2c" + name: "res4b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_3_relu2" -type: "ReLU" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv1_pcs_arm_sim" -} layer { -name: "layer_256_3_conv2" -type: "Convolution" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "bn4b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_3_bn3" -type: "BatchNorm" -bottom: "layer_256_3_conv2" -top: "layer_256_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "scale4b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_3_relu3" -type: "ReLU" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv2_pcs_arm_sim" -} layer { -name: "layer_256_3_conv3" -type: "Convolution" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4a" + bottom: "res4b_branch2c" + top: "res4b" + name: "res4b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4b" + top: "res4b" + name: "res4b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_3_sum" -type: "Eltwise" -bottom: "layer_256_3_conv3" -bottom: "layer_256_2_sum" -top: "layer_256_3_sum" - + bottom: "res4b" + top: "res4c_branch2a" + name: "res4c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_256_4_bn1" -type: "BatchNorm" -bottom: "layer_256_3_sum" -top: "layer_256_4_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "bn4c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_256_4_relu1" -type: "ReLU" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_bn1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv1" -type: "Convolution" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "scale4c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "res4c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_4_bn2" -type: "BatchNorm" -bottom: "layer_256_4_conv1" -top: "layer_256_4_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2a" + top: "res4c_branch2b" + name: "res4c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_4_relu2" -type: "ReLU" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv1_pcs_arm_sim" -} layer { -name: "layer_256_4_conv2" -type: "Convolution" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "bn4c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_4_bn3" -type: "BatchNorm" -bottom: "layer_256_4_conv2" -top: "layer_256_4_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "scale4c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_4_relu3" -type: "ReLU" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv2_pcs_arm_sim" -} layer { -name: "layer_256_4_conv3" -type: "Convolution" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "res4c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2c" + name: "res4c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -} layer { -name: "layer_256_4_sum" -type: "Eltwise" -bottom: "layer_256_4_conv3" -bottom: "layer_256_3_sum" -top: "layer_256_4_sum" - + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "bn4c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_256_5_bn1" -type: "BatchNorm" -bottom: "layer_256_4_sum" -top: "layer_256_5_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "scale4c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_5_relu1" -type: "ReLU" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_bn1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv1" -type: "Convolution" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4b" + bottom: "res4c_branch2c" + top: "res4c" + name: "res4c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4c" + top: "res4c" + name: "res4c_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn2" -type: "BatchNorm" -bottom: "layer_256_5_conv1" -top: "layer_256_5_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4c" + top: "res4d_branch2a" + name: "res4d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu2" -type: "ReLU" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv1_pcs_arm_sim" -} layer { -name: "layer_256_5_conv2" -type: "Convolution" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "bn4d_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "scale4d_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "res4d_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_5_bn3" -type: "BatchNorm" -bottom: "layer_256_5_conv2" -top: "layer_256_5_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2a" + top: "res4d_branch2b" + name: "res4d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_5_relu3" -type: "ReLU" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv2_pcs_arm_sim" -} layer { -name: "layer_256_5_conv3" -type: "Convolution" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "bn4d_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_5_sum" -type: "Eltwise" -bottom: "layer_256_5_conv3" -bottom: "layer_256_4_sum" -top: "layer_256_5_sum" - + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "scale4d_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "layer_256_6_bn1" -type: "BatchNorm" -bottom: "layer_256_5_sum" -top: "layer_256_6_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "res4d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2c" + name: "res4d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu1" -type: "ReLU" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_bn1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv1" -type: "Convolution" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "bn4d_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_256_6_bn2" -type: "BatchNorm" -bottom: "layer_256_6_conv1" -top: "layer_256_6_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "scale4d_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_256_6_relu2" -type: "ReLU" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv1_pcs_arm_sim" -} layer { -name: "layer_256_6_conv2" -type: "Convolution" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4c" + bottom: "res4d_branch2c" + top: "res4d" + name: "res4d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4d" + top: "res4d" + name: "res4d_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_bn3" -type: "BatchNorm" -bottom: "layer_256_6_conv2" -top: "layer_256_6_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4d" + top: "res4e_branch2a" + name: "res4e_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_256_6_relu3" -type: "ReLU" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv2_pcs_arm_sim" -} layer { -name: "layer_256_6_conv3" -type: "Convolution" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "bn4e_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "scale4e_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "res4e_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_256_6_sum" -type: "Eltwise" -bottom: "layer_256_6_conv3" -bottom: "layer_256_5_sum" -top: "layer_256_6_sum" - + bottom: "res4e_branch2a" + top: "res4e_branch2b" + name: "res4e_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_bn1" -type: "BatchNorm" -bottom: "layer_256_6_sum" -top: "layer_512_1_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "bn4e_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_1_relu1" -type: "ReLU" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_bn1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv1" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "scale4e_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_1_bn2" -type: "BatchNorm" -bottom: "layer_512_1_conv1" -top: "layer_512_1_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "res4e_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2c" + name: "res4e_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_1_relu2" -type: "ReLU" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv1_pcs_arm_sim" -} layer { -name: "layer_512_1_conv2" -type: "Convolution" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "bn4e_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } -} layer { -name: "layer_512_1_bn3" -type: "BatchNorm" -bottom: "layer_512_1_conv2" -top: "layer_512_1_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "scale4e_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -layer { -name: "layer_512_1_relu3" -type: "ReLU" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv2_pcs_arm_sim" -} layer { -name: "layer_512_1_conv3" -type: "Convolution" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + bottom: "res4d" + bottom: "res4e_branch2c" + top: "res4e" + name: "res4e" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4e" + top: "res4e" + name: "res4e_relu" + type: "ReLU" + relu_param { + } } +layer { + bottom: "res4e" + top: "res4f_branch2a" + name: "res4f_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_1_conv_expand" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "bn4f_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "scale4f_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "res4f_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_1_sum" -type: "Eltwise" -bottom: "layer_512_1_conv3" -bottom: "layer_512_1_conv_expand" -top: "layer_512_1_sum" - + bottom: "res4f_branch2a" + top: "res4f_branch2b" + name: "res4f_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_bn1" -type: "BatchNorm" -bottom: "layer_512_1_sum" -top: "layer_512_2_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "bn4f_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_2_relu1" -type: "ReLU" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_bn1_pcs_arm_sim" -} layer { -name: "layer_512_2_conv1" -type: "Convolution" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "scale4f_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "res4f_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2c" + name: "res4f_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "bn4f_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "scale4f_branch2c" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e" + bottom: "res4f_branch2c" + top: "res4f" + name: "res4f" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4f" + top: "res4f" + name: "res4f_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn2" -type: "BatchNorm" -bottom: "layer_512_2_conv1" -top: "layer_512_2_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res4f" + top: "res5a_branch1" + name: "res5a_branch1" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "bn5a_branch1" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "scale5a_branch1" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f" + top: "res5a_branch2a" + name: "res5a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "bn5a_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "scale5a_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "res5a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2b" + name: "res5a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_2_relu2" -type: "ReLU" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv1_pcs_arm_sim" + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "bn5a_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "scale5a_branch2b" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "res5a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2c" + name: "res5a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } +} +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "bn5a_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_2_conv2" -type: "Convolution" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "scale5a_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a_branch1" + bottom: "res5a_branch2c" + top: "res5a" + name: "res5a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5a" + top: "res5a" + name: "res5a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_bn3" -type: "BatchNorm" -bottom: "layer_512_2_conv2" -top: "layer_512_2_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5a" + top: "res5b_branch2a" + name: "res5b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_2_relu3" -type: "ReLU" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv2_pcs_arm_sim" -} layer { -name: "layer_512_2_conv3" -type: "Convolution" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "bn5b_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "scale5b_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "res5b_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_2_sum" -type: "Eltwise" -bottom: "layer_512_2_conv3" -bottom: "layer_512_1_sum" -top: "layer_512_2_sum" - + bottom: "res5b_branch2a" + top: "res5b_branch2b" + name: "res5b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "layer_512_3_bn1" -type: "BatchNorm" -bottom: "layer_512_2_sum" -top: "layer_512_3_bn1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "bn5b_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "layer_512_3_relu1" -type: "ReLU" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_bn1_pcs_arm_sim" -} layer { -name: "layer_512_3_conv1" -type: "Convolution" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "scale5b_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "layer_512_3_bn2" -type: "BatchNorm" -bottom: "layer_512_3_conv1" -top: "layer_512_3_conv1_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "res5b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2c" + name: "res5b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu2" -type: "ReLU" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv1_pcs_arm_sim" +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "bn5b_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } + layer { -name: "layer_512_3_conv2" -type: "Convolution" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "scale5b_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5a" + bottom: "res5b_branch2c" + top: "res5b" + name: "res5b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5b" + top: "res5b" + name: "res5b_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_bn3" -type: "BatchNorm" -bottom: "layer_512_3_conv2" -top: "layer_512_3_conv2_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5b" + top: "res5c_branch2a" + name: "res5c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -layer { -name: "layer_512_3_relu3" -type: "ReLU" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv2_pcs_arm_sim" -} layer { -name: "layer_512_3_conv3" -type: "Convolution" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "bn5c_branch2a" + type: "BatchNorm" + batch_norm_param { + + + } } -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "scale5c_branch2a" + type: "Scale" + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "res5c_branch2a_relu" + type: "ReLU" + relu_param { + } } -} layer { -name: "layer_512_3_sum" -type: "Eltwise" -bottom: "layer_512_3_conv3" -bottom: "layer_512_2_sum" -top: "layer_512_3_sum" - + bottom: "res5c_branch2a" + top: "res5c_branch2b" + name: "res5c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } + layer { -name: "last_bn" -type: "BatchNorm" -bottom: "layer_512_3_sum" -top: "layer_512_3_sum_pcs_arm_sim" - batch_norm_param { - } + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "bn5c_branch2b" + type: "BatchNorm" + batch_norm_param { + + + } } -layer { -name: "last_relu" -type: "ReLU" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "layer_512_3_sum_pcs_arm_sim" -} layer { -name: "global_pool" -type: "Pooling" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "global_pool" -pooling_param { - pool: AVE - global_pooling: true + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "scale5c_branch2b" + type: "Scale" + scale_param { + bias_term: true + } } -} layer { -name: "score" -type: "InnerProduct" -bottom: "global_pool" -top: "score" -param { - lr_mult: 1.0 - decay_mult: 1.0 + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "res5c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2c" + name: "res5c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.2 + } + } } -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -inner_product_param { - num_output: 1000 + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "bn5c_branch2c" + type: "BatchNorm" + batch_norm_param { + + + } } +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "scale5c_branch2c" + type: "Scale" + scale_param { + bias_term: true + } } + layer { -name: "loss" -type: "SoftmaxWithLoss" -bottom: "score" -bottom: "label" -top: "loss" + bottom: "res5b" + bottom: "res5c_branch2c" + top: "res5c" + name: "res5c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5c" + top: "res5c" + name: "res5c_relu" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "res5c" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + kernel_size: 7 + stride: 1 + pool: AVE + } } + layer { -name: "accuracy" -type: "Accuracy" -bottom: "score" -bottom: "label" -top: "accuracy" -include { - phase: TEST + bottom: "pool5" + top: "fc1000" + name: "fc1000" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } } +layer { + bottom: "fc1000" + bottom: "label" + top: "prob" + name: "prob" + type: "SoftmaxWithLoss" + include { + phase: TRAIN + } +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-1" + include { + phase: TEST + } +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } } diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index 03a85d0a3..a348866c1 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -80,11 +80,11 @@ function calculate_numnodes function detect_cpu { model_string=`lscpu | grep "Model name" | awk -F ':' '{print $2}'` - if [[ $model_string == *"72"* ]]; then - cpu_model="knl" - elif [[ $model_string == *"0000"* ]]; then + if [[ $model_string == *"7235"* ]] || [[ $model_string == *"7285"* ]] || [[ $model_string == *"7295"* ]]; then cpu_model="knm" - elif [[ $model_string == *"8180"* ]]; then + elif [[ $model_string == *"72"* ]]; then + cpu_model="knl" + elif [[ $model_string == *"8180"* ]] || [[ $model_string == *"8124"* ]]; then cpu_model="skx" elif [[ $model_string == *"6148"* ]]; then cpu_model="skx" diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 80ae550d2..e77414871 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -86,11 +86,11 @@ function detect_cpu { # detect cpu model model_string=`lscpu | grep "Model name" | awk -F ':' '{print $2}'` - if [[ $model_string == *"72"* ]]; then - cpu_model="knl" - elif [[ $model_string == *"0000"* ]]; then + if [[ $model_string == *"7235"* ]] || [[ $model_string == *"7285"* ]] || [[ $model_string == *"7295"* ]]; then cpu_model="knm" - elif [[ $model_string == *"8180"* ]]; then + elif [[ $model_string == *"72"* ]]; then + cpu_model="knl" + elif [[ $model_string == *"8180"* ]] || [[ $model_string == *"8124"* ]]; then cpu_model="skx" elif [[ $model_string == *"6148"* ]]; then cpu_model="skx" From 515100be0c76391051a72ccac01eb514373bcc9f Mon Sep 17 00:00:00 2001 From: "Zhang, Guoming" Date: Tue, 14 Nov 2017 19:47:42 +0800 Subject: [PATCH 19/54] Remove useless Resnet-50 topology definition. --- .../resnet_50/solver.prototxt | 17 - .../resnet_50/train_val.prototxt | 2329 ----------------- 2 files changed, 2346 deletions(-) delete mode 100644 models/intel_optimized_models/resnet_50/solver.prototxt delete mode 100644 models/intel_optimized_models/resnet_50/train_val.prototxt diff --git a/models/intel_optimized_models/resnet_50/solver.prototxt b/models/intel_optimized_models/resnet_50/solver.prototxt deleted file mode 100644 index 4574a306f..000000000 --- a/models/intel_optimized_models/resnet_50/solver.prototxt +++ /dev/null @@ -1,17 +0,0 @@ -#This solver is described by Computer Vision Group Jena (CVGJ) in [ImageNet pre-trained models with batch normalization] (https://arxiv.org/pdf/1612.01452.pdf) -net: "models/intel_optimized_models/resnet_50/train_val.prototxt" -test_iter: 5000 -test_interval: 15000 -base_lr: 0.1 -display: 20 -iter_size: 2 -max_iter: 320000 -lr_policy: "poly" -power: 1 -momentum: 0.9 -weight_decay: 0.0001 -snapshot: 30000 -snapshot_prefix: "models/intel_optimized_models/resnet_50/caffe-resnet50" -test_initialization: false -solver_mode: CPU - diff --git a/models/intel_optimized_models/resnet_50/train_val.prototxt b/models/intel_optimized_models/resnet_50/train_val.prototxt deleted file mode 100644 index 6aadf5ca5..000000000 --- a/models/intel_optimized_models/resnet_50/train_val.prototxt +++ /dev/null @@ -1,2329 +0,0 @@ -#This is Intel(R) optimized (in terms of time to train) version of topology described in the [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) publication. -# -#Top-5 and Top-1 results achieved with this topology: -#Top-5: 92% -#Top-1: 73.9% -#Training was performed using server equipped with Intel(R) Xeon Phi(TM) CPU 7250 processor. - -layer { -name: "data" -type: "Data" -top: "data" -top: "label" -include { - phase: TRAIN -} -transform_param { - scale: 0.0078125 - mirror: true - crop_size: 224 - mean_value: 104 - mean_value: 117 - mean_value: 123 -} - data_param { - source: "examples/imagenet/ilsvrc12_train_lmdb" - batch_size: 128 - backend: LMDB - shuffle: true - } - -} -layer { -name: "data" -type: "Data" -top: "data" -top: "label" -include { - phase: TEST -} -transform_param { - scale: 0.0078125 - mirror: false - crop_size: 224 - mean_value: 104 - mean_value: 117 - mean_value: 123 -} - data_param { - source: "examples/imagenet/ilsvrc12_val_lmdb/" - batch_size: 10 - backend: LMDB - } - -} - -layer { -name: "conv1" -type: "Convolution" -bottom: "data" -top: "conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - pad: 3 - kernel_size: 7 - stride: 2 - weight_filler { - type: "msra" - variance_norm: FAN_OUT - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "conv1_bn" -type: "BatchNorm" -bottom: "conv1" -top: "conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "conv1_relu" -type: "ReLU" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pcs_arm_sim" - -} -layer { -name: "conv1_pool" -type: "Pooling" -bottom: "conv1_pcs_arm_sim" -top: "conv1_pool" -pooling_param { - kernel_size: 3 - stride: 2 -} - -} -layer { -name: "layer_64_1_conv1" -type: "Convolution" -bottom: "conv1_pool" -top: "layer_64_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_1_bn2" -type: "BatchNorm" -bottom: "layer_64_1_conv1" -top: "layer_64_1_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_1_relu2" -type: "ReLU" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv1_pcs_arm_sim" - -} -layer { -name: "layer_64_1_conv2" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_1_bn3" -type: "BatchNorm" -bottom: "layer_64_1_conv2" -top: "layer_64_1_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_1_relu3" -type: "ReLU" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv2_pcs_arm_sim" - -} -layer { -name: "layer_64_1_conv3" -type: "Convolution" -bottom: "layer_64_1_conv2_pcs_arm_sim" -top: "layer_64_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_1_conv_expand" -type: "Convolution" -bottom: "layer_64_1_conv1_pcs_arm_sim" -top: "layer_64_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_1_sum" -type: "Eltwise" -bottom: "layer_64_1_conv3" -bottom: "layer_64_1_conv_expand" -top: "layer_64_1_sum" - -} -layer { -name: "layer_64_2_bn1" -type: "BatchNorm" -bottom: "layer_64_1_sum" -top: "layer_64_2_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_2_relu1" -type: "ReLU" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_bn1_pcs_arm_sim" - -} -layer { -name: "layer_64_2_conv1" -type: "Convolution" -bottom: "layer_64_2_bn1_pcs_arm_sim" -top: "layer_64_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_2_bn2" -type: "BatchNorm" -bottom: "layer_64_2_conv1" -top: "layer_64_2_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_2_relu2" -type: "ReLU" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv1_pcs_arm_sim" - -} -layer { -name: "layer_64_2_conv2" -type: "Convolution" -bottom: "layer_64_2_conv1_pcs_arm_sim" -top: "layer_64_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_2_bn3" -type: "BatchNorm" -bottom: "layer_64_2_conv2" -top: "layer_64_2_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_2_relu3" -type: "ReLU" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv2_pcs_arm_sim" - -} -layer { -name: "layer_64_2_conv3" -type: "Convolution" -bottom: "layer_64_2_conv2_pcs_arm_sim" -top: "layer_64_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_2_sum" -type: "Eltwise" -bottom: "layer_64_2_conv3" -bottom: "layer_64_1_sum" -top: "layer_64_2_sum" - -} -layer { -name: "layer_64_3_bn1" -type: "BatchNorm" -bottom: "layer_64_2_sum" -top: "layer_64_3_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_3_relu1" -type: "ReLU" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_bn1_pcs_arm_sim" - -} -layer { -name: "layer_64_3_conv1" -type: "Convolution" -bottom: "layer_64_3_bn1_pcs_arm_sim" -top: "layer_64_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_3_bn2" -type: "BatchNorm" -bottom: "layer_64_3_conv1" -top: "layer_64_3_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_3_relu2" -type: "ReLU" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv1_pcs_arm_sim" - -} -layer { -name: "layer_64_3_conv2" -type: "Convolution" -bottom: "layer_64_3_conv1_pcs_arm_sim" -top: "layer_64_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 64 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_3_bn3" -type: "BatchNorm" -bottom: "layer_64_3_conv2" -top: "layer_64_3_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_64_3_relu3" -type: "ReLU" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv2_pcs_arm_sim" - -} -layer { -name: "layer_64_3_conv3" -type: "Convolution" -bottom: "layer_64_3_conv2_pcs_arm_sim" -top: "layer_64_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_64_3_sum" -type: "Eltwise" -bottom: "layer_64_3_conv3" -bottom: "layer_64_2_sum" -top: "layer_64_3_sum" - -} -layer { -name: "layer_128_1_bn1" -type: "BatchNorm" -bottom: "layer_64_3_sum" -top: "layer_128_1_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_1_relu1" -type: "ReLU" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_bn1_pcs_arm_sim" - -} -layer { -name: "layer_128_1_conv1" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_1_bn2" -type: "BatchNorm" -bottom: "layer_128_1_conv1" -top: "layer_128_1_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_1_relu2" -type: "ReLU" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv1_pcs_arm_sim" - -} -layer { -name: "layer_128_1_conv2" -type: "Convolution" -bottom: "layer_128_1_conv1_pcs_arm_sim" -top: "layer_128_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_1_bn3" -type: "BatchNorm" -bottom: "layer_128_1_conv2" -top: "layer_128_1_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_1_relu3" -type: "ReLU" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv2_pcs_arm_sim" - -} -layer { -name: "layer_128_1_conv3" -type: "Convolution" -bottom: "layer_128_1_conv2_pcs_arm_sim" -top: "layer_128_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_1_conv_expand" -type: "Convolution" -bottom: "layer_128_1_bn1_pcs_arm_sim" -top: "layer_128_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_1_sum" -type: "Eltwise" -bottom: "layer_128_1_conv3" -bottom: "layer_128_1_conv_expand" -top: "layer_128_1_sum" - -} -layer { -name: "layer_128_2_bn1" -type: "BatchNorm" -bottom: "layer_128_1_sum" -top: "layer_128_2_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_2_relu1" -type: "ReLU" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_bn1_pcs_arm_sim" - -} -layer { -name: "layer_128_2_conv1" -type: "Convolution" -bottom: "layer_128_2_bn1_pcs_arm_sim" -top: "layer_128_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_2_bn2" -type: "BatchNorm" -bottom: "layer_128_2_conv1" -top: "layer_128_2_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_2_relu2" -type: "ReLU" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv1_pcs_arm_sim" - -} -layer { -name: "layer_128_2_conv2" -type: "Convolution" -bottom: "layer_128_2_conv1_pcs_arm_sim" -top: "layer_128_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_2_bn3" -type: "BatchNorm" -bottom: "layer_128_2_conv2" -top: "layer_128_2_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_2_relu3" -type: "ReLU" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv2_pcs_arm_sim" - -} -layer { -name: "layer_128_2_conv3" -type: "Convolution" -bottom: "layer_128_2_conv2_pcs_arm_sim" -top: "layer_128_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_2_sum" -type: "Eltwise" -bottom: "layer_128_2_conv3" -bottom: "layer_128_1_sum" -top: "layer_128_2_sum" - -} -layer { -name: "layer_128_3_bn1" -type: "BatchNorm" -bottom: "layer_128_2_sum" -top: "layer_128_3_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_3_relu1" -type: "ReLU" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_bn1_pcs_arm_sim" - -} -layer { -name: "layer_128_3_conv1" -type: "Convolution" -bottom: "layer_128_3_bn1_pcs_arm_sim" -top: "layer_128_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_3_bn2" -type: "BatchNorm" -bottom: "layer_128_3_conv1" -top: "layer_128_3_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_3_relu2" -type: "ReLU" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv1_pcs_arm_sim" - -} -layer { -name: "layer_128_3_conv2" -type: "Convolution" -bottom: "layer_128_3_conv1_pcs_arm_sim" -top: "layer_128_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_3_bn3" -type: "BatchNorm" -bottom: "layer_128_3_conv2" -top: "layer_128_3_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_3_relu3" -type: "ReLU" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv2_pcs_arm_sim" - -} -layer { -name: "layer_128_3_conv3" -type: "Convolution" -bottom: "layer_128_3_conv2_pcs_arm_sim" -top: "layer_128_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_3_sum" -type: "Eltwise" -bottom: "layer_128_3_conv3" -bottom: "layer_128_2_sum" -top: "layer_128_3_sum" - -} -layer { -name: "layer_128_4_bn1" -type: "BatchNorm" -bottom: "layer_128_3_sum" -top: "layer_128_4_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_4_relu1" -type: "ReLU" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_bn1_pcs_arm_sim" - -} -layer { -name: "layer_128_4_conv1" -type: "Convolution" -bottom: "layer_128_4_bn1_pcs_arm_sim" -top: "layer_128_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_4_bn2" -type: "BatchNorm" -bottom: "layer_128_4_conv1" -top: "layer_128_4_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_4_relu2" -type: "ReLU" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv1_pcs_arm_sim" - -} -layer { -name: "layer_128_4_conv2" -type: "Convolution" -bottom: "layer_128_4_conv1_pcs_arm_sim" -top: "layer_128_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 128 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_4_bn3" -type: "BatchNorm" -bottom: "layer_128_4_conv2" -top: "layer_128_4_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_128_4_relu3" -type: "ReLU" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv2_pcs_arm_sim" - -} -layer { -name: "layer_128_4_conv3" -type: "Convolution" -bottom: "layer_128_4_conv2_pcs_arm_sim" -top: "layer_128_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_128_4_sum" -type: "Eltwise" -bottom: "layer_128_4_conv3" -bottom: "layer_128_3_sum" -top: "layer_128_4_sum" - -} -layer { -name: "layer_256_1_bn1" -type: "BatchNorm" -bottom: "layer_128_4_sum" -top: "layer_256_1_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_1_relu1" -type: "ReLU" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_1_conv1" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_1_bn2" -type: "BatchNorm" -bottom: "layer_256_1_conv1" -top: "layer_256_1_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_1_relu2" -type: "ReLU" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_1_conv2" -type: "Convolution" -bottom: "layer_256_1_conv1_pcs_arm_sim" -top: "layer_256_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_1_bn3" -type: "BatchNorm" -bottom: "layer_256_1_conv2" -top: "layer_256_1_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_1_relu3" -type: "ReLU" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_1_conv3" -type: "Convolution" -bottom: "layer_256_1_conv2_pcs_arm_sim" -top: "layer_256_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_1_conv_expand" -type: "Convolution" -bottom: "layer_256_1_bn1_pcs_arm_sim" -top: "layer_256_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_1_sum" -type: "Eltwise" -bottom: "layer_256_1_conv3" -bottom: "layer_256_1_conv_expand" -top: "layer_256_1_sum" - -} -layer { -name: "layer_256_2_bn1" -type: "BatchNorm" -bottom: "layer_256_1_sum" -top: "layer_256_2_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_2_relu1" -type: "ReLU" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_2_conv1" -type: "Convolution" -bottom: "layer_256_2_bn1_pcs_arm_sim" -top: "layer_256_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_2_bn2" -type: "BatchNorm" -bottom: "layer_256_2_conv1" -top: "layer_256_2_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_2_relu2" -type: "ReLU" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_2_conv2" -type: "Convolution" -bottom: "layer_256_2_conv1_pcs_arm_sim" -top: "layer_256_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_2_bn3" -type: "BatchNorm" -bottom: "layer_256_2_conv2" -top: "layer_256_2_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_2_relu3" -type: "ReLU" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_2_conv3" -type: "Convolution" -bottom: "layer_256_2_conv2_pcs_arm_sim" -top: "layer_256_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_2_sum" -type: "Eltwise" -bottom: "layer_256_2_conv3" -bottom: "layer_256_1_sum" -top: "layer_256_2_sum" - -} -layer { -name: "layer_256_3_bn1" -type: "BatchNorm" -bottom: "layer_256_2_sum" -top: "layer_256_3_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_3_relu1" -type: "ReLU" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_3_conv1" -type: "Convolution" -bottom: "layer_256_3_bn1_pcs_arm_sim" -top: "layer_256_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_3_bn2" -type: "BatchNorm" -bottom: "layer_256_3_conv1" -top: "layer_256_3_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_3_relu2" -type: "ReLU" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_3_conv2" -type: "Convolution" -bottom: "layer_256_3_conv1_pcs_arm_sim" -top: "layer_256_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_3_bn3" -type: "BatchNorm" -bottom: "layer_256_3_conv2" -top: "layer_256_3_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_3_relu3" -type: "ReLU" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_3_conv3" -type: "Convolution" -bottom: "layer_256_3_conv2_pcs_arm_sim" -top: "layer_256_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_3_sum" -type: "Eltwise" -bottom: "layer_256_3_conv3" -bottom: "layer_256_2_sum" -top: "layer_256_3_sum" - -} -layer { -name: "layer_256_4_bn1" -type: "BatchNorm" -bottom: "layer_256_3_sum" -top: "layer_256_4_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_4_relu1" -type: "ReLU" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_4_conv1" -type: "Convolution" -bottom: "layer_256_4_bn1_pcs_arm_sim" -top: "layer_256_4_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_4_bn2" -type: "BatchNorm" -bottom: "layer_256_4_conv1" -top: "layer_256_4_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_4_relu2" -type: "ReLU" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_4_conv2" -type: "Convolution" -bottom: "layer_256_4_conv1_pcs_arm_sim" -top: "layer_256_4_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_4_bn3" -type: "BatchNorm" -bottom: "layer_256_4_conv2" -top: "layer_256_4_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_4_relu3" -type: "ReLU" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_4_conv3" -type: "Convolution" -bottom: "layer_256_4_conv2_pcs_arm_sim" -top: "layer_256_4_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_4_sum" -type: "Eltwise" -bottom: "layer_256_4_conv3" -bottom: "layer_256_3_sum" -top: "layer_256_4_sum" - -} -layer { -name: "layer_256_5_bn1" -type: "BatchNorm" -bottom: "layer_256_4_sum" -top: "layer_256_5_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_5_relu1" -type: "ReLU" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_5_conv1" -type: "Convolution" -bottom: "layer_256_5_bn1_pcs_arm_sim" -top: "layer_256_5_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_5_bn2" -type: "BatchNorm" -bottom: "layer_256_5_conv1" -top: "layer_256_5_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_5_relu2" -type: "ReLU" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_5_conv2" -type: "Convolution" -bottom: "layer_256_5_conv1_pcs_arm_sim" -top: "layer_256_5_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_5_bn3" -type: "BatchNorm" -bottom: "layer_256_5_conv2" -top: "layer_256_5_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_5_relu3" -type: "ReLU" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_5_conv3" -type: "Convolution" -bottom: "layer_256_5_conv2_pcs_arm_sim" -top: "layer_256_5_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_5_sum" -type: "Eltwise" -bottom: "layer_256_5_conv3" -bottom: "layer_256_4_sum" -top: "layer_256_5_sum" - -} -layer { -name: "layer_256_6_bn1" -type: "BatchNorm" -bottom: "layer_256_5_sum" -top: "layer_256_6_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_6_relu1" -type: "ReLU" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_bn1_pcs_arm_sim" - -} -layer { -name: "layer_256_6_conv1" -type: "Convolution" -bottom: "layer_256_6_bn1_pcs_arm_sim" -top: "layer_256_6_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_6_bn2" -type: "BatchNorm" -bottom: "layer_256_6_conv1" -top: "layer_256_6_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_6_relu2" -type: "ReLU" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv1_pcs_arm_sim" - -} -layer { -name: "layer_256_6_conv2" -type: "Convolution" -bottom: "layer_256_6_conv1_pcs_arm_sim" -top: "layer_256_6_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 256 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_6_bn3" -type: "BatchNorm" -bottom: "layer_256_6_conv2" -top: "layer_256_6_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_256_6_relu3" -type: "ReLU" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv2_pcs_arm_sim" - -} -layer { -name: "layer_256_6_conv3" -type: "Convolution" -bottom: "layer_256_6_conv2_pcs_arm_sim" -top: "layer_256_6_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 1024 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_256_6_sum" -type: "Eltwise" -bottom: "layer_256_6_conv3" -bottom: "layer_256_5_sum" -top: "layer_256_6_sum" - -} -layer { -name: "layer_512_1_bn1" -type: "BatchNorm" -bottom: "layer_256_6_sum" -top: "layer_512_1_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_1_relu1" -type: "ReLU" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_bn1_pcs_arm_sim" - -} -layer { -name: "layer_512_1_conv1" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_1_bn2" -type: "BatchNorm" -bottom: "layer_512_1_conv1" -top: "layer_512_1_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_1_relu2" -type: "ReLU" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv1_pcs_arm_sim" - -} -layer { -name: "layer_512_1_conv2" -type: "Convolution" -bottom: "layer_512_1_conv1_pcs_arm_sim" -top: "layer_512_1_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_1_bn3" -type: "BatchNorm" -bottom: "layer_512_1_conv2" -top: "layer_512_1_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_1_relu3" -type: "ReLU" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv2_pcs_arm_sim" - -} -layer { -name: "layer_512_1_conv3" -type: "Convolution" -bottom: "layer_512_1_conv2_pcs_arm_sim" -top: "layer_512_1_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_1_conv_expand" -type: "Convolution" -bottom: "layer_512_1_bn1_pcs_arm_sim" -top: "layer_512_1_conv_expand" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 2 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_1_sum" -type: "Eltwise" -bottom: "layer_512_1_conv3" -bottom: "layer_512_1_conv_expand" -top: "layer_512_1_sum" - -} -layer { -name: "layer_512_2_bn1" -type: "BatchNorm" -bottom: "layer_512_1_sum" -top: "layer_512_2_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_2_relu1" -type: "ReLU" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_bn1_pcs_arm_sim" - -} -layer { -name: "layer_512_2_conv1" -type: "Convolution" -bottom: "layer_512_2_bn1_pcs_arm_sim" -top: "layer_512_2_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_2_bn2" -type: "BatchNorm" -bottom: "layer_512_2_conv1" -top: "layer_512_2_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_2_relu2" -type: "ReLU" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv1_pcs_arm_sim" - -} -layer { -name: "layer_512_2_conv2" -type: "Convolution" -bottom: "layer_512_2_conv1_pcs_arm_sim" -top: "layer_512_2_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_2_bn3" -type: "BatchNorm" -bottom: "layer_512_2_conv2" -top: "layer_512_2_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_2_relu3" -type: "ReLU" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv2_pcs_arm_sim" - -} -layer { -name: "layer_512_2_conv3" -type: "Convolution" -bottom: "layer_512_2_conv2_pcs_arm_sim" -top: "layer_512_2_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_2_sum" -type: "Eltwise" -bottom: "layer_512_2_conv3" -bottom: "layer_512_1_sum" -top: "layer_512_2_sum" - -} -layer { -name: "layer_512_3_bn1" -type: "BatchNorm" -bottom: "layer_512_2_sum" -top: "layer_512_3_bn1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_3_relu1" -type: "ReLU" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_bn1_pcs_arm_sim" - -} -layer { -name: "layer_512_3_conv1" -type: "Convolution" -bottom: "layer_512_3_bn1_pcs_arm_sim" -top: "layer_512_3_conv1" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_3_bn2" -type: "BatchNorm" -bottom: "layer_512_3_conv1" -top: "layer_512_3_conv1_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_3_relu2" -type: "ReLU" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv1_pcs_arm_sim" - -} -layer { -name: "layer_512_3_conv2" -type: "Convolution" -bottom: "layer_512_3_conv1_pcs_arm_sim" -top: "layer_512_3_conv2" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 512 - bias_term: false - pad: 1 - kernel_size: 3 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_3_bn3" -type: "BatchNorm" -bottom: "layer_512_3_conv2" -top: "layer_512_3_conv2_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "layer_512_3_relu3" -type: "ReLU" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv2_pcs_arm_sim" - -} -layer { -name: "layer_512_3_conv3" -type: "Convolution" -bottom: "layer_512_3_conv2_pcs_arm_sim" -top: "layer_512_3_conv3" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -convolution_param { - num_output: 2048 - bias_term: false - pad: 0 - kernel_size: 1 - stride: 1 - weight_filler { - type: "msra" - } - bias_filler { - type: "constant" - value: 0.0 - } -} - -} -layer { -name: "layer_512_3_sum" -type: "Eltwise" -bottom: "layer_512_3_conv3" -bottom: "layer_512_2_sum" -top: "layer_512_3_sum" - -} -layer { -name: "last_bn" -type: "BatchNorm" -bottom: "layer_512_3_sum" -top: "layer_512_3_sum_pcs_arm_sim" - batch_norm_param { - } -} -layer { -name: "last_relu" -type: "ReLU" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "layer_512_3_sum_pcs_arm_sim" - -} -layer { -name: "global_pool" -type: "Pooling" -bottom: "layer_512_3_sum_pcs_arm_sim" -top: "global_pool" -pooling_param { - pool: AVE - global_pooling: true -} - -} -layer { -name: "score" -type: "InnerProduct" -bottom: "global_pool" -top: "score" -param { - lr_mult: 1.0 - decay_mult: 1.0 -} -param { - lr_mult: 2.0 - decay_mult: 1.0 -} -inner_product_param { - num_output: 1000 -} - -} -layer { -name: "loss" -type: "SoftmaxWithLoss" -bottom: "score" -bottom: "label" -top: "loss" - -} -#layer { -#name: "accuracy" -#type: "Accuracy" -#bottom: "score" -#bottom: "label" -#top: "accuracy" -#include { -# phase: TEST -#} -layer { - name: "loss3/top-1" - type: "Accuracy" - bottom: "score" - bottom: "label" - top: "loss3/top-1" - include { - phase: TEST - } -} -layer { - name: "loss3/top-5" - type: "Accuracy" - bottom: "score" - bottom: "label" - top: "loss3/top-5" - include { - phase: TEST - } - accuracy_param { - top_k: 5 - } -} - -#} From 89ca50e6e12b62b9bd22cf502d1a0da2738981c3 Mon Sep 17 00:00:00 2001 From: "Jin, Ge" Date: Tue, 14 Nov 2017 11:32:40 -0500 Subject: [PATCH 20/54] Fix Bug in CompilationRule2 We should disable compilation rule2 when using leaky relu We add compile option to disable bn folding feature. Support both make and cmake. --- Makefile | 5 +++++ Makefile.config.example | 2 ++ cmake/Misc.cmake | 4 ++++ src/caffe/net.cpp | 21 ++++++++++++--------- src/caffe/test/test_net.cpp | 4 +++- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 6c2973b5f..020edc2da 100644 --- a/Makefile +++ b/Makefile @@ -479,6 +479,11 @@ ifeq ($(WITH_PYTHON_LAYER), 1) LIBRARIES += $(PYTHON_LIBRARIES) endif +# Remove batch norm feature support +ifeq ($(DISABLE_BN_FOLDING), 1) + COMMON_FLAGS += -DDISABLE_BN_FOLDING +endif + # Performance monitoring ifeq ($(PERFORMANCE_MONITORING), 1) CXXFLAGS += -DPERFORMANCE_MONITORING diff --git a/Makefile.config.example b/Makefile.config.example index d368722be..0bbf8e8da 100644 --- a/Makefile.config.example +++ b/Makefile.config.example @@ -76,6 +76,8 @@ USE_MKLDNN_AS_DEFAULT_ENGINE := 1 # already. # BOOST_ROOT := +# Use remove batch norm optimization to boost inferrence +DISABLE_BN_FOLDING := 0 # Intel(r) Machine Learning Scaling Library (uncomment to build # with MLSL for multi-node training) # USE_MLSL :=1 diff --git a/cmake/Misc.cmake b/cmake/Misc.cmake index 090f92da5..0657ee1e9 100644 --- a/cmake/Misc.cmake +++ b/cmake/Misc.cmake @@ -6,6 +6,10 @@ if(DEFINED CMAKE_BUILD_TYPE) set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES}) endif() +if(DISABLE_BN_FOLDING) + message(STATUS "Bn folding is disabled!") + add_definitions("-DDISABLE_BN_FOLDING") +endif() # --[ If user doesn't specify build type then assume release if("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE Release) diff --git a/src/caffe/net.cpp b/src/caffe/net.cpp index 4bf06a6e2..5087006c5 100644 --- a/src/caffe/net.cpp +++ b/src/caffe/net.cpp @@ -509,10 +509,13 @@ void Net::CompileNet(const NetParameter& param, NetParameter* param_compiled) { NetParameter param_temp0; +#ifndef DISABLE_BN_FOLDING param_temp0.CopyFrom(param); param_temp0.clear_layer(); RemoveBNScale(param, ¶m_temp0); - +#else + param_temp0 = param; +#endif NetParameter param_temp; // temporary compiled param param_temp.CopyFrom(param_temp0); param_temp.clear_layer(); // Remove layers @@ -521,7 +524,6 @@ void Net::CompileNet(const NetParameter& param, NetParameter param_temp2; // temporary compiled param param_temp2.CopyFrom(param_temp); param_temp2.clear_layer(); // Remove layers - CompilationRuleTwo(param_temp, ¶m_temp2); param_compiled->CopyFrom(param_temp2); @@ -623,6 +625,7 @@ template void Net::CompilationRuleTwo(const NetParameter& param, NetParameter* param_compiled) { std::set layers_to_drop; + bool use_negative_slope = false; for (int i = 0; i < param.layer_size(); ++i) { LayerParameter* layer_param = (const_cast(param)).mutable_layer(i); @@ -687,14 +690,14 @@ void Net::CompilationRuleTwo(const NetParameter& param, scale_top_blob_name.size(), scale_top_blob_name); } - // set relu flag in convolution - layer_param->mutable_convolution_param()->set_relu(true); float negative_slope1 = consumer_layer_param.relu_param().negative_slope(); - layer_param->mutable_convolution_param()-> - set_negative_slope(negative_slope1); - - if(param.state().phase() == TRAIN) { + if (negative_slope1 != 0) { + use_negative_slope = true; + } else { + layer_param->mutable_convolution_param()->set_relu(true); + } + if(param.state().phase() == TRAIN && !use_negative_slope) { if(i+1 < param.layer_size()) { LayerParameter* relu_layer_param = (const_cast(param)).mutable_layer(i+1); @@ -704,7 +707,7 @@ void Net::CompilationRuleTwo(const NetParameter& param, } } - if(param.state().phase() == TEST) { + if(param.state().phase() == TEST && !use_negative_slope) { if (layers_to_drop.find(layer_param->name()) != layers_to_drop.end()) { LOG_IF(INFO, Caffe::root_solver()) << "Dropped layer: " << layer_param->name() << std::endl; diff --git a/src/caffe/test/test_net.cpp b/src/caffe/test/test_net.cpp index ed82c72ba..c62ed6850 100644 --- a/src/caffe/test/test_net.cpp +++ b/src/caffe/test/test_net.cpp @@ -2997,7 +2997,7 @@ class CompileNetTest : public ::testing::Test { double_net_string); } }; - +#ifndef DISABLE_BN_FOLDING TEST_F(CompileNetTest, TestRemoveBatchNorm1) { const string& input_proto = "name: 'TestNetwork' " @@ -3222,6 +3222,8 @@ TEST_F(CompileNetTest, TestRemoveBatchNorm4) { "} "; this->RunCompilerNetTest(input_proto, output_proto); } +#endif + #ifdef MKL2017_SUPPORTED // If BatchNorm of engine MKL2017 // produce blob consumed by From 51e6dc02a6901815fd933a89374c217c9a2e047c Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Fri, 17 Nov 2017 00:02:46 +0800 Subject: [PATCH 21/54] update dockerfile to remove some warnings seen during docker image generation. --- docker/standalone/cpu-ubuntu/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/standalone/cpu-ubuntu/Dockerfile b/docker/standalone/cpu-ubuntu/Dockerfile index e703e73cf..ae5fcb284 100644 --- a/docker/standalone/cpu-ubuntu/Dockerfile +++ b/docker/standalone/cpu-ubuntu/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ python-dev \ python-numpy \ python-pip \ + python-setuptools \ python-scipy && \ rm -rf /var/lib/apt/lists/* @@ -32,6 +33,8 @@ WORKDIR $CAFFE_ROOT # FIXME: clone a specific git tag and use ARG instead of ENV once DockerHub supports this. ENV CLONE_TAG=master +RUN pip install --upgrade pip + RUN git clone -b ${CLONE_TAG} --depth 1 https://github.com/intel/caffe.git . && \ for req in $(cat python/requirements.txt) pydot; do pip install $req; done && \ mkdir build && cd build && \ From 44b1e989e90cd6024ec62b4e3afbe51aeda5d331 Mon Sep 17 00:00:00 2001 From: linxinan Date: Fri, 17 Nov 2017 08:56:04 +0800 Subject: [PATCH 22/54] update solver of vgg16 1k batch --- .../multinode/vgg_16_16nodes_1k_batch/solver.prototxt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt index deab9510e..95f1f8438 100755 --- a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver.prototxt @@ -8,8 +8,8 @@ momentum: 0.9 weight_decay: 0.0005 base_lr: 0.06 lr_policy: "poly" -power: 2 -max_iter: 80000 # 60 epoch +power: 0.5 +max_iter: 40000 # 60 epoch display: 40 snapshot: 10000 solver_mode: CPU From 88dafe4ac9af7e10829521a6d2339f2b3ac3a310 Mon Sep 17 00:00:00 2001 From: "Tian, Feng" Date: Wed, 15 Nov 2017 22:42:41 +0800 Subject: [PATCH 23/54] Merge PR of supporting Flow LRCN to intel caffe Change-Id: Ib2343978c2508524b13147db47454c162f097b65 --- examples/LRCN_activity_recognition/README.txt | 28 + .../sequence_input_layer.py | 8 +- .../ucf101_split1_testVideos.txt | 3783 ------- .../ucf101_split1_trainVideos.txt | 9537 ----------------- include/caffe/data_transformer.hpp | 2 + include/caffe/util/io.hpp | 3 + python/caffe/io.py | 15 +- src/caffe/data_transformer.cpp | 94 + src/caffe/layers/image_data_layer.cpp | 19 +- src/caffe/proto/caffe.proto | 7 + src/caffe/util/io.cpp | 29 + 11 files changed, 196 insertions(+), 13329 deletions(-) delete mode 100644 examples/LRCN_activity_recognition/ucf101_split1_testVideos.txt delete mode 100644 examples/LRCN_activity_recognition/ucf101_split1_trainVideos.txt diff --git a/examples/LRCN_activity_recognition/README.txt b/examples/LRCN_activity_recognition/README.txt index 631d900f7..1b0a82daf 100644 --- a/examples/LRCN_activity_recognition/README.txt +++ b/examples/LRCN_activity_recognition/README.txt @@ -5,3 +5,31 @@ Chicago Please see http://www.eecs.berkeley.edu/~lisa_anne/LRCN_video for detailed instructions on how to reimplement experiments and download pre-trained models. +# Support Flow LRCN From Quadra_L +- [Quadra_L](http://www.swcontest.net/index.php?a=show&m=news&aid=177) +## Preparing +- install protocol buffer 3.4.0, referring this link http://blog.csdn.net/twilightdream/article/details/72953338 +- sudo -H pip install --upgrade protobuf==3.1.0.post1 +- sudo apt-get install libhdf5-dev +- sudo apt-get install python-h5py +## Building +- remember WITH_PYTHON_LAYER := 1 ! +- make all +- make pycaffe + +## Training +- download data and models from http://www.eecs.berkeley.edu/~lisa_anne/LRCN_video, +- create flow frame using python instead of matlab like below + https://github.com/pathak22/pyflow + git clone https://github.com/pathak22/pyflow.git + cd pyflow/ + python setup.py build_ext -i + python demo.py # -viz option to visualize output +- change my path like '/home/link/frames' in sequence_input_layer.py to your path and modify other relative path. +- bash run_lstm_flow.sh, start training! + + + + + + diff --git a/examples/LRCN_activity_recognition/sequence_input_layer.py b/examples/LRCN_activity_recognition/sequence_input_layer.py index bea60a059..55e450466 100755 --- a/examples/LRCN_activity_recognition/sequence_input_layer.py +++ b/examples/LRCN_activity_recognition/sequence_input_layer.py @@ -23,8 +23,8 @@ import skimage.io import copy -flow_frames = 'flow_images/' -RGB_frames = 'frames/' +flow_frames = '/home/link/flow_images/' +RGB_frames = '/home/link/frames/' test_frames = 16 train_frames = 16 test_buffer = 3 @@ -174,11 +174,11 @@ def setup(self, bottom, top): if self.flow: image_mean = [128, 128, 128] # TODO: No flow support in transformer currently -# self.transformer.set_is_flow('data_in', True) + self.transformer.set_is_flow('data_in', True) else: image_mean = [103.939, 116.779, 128.68] # TODO: No flow support in transformer currently -# self.transformer.set_is_flow('data_in', False) + self.transformer.set_is_flow('data_in', False) channel_mean = np.zeros((3,227,227)) for channel_index, mean_val in enumerate(image_mean): channel_mean[channel_index, ...] = mean_val diff --git a/examples/LRCN_activity_recognition/ucf101_split1_testVideos.txt b/examples/LRCN_activity_recognition/ucf101_split1_testVideos.txt deleted file mode 100644 index 29bc86188..000000000 --- a/examples/LRCN_activity_recognition/ucf101_split1_testVideos.txt +++ /dev/null @@ -1,3783 +0,0 @@ -JugglingBalls/v_JugglingBalls_g01_c02 45 -MilitaryParade/v_MilitaryParade_g05_c03 52 -Skiing/v_Skiing_g05_c03 80 -Diving/v_Diving_g06_c03 25 -BrushingTeeth/v_BrushingTeeth_g05_c05 19 -PlayingDhol/v_PlayingDhol_g04_c06 60 -CuttingInKitchen/v_CuttingInKitchen_g06_c01 24 -JumpRope/v_JumpRope_g06_c04 47 -Lunges/v_Lunges_g03_c02 51 -ThrowDiscus/v_ThrowDiscus_g03_c02 92 -Lunges/v_Lunges_g04_c01 51 -HandstandPushups/v_HandStandPushups_g02_c01 36 -JugglingBalls/v_JugglingBalls_g03_c07 45 -WallPushups/v_WallPushups_g06_c07 98 -Haircut/v_Haircut_g04_c05 33 -BaseballPitch/v_BaseballPitch_g03_c05 6 -HammerThrow/v_HammerThrow_g06_c04 35 -FrisbeeCatch/v_FrisbeeCatch_g03_c02 30 -SkateBoarding/v_SkateBoarding_g05_c02 79 -BalanceBeam/v_BalanceBeam_g03_c01 4 -Archery/v_Archery_g04_c05 2 -ShavingBeard/v_ShavingBeard_g02_c04 77 -SkateBoarding/v_SkateBoarding_g06_c03 79 -BaseballPitch/v_BaseballPitch_g03_c04 6 -HammerThrow/v_HammerThrow_g04_c06 35 -Typing/v_Typing_g01_c01 94 -BabyCrawling/v_BabyCrawling_g07_c03 3 -SumoWrestling/v_SumoWrestling_g02_c04 86 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c04 0 -Swing/v_Swing_g03_c01 88 -Mixing/v_Mixing_g06_c01 53 -WallPushups/v_WallPushups_g06_c04 98 -HammerThrow/v_HammerThrow_g04_c04 35 -Biking/v_Biking_g07_c06 10 -Skijet/v_Skijet_g01_c03 81 -GolfSwing/v_GolfSwing_g05_c02 32 -Nunchucks/v_Nunchucks_g07_c03 55 -Nunchucks/v_Nunchucks_g03_c06 55 -ApplyLipstick/v_ApplyLipstick_g05_c02 1 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c03 73 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c02 0 -Swing/v_Swing_g05_c02 88 -Skijet/v_Skijet_g02_c02 81 -HorseRiding/v_HorseRiding_g02_c03 41 -BlowingCandles/v_BlowingCandles_g05_c03 13 -Skijet/v_Skijet_g01_c01 81 -Shotput/v_Shotput_g02_c07 78 -RockClimbingIndoor/v_RockClimbingIndoor_g02_c02 73 -CricketShot/v_CricketShot_g06_c05 23 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c06 0 -Swing/v_Swing_g07_c05 88 -Skiing/v_Skiing_g02_c03 80 -BalanceBeam/v_BalanceBeam_g07_c03 4 -YoYo/v_YoYo_g05_c01 100 -Lunges/v_Lunges_g06_c03 51 -HandstandPushups/v_HandStandPushups_g06_c02 36 -CricketShot/v_CricketShot_g03_c03 23 -WallPushups/v_WallPushups_g03_c04 98 -JumpingJack/v_JumpingJack_g02_c03 46 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c02 17 -TableTennisShot/v_TableTennisShot_g01_c02 89 -TaiChi/v_TaiChi_g05_c03 90 -HorseRiding/v_HorseRiding_g02_c07 41 -HandstandWalking/v_HandstandWalking_g02_c03 37 -Typing/v_Typing_g04_c04 94 -JavelinThrow/v_JavelinThrow_g02_c03 44 -HorseRiding/v_HorseRiding_g07_c02 41 -Typing/v_Typing_g07_c06 94 -SoccerJuggling/v_SoccerJuggling_g01_c02 83 -WalkingWithDog/v_WalkingWithDog_g04_c01 97 -PlayingDhol/v_PlayingDhol_g01_c02 60 -Skiing/v_Skiing_g01_c04 80 -PlayingDhol/v_PlayingDhol_g07_c06 60 -Drumming/v_Drumming_g03_c02 26 -PlayingFlute/v_PlayingFlute_g02_c02 61 -SoccerPenalty/v_SoccerPenalty_g06_c03 84 -BaseballPitch/v_BaseballPitch_g03_c01 6 -PizzaTossing/v_PizzaTossing_g07_c01 57 -Archery/v_Archery_g07_c04 2 -SkateBoarding/v_SkateBoarding_g04_c05 79 -ShavingBeard/v_ShavingBeard_g04_c04 77 -JavelinThrow/v_JavelinThrow_g05_c02 44 -Archery/v_Archery_g02_c07 2 -Typing/v_Typing_g03_c01 94 -WalkingWithDog/v_WalkingWithDog_g07_c01 97 -Nunchucks/v_Nunchucks_g01_c01 55 -HorseRiding/v_HorseRiding_g03_c07 41 -Drumming/v_Drumming_g06_c04 26 -PushUps/v_PushUps_g01_c01 71 -FloorGymnastics/v_FloorGymnastics_g03_c04 29 -PlayingSitar/v_PlayingSitar_g03_c04 64 -PlayingDaf/v_PlayingDaf_g05_c05 59 -PlayingGuitar/v_PlayingGuitar_g01_c01 62 -PlayingDaf/v_PlayingDaf_g06_c04 59 -SalsaSpin/v_SalsaSpin_g03_c05 76 -SoccerPenalty/v_SoccerPenalty_g05_c06 84 -BreastStroke/v_BreastStroke_g02_c01 18 -ShavingBeard/v_ShavingBeard_g05_c01 77 -CleanAndJerk/v_CleanAndJerk_g01_c05 20 -BrushingTeeth/v_BrushingTeeth_g06_c01 19 -Nunchucks/v_Nunchucks_g06_c04 55 -TrampolineJumping/v_TrampolineJumping_g02_c04 93 -CricketBowling/v_CricketBowling_g03_c02 22 -Punch/v_Punch_g07_c06 70 -Biking/v_Biking_g04_c05 10 -SumoWrestling/v_SumoWrestling_g03_c01 86 -PullUps/v_PullUps_g01_c01 69 -GolfSwing/v_GolfSwing_g02_c02 32 -Skiing/v_Skiing_g07_c04 80 -PlayingFlute/v_PlayingFlute_g06_c04 61 -Drumming/v_Drumming_g02_c06 26 -PlayingGuitar/v_PlayingGuitar_g04_c02 62 -Drumming/v_Drumming_g06_c03 26 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c03 16 -Billiards/v_Billiards_g03_c02 11 -FloorGymnastics/v_FloorGymnastics_g01_c02 29 -BaseballPitch/v_BaseballPitch_g03_c02 6 -WallPushups/v_WallPushups_g05_c04 98 -CleanAndJerk/v_CleanAndJerk_g04_c04 20 -HammerThrow/v_HammerThrow_g04_c03 35 -WallPushups/v_WallPushups_g07_c04 98 -SoccerPenalty/v_SoccerPenalty_g04_c04 84 -RopeClimbing/v_RopeClimbing_g07_c03 74 -BaseballPitch/v_BaseballPitch_g06_c07 6 -MoppingFloor/v_MoppingFloor_g01_c02 54 -BodyWeightSquats/v_BodyWeightSquats_g02_c03 14 -Lunges/v_Lunges_g02_c02 51 -HighJump/v_HighJump_g01_c04 39 -Diving/v_Diving_g05_c02 25 -Skijet/v_Skijet_g05_c04 81 -SkyDiving/v_SkyDiving_g07_c04 82 -WritingOnBoard/v_WritingOnBoard_g03_c04 99 -Mixing/v_Mixing_g07_c01 53 -Archery/v_Archery_g02_c06 2 -WalkingWithDog/v_WalkingWithDog_g01_c01 97 -BandMarching/v_BandMarching_g03_c03 5 -TableTennisShot/v_TableTennisShot_g07_c02 89 -BodyWeightSquats/v_BodyWeightSquats_g03_c01 14 -BasketballDunk/v_BasketballDunk_g02_c02 8 -BaseballPitch/v_BaseballPitch_g07_c07 6 -HighJump/v_HighJump_g07_c05 39 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c01 73 -HorseRace/v_HorseRace_g05_c03 40 -PlayingDaf/v_PlayingDaf_g06_c06 59 -JugglingBalls/v_JugglingBalls_g03_c03 45 -PlayingPiano/v_PlayingPiano_g01_c03 63 -BlowingCandles/v_BlowingCandles_g06_c06 13 -Skiing/v_Skiing_g03_c07 80 -BlowingCandles/v_BlowingCandles_g01_c02 13 -PommelHorse/v_PommelHorse_g04_c01 68 -HandstandPushups/v_HandStandPushups_g04_c04 36 -Rowing/v_Rowing_g07_c03 75 -Haircut/v_Haircut_g07_c01 33 -TennisSwing/v_TennisSwing_g02_c06 91 -PlayingGuitar/v_PlayingGuitar_g02_c04 62 -PlayingDaf/v_PlayingDaf_g01_c04 59 -JumpingJack/v_JumpingJack_g07_c02 46 -PizzaTossing/v_PizzaTossing_g02_c02 57 -BenchPress/v_BenchPress_g02_c05 9 -Kayaking/v_Kayaking_g03_c04 48 -SumoWrestling/v_SumoWrestling_g06_c07 86 -Knitting/v_Knitting_g07_c02 49 -PlayingSitar/v_PlayingSitar_g05_c06 64 -BabyCrawling/v_BabyCrawling_g03_c04 3 -Rafting/v_Rafting_g03_c04 72 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c05 73 -Nunchucks/v_Nunchucks_g03_c07 55 -SkateBoarding/v_SkateBoarding_g03_c04 79 -Surfing/v_Surfing_g02_c04 87 -Shotput/v_Shotput_g06_c02 78 -CliffDiving/v_CliffDiving_g05_c01 21 -PlayingTabla/v_PlayingTabla_g02_c04 65 -CleanAndJerk/v_CleanAndJerk_g03_c04 20 -MilitaryParade/v_MilitaryParade_g01_c01 52 -Kayaking/v_Kayaking_g04_c06 48 -PoleVault/v_PoleVault_g02_c03 67 -Fencing/v_Fencing_g04_c05 27 -Diving/v_Diving_g07_c01 25 -UnevenBars/v_UnevenBars_g02_c01 95 -Shotput/v_Shotput_g02_c05 78 -VolleyballSpiking/v_VolleyballSpiking_g06_c01 96 -Rowing/v_Rowing_g02_c06 75 -Billiards/v_Billiards_g01_c02 11 -FieldHockeyPenalty/v_FieldHockeyPenalty_g01_c05 28 -SoccerJuggling/v_SoccerJuggling_g07_c01 83 -BasketballDunk/v_BasketballDunk_g03_c06 8 -LongJump/v_LongJump_g03_c04 50 -Swing/v_Swing_g06_c03 88 -PullUps/v_PullUps_g06_c01 69 -Biking/v_Biking_g06_c01 10 -ApplyLipstick/v_ApplyLipstick_g05_c01 1 -SalsaSpin/v_SalsaSpin_g04_c06 76 -PizzaTossing/v_PizzaTossing_g02_c05 57 -SalsaSpin/v_SalsaSpin_g01_c02 76 -BandMarching/v_BandMarching_g03_c04 5 -BodyWeightSquats/v_BodyWeightSquats_g06_c01 14 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c06 16 -Fencing/v_Fencing_g05_c04 27 -BlowDryHair/v_BlowDryHair_g04_c03 12 -ShavingBeard/v_ShavingBeard_g06_c04 77 -Skiing/v_Skiing_g01_c06 80 -Billiards/v_Billiards_g04_c03 11 -PlayingSitar/v_PlayingSitar_g04_c04 64 -FrisbeeCatch/v_FrisbeeCatch_g01_c06 30 -UnevenBars/v_UnevenBars_g01_c02 95 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c01 17 -HorseRiding/v_HorseRiding_g07_c07 41 -TennisSwing/v_TennisSwing_g05_c02 91 -BalanceBeam/v_BalanceBeam_g07_c04 4 -Mixing/v_Mixing_g03_c06 53 -GolfSwing/v_GolfSwing_g05_c04 32 -TennisSwing/v_TennisSwing_g04_c02 91 -JavelinThrow/v_JavelinThrow_g06_c03 44 -BlowDryHair/v_BlowDryHair_g02_c03 12 -UnevenBars/v_UnevenBars_g05_c03 95 -CricketBowling/v_CricketBowling_g03_c03 22 -CleanAndJerk/v_CleanAndJerk_g02_c02 20 -Nunchucks/v_Nunchucks_g04_c06 55 -HandstandWalking/v_HandstandWalking_g01_c04 37 -RopeClimbing/v_RopeClimbing_g06_c04 74 -YoYo/v_YoYo_g02_c05 100 -Kayaking/v_Kayaking_g01_c06 48 -Mixing/v_Mixing_g04_c06 53 -BenchPress/v_BenchPress_g05_c05 9 -Drumming/v_Drumming_g07_c03 26 -SoccerJuggling/v_SoccerJuggling_g04_c01 83 -PlayingCello/v_PlayingCello_g05_c05 58 -Archery/v_Archery_g06_c06 2 -BabyCrawling/v_BabyCrawling_g06_c05 3 -Typing/v_Typing_g01_c02 94 -PlayingCello/v_PlayingCello_g07_c03 58 -JumpRope/v_JumpRope_g02_c06 47 -ThrowDiscus/v_ThrowDiscus_g02_c01 92 -Typing/v_Typing_g01_c05 94 -ShavingBeard/v_ShavingBeard_g03_c06 77 -PlayingDaf/v_PlayingDaf_g07_c03 59 -HorseRiding/v_HorseRiding_g05_c07 41 -Mixing/v_Mixing_g04_c07 53 -PoleVault/v_PoleVault_g04_c04 67 -Basketball/v_Basketball_g02_c06 7 -LongJump/v_LongJump_g04_c06 50 -PoleVault/v_PoleVault_g04_c07 67 -Fencing/v_Fencing_g03_c02 27 -PlayingSitar/v_PlayingSitar_g05_c02 64 -WalkingWithDog/v_WalkingWithDog_g02_c06 97 -BandMarching/v_BandMarching_g05_c02 5 -PlayingDaf/v_PlayingDaf_g06_c01 59 -JumpingJack/v_JumpingJack_g06_c06 46 -JumpingJack/v_JumpingJack_g03_c03 46 -JugglingBalls/v_JugglingBalls_g06_c03 45 -Mixing/v_Mixing_g06_c04 53 -Typing/v_Typing_g07_c04 94 -RopeClimbing/v_RopeClimbing_g02_c01 74 -FrontCrawl/v_FrontCrawl_g03_c04 31 -PlayingSitar/v_PlayingSitar_g06_c05 64 -Diving/v_Diving_g01_c07 25 -ShavingBeard/v_ShavingBeard_g01_c04 77 -BasketballDunk/v_BasketballDunk_g02_c01 8 -PushUps/v_PushUps_g06_c02 71 -MilitaryParade/v_MilitaryParade_g02_c02 52 -Rowing/v_Rowing_g06_c01 75 -TrampolineJumping/v_TrampolineJumping_g02_c02 93 -HorseRace/v_HorseRace_g07_c06 40 -Basketball/v_Basketball_g05_c02 7 -Punch/v_Punch_g02_c01 70 -Hammering/v_Hammering_g02_c04 34 -SalsaSpin/v_SalsaSpin_g03_c01 76 -LongJump/v_LongJump_g07_c01 50 -PlayingFlute/v_PlayingFlute_g02_c07 61 -ThrowDiscus/v_ThrowDiscus_g06_c05 92 -PizzaTossing/v_PizzaTossing_g04_c03 57 -Bowling/v_Bowling_g03_c04 15 -SoccerPenalty/v_SoccerPenalty_g03_c01 84 -Mixing/v_Mixing_g01_c01 53 -CleanAndJerk/v_CleanAndJerk_g04_c02 20 -Rafting/v_Rafting_g06_c03 72 -PlayingGuitar/v_PlayingGuitar_g07_c03 62 -GolfSwing/v_GolfSwing_g06_c01 32 -Punch/v_Punch_g07_c07 70 -JumpRope/v_JumpRope_g05_c01 47 -Rowing/v_Rowing_g02_c02 75 -LongJump/v_LongJump_g05_c03 50 -LongJump/v_LongJump_g05_c04 50 -Basketball/v_Basketball_g02_c02 7 -GolfSwing/v_GolfSwing_g06_c04 32 -GolfSwing/v_GolfSwing_g05_c07 32 -HorseRiding/v_HorseRiding_g03_c01 41 -JumpingJack/v_JumpingJack_g07_c03 46 -PoleVault/v_PoleVault_g03_c03 67 -CuttingInKitchen/v_CuttingInKitchen_g02_c02 24 -PlayingCello/v_PlayingCello_g05_c07 58 -WritingOnBoard/v_WritingOnBoard_g05_c02 99 -BenchPress/v_BenchPress_g05_c01 9 -JugglingBalls/v_JugglingBalls_g07_c06 45 -Drumming/v_Drumming_g01_c05 26 -PlayingDhol/v_PlayingDhol_g01_c01 60 -FieldHockeyPenalty/v_FieldHockeyPenalty_g03_c03 28 -CliffDiving/v_CliffDiving_g03_c01 21 -SoccerJuggling/v_SoccerJuggling_g01_c03 83 -SkateBoarding/v_SkateBoarding_g07_c03 79 -Rowing/v_Rowing_g03_c03 75 -PommelHorse/v_PommelHorse_g03_c01 68 -Hammering/v_Hammering_g07_c01 34 -SkyDiving/v_SkyDiving_g02_c01 82 -UnevenBars/v_UnevenBars_g01_c01 95 -Drumming/v_Drumming_g04_c03 26 -BodyWeightSquats/v_BodyWeightSquats_g01_c02 14 -PlayingCello/v_PlayingCello_g06_c01 58 -BenchPress/v_BenchPress_g01_c04 9 -BenchPress/v_BenchPress_g03_c05 9 -PlayingDaf/v_PlayingDaf_g01_c02 59 -BlowDryHair/v_BlowDryHair_g04_c02 12 -PizzaTossing/v_PizzaTossing_g05_c01 57 -SalsaSpin/v_SalsaSpin_g04_c04 76 -JumpingJack/v_JumpingJack_g05_c03 46 -Knitting/v_Knitting_g03_c04 49 -PlayingGuitar/v_PlayingGuitar_g01_c06 62 -Typing/v_Typing_g03_c05 94 -TennisSwing/v_TennisSwing_g07_c02 91 -TableTennisShot/v_TableTennisShot_g01_c01 89 -TableTennisShot/v_TableTennisShot_g05_c04 89 -CricketBowling/v_CricketBowling_g01_c01 22 -JumpRope/v_JumpRope_g03_c03 47 -RopeClimbing/v_RopeClimbing_g01_c01 74 -PlayingTabla/v_PlayingTabla_g01_c04 65 -PlayingViolin/v_PlayingViolin_g02_c02 66 -BasketballDunk/v_BasketballDunk_g02_c03 8 -PommelHorse/v_PommelHorse_g07_c04 68 -Fencing/v_Fencing_g02_c03 27 -BrushingTeeth/v_BrushingTeeth_g02_c01 19 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c06 16 -StillRings/v_StillRings_g04_c04 85 -BlowDryHair/v_BlowDryHair_g03_c02 12 -IceDancing/v_IceDancing_g04_c01 43 -PlayingTabla/v_PlayingTabla_g01_c03 65 -Lunges/v_Lunges_g01_c01 51 -PlayingGuitar/v_PlayingGuitar_g04_c04 62 -SalsaSpin/v_SalsaSpin_g05_c01 76 -SoccerPenalty/v_SoccerPenalty_g04_c01 84 -BoxingSpeedBag/v_BoxingSpeedBag_g02_c04 17 -HorseRiding/v_HorseRiding_g02_c01 41 -Knitting/v_Knitting_g06_c01 49 -BabyCrawling/v_BabyCrawling_g04_c01 3 -BasketballDunk/v_BasketballDunk_g06_c02 8 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c07 0 -FieldHockeyPenalty/v_FieldHockeyPenalty_g03_c04 28 -Knitting/v_Knitting_g01_c02 49 -PlayingDaf/v_PlayingDaf_g02_c02 59 -ShavingBeard/v_ShavingBeard_g05_c05 77 -Diving/v_Diving_g06_c02 25 -Biking/v_Biking_g01_c04 10 -HulaHoop/v_HulaHoop_g06_c02 42 -HandstandWalking/v_HandstandWalking_g02_c01 37 -PlayingGuitar/v_PlayingGuitar_g07_c01 62 -BaseballPitch/v_BaseballPitch_g07_c03 6 -BoxingSpeedBag/v_BoxingSpeedBag_g01_c02 17 -HulaHoop/v_HulaHoop_g01_c04 42 -Haircut/v_Haircut_g03_c02 33 -Bowling/v_Bowling_g07_c03 15 -CricketBowling/v_CricketBowling_g01_c03 22 -PoleVault/v_PoleVault_g06_c05 67 -MoppingFloor/v_MoppingFloor_g06_c01 54 -Lunges/v_Lunges_g05_c02 51 -Kayaking/v_Kayaking_g04_c04 48 -FloorGymnastics/v_FloorGymnastics_g05_c03 29 -BoxingSpeedBag/v_BoxingSpeedBag_g02_c02 17 -ShavingBeard/v_ShavingBeard_g06_c03 77 -Rowing/v_Rowing_g05_c02 75 -PlayingDhol/v_PlayingDhol_g01_c04 60 -JumpingJack/v_JumpingJack_g01_c06 46 -Punch/v_Punch_g07_c03 70 -YoYo/v_YoYo_g01_c04 100 -Typing/v_Typing_g02_c03 94 -PlayingPiano/v_PlayingPiano_g07_c03 63 -CliffDiving/v_CliffDiving_g04_c02 21 -SkateBoarding/v_SkateBoarding_g07_c01 79 -RopeClimbing/v_RopeClimbing_g03_c02 74 -SkateBoarding/v_SkateBoarding_g07_c02 79 -JavelinThrow/v_JavelinThrow_g04_c03 44 -HammerThrow/v_HammerThrow_g02_c05 35 -HorseRiding/v_HorseRiding_g07_c05 41 -CleanAndJerk/v_CleanAndJerk_g07_c03 20 -PlayingGuitar/v_PlayingGuitar_g04_c03 62 -HammerThrow/v_HammerThrow_g05_c05 35 -PlayingCello/v_PlayingCello_g04_c02 58 -SkyDiving/v_SkyDiving_g02_c02 82 -Swing/v_Swing_g04_c02 88 -Skiing/v_Skiing_g03_c02 80 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c04 17 -Skiing/v_Skiing_g04_c05 80 -HeadMassage/v_HeadMassage_g07_c04 38 -YoYo/v_YoYo_g04_c01 100 -RockClimbingIndoor/v_RockClimbingIndoor_g01_c03 73 -Shotput/v_Shotput_g01_c07 78 -SumoWrestling/v_SumoWrestling_g07_c07 86 -ApplyLipstick/v_ApplyLipstick_g03_c03 1 -Diving/v_Diving_g03_c05 25 -Hammering/v_Hammering_g07_c04 34 -BenchPress/v_BenchPress_g06_c07 9 -SoccerPenalty/v_SoccerPenalty_g05_c07 84 -HammerThrow/v_HammerThrow_g06_c02 35 -HeadMassage/v_HeadMassage_g05_c01 38 -CricketBowling/v_CricketBowling_g04_c03 22 -BalanceBeam/v_BalanceBeam_g07_c01 4 -BasketballDunk/v_BasketballDunk_g06_c04 8 -JumpingJack/v_JumpingJack_g01_c01 46 -BlowingCandles/v_BlowingCandles_g07_c01 13 -Bowling/v_Bowling_g07_c01 15 -YoYo/v_YoYo_g05_c05 100 -JumpingJack/v_JumpingJack_g03_c02 46 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c03 0 -Kayaking/v_Kayaking_g07_c02 48 -Billiards/v_Billiards_g03_c01 11 -BodyWeightSquats/v_BodyWeightSquats_g01_c04 14 -PlayingCello/v_PlayingCello_g01_c07 58 -CuttingInKitchen/v_CuttingInKitchen_g03_c01 24 -VolleyballSpiking/v_VolleyballSpiking_g07_c04 96 -Diving/v_Diving_g05_c06 25 -Drumming/v_Drumming_g07_c01 26 -Nunchucks/v_Nunchucks_g02_c01 55 -Shotput/v_Shotput_g05_c05 78 -CricketShot/v_CricketShot_g02_c04 23 -SkateBoarding/v_SkateBoarding_g04_c01 79 -ParallelBars/v_ParallelBars_g03_c04 56 -CricketBowling/v_CricketBowling_g01_c06 22 -SalsaSpin/v_SalsaSpin_g02_c04 76 -Fencing/v_Fencing_g06_c01 27 -BabyCrawling/v_BabyCrawling_g05_c02 3 -Diving/v_Diving_g04_c01 25 -CricketShot/v_CricketShot_g07_c05 23 -HighJump/v_HighJump_g02_c05 39 -HandstandPushups/v_HandStandPushups_g07_c03 36 -BreastStroke/v_BreastStroke_g05_c02 18 -BenchPress/v_BenchPress_g06_c01 9 -UnevenBars/v_UnevenBars_g07_c04 95 -ThrowDiscus/v_ThrowDiscus_g05_c02 92 -BlowingCandles/v_BlowingCandles_g01_c01 13 -JumpingJack/v_JumpingJack_g01_c02 46 -BrushingTeeth/v_BrushingTeeth_g02_c05 19 -WritingOnBoard/v_WritingOnBoard_g05_c03 99 -TennisSwing/v_TennisSwing_g05_c06 91 -Haircut/v_Haircut_g04_c02 33 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c05 16 -Kayaking/v_Kayaking_g06_c01 48 -ThrowDiscus/v_ThrowDiscus_g07_c05 92 -HandstandWalking/v_HandstandWalking_g03_c04 37 -Surfing/v_Surfing_g06_c01 87 -BenchPress/v_BenchPress_g06_c03 9 -ApplyLipstick/v_ApplyLipstick_g05_c05 1 -WalkingWithDog/v_WalkingWithDog_g05_c02 97 -ApplyLipstick/v_ApplyLipstick_g04_c02 1 -PlayingCello/v_PlayingCello_g07_c05 58 -HandstandWalking/v_HandstandWalking_g02_c04 37 -HighJump/v_HighJump_g03_c03 39 -PommelHorse/v_PommelHorse_g05_c02 68 -Punch/v_Punch_g05_c02 70 -PlayingDhol/v_PlayingDhol_g04_c01 60 -IceDancing/v_IceDancing_g06_c01 43 -SkyDiving/v_SkyDiving_g06_c04 82 -IceDancing/v_IceDancing_g01_c05 43 -TrampolineJumping/v_TrampolineJumping_g02_c05 93 -ParallelBars/v_ParallelBars_g06_c02 56 -CleanAndJerk/v_CleanAndJerk_g02_c03 20 -Fencing/v_Fencing_g03_c04 27 -Swing/v_Swing_g05_c04 88 -LongJump/v_LongJump_g03_c03 50 -Basketball/v_Basketball_g01_c07 7 -BalanceBeam/v_BalanceBeam_g06_c02 4 -IceDancing/v_IceDancing_g05_c05 43 -Swing/v_Swing_g05_c05 88 -SkyDiving/v_SkyDiving_g01_c01 82 -CliffDiving/v_CliffDiving_g02_c02 21 -IceDancing/v_IceDancing_g04_c04 43 -BandMarching/v_BandMarching_g05_c07 5 -Billiards/v_Billiards_g05_c04 11 -CricketBowling/v_CricketBowling_g07_c03 22 -BoxingSpeedBag/v_BoxingSpeedBag_g06_c03 17 -VolleyballSpiking/v_VolleyballSpiking_g01_c01 96 -WallPushups/v_WallPushups_g03_c01 98 -IceDancing/v_IceDancing_g06_c04 43 -CliffDiving/v_CliffDiving_g06_c05 21 -HammerThrow/v_HammerThrow_g01_c02 35 -Punch/v_Punch_g03_c03 70 -WritingOnBoard/v_WritingOnBoard_g04_c03 99 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c02 73 -PommelHorse/v_PommelHorse_g04_c05 68 -Bowling/v_Bowling_g06_c02 15 -Drumming/v_Drumming_g03_c05 26 -HorseRace/v_HorseRace_g01_c04 40 -SumoWrestling/v_SumoWrestling_g01_c01 86 -PlayingDhol/v_PlayingDhol_g03_c06 60 -BaseballPitch/v_BaseballPitch_g01_c06 6 -HeadMassage/v_HeadMassage_g06_c07 38 -TrampolineJumping/v_TrampolineJumping_g07_c04 93 -BlowDryHair/v_BlowDryHair_g02_c02 12 -WalkingWithDog/v_WalkingWithDog_g03_c04 97 -StillRings/v_StillRings_g05_c01 85 -SalsaSpin/v_SalsaSpin_g07_c01 76 -Billiards/v_Billiards_g03_c03 11 -ShavingBeard/v_ShavingBeard_g06_c01 77 -TennisSwing/v_TennisSwing_g04_c07 91 -Rowing/v_Rowing_g05_c03 75 -HammerThrow/v_HammerThrow_g02_c06 35 -WritingOnBoard/v_WritingOnBoard_g07_c06 99 -FrontCrawl/v_FrontCrawl_g01_c02 31 -Billiards/v_Billiards_g04_c07 11 -MoppingFloor/v_MoppingFloor_g01_c03 54 -SkateBoarding/v_SkateBoarding_g07_c04 79 -CuttingInKitchen/v_CuttingInKitchen_g01_c04 24 -StillRings/v_StillRings_g05_c02 85 -SoccerJuggling/v_SoccerJuggling_g03_c04 83 -Haircut/v_Haircut_g05_c03 33 -BreastStroke/v_BreastStroke_g01_c02 18 -BreastStroke/v_BreastStroke_g01_c01 18 -BoxingSpeedBag/v_BoxingSpeedBag_g01_c04 17 -SumoWrestling/v_SumoWrestling_g02_c02 86 -CliffDiving/v_CliffDiving_g07_c04 21 -VolleyballSpiking/v_VolleyballSpiking_g05_c05 96 -Typing/v_Typing_g01_c07 94 -Skiing/v_Skiing_g03_c05 80 -BabyCrawling/v_BabyCrawling_g01_c02 3 -Haircut/v_Haircut_g03_c05 33 -BasketballDunk/v_BasketballDunk_g04_c02 8 -PlayingDhol/v_PlayingDhol_g06_c01 60 -PlayingGuitar/v_PlayingGuitar_g02_c03 62 -TennisSwing/v_TennisSwing_g03_c04 91 -Kayaking/v_Kayaking_g02_c03 48 -JavelinThrow/v_JavelinThrow_g02_c04 44 -HorseRace/v_HorseRace_g01_c02 40 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c04 16 -Basketball/v_Basketball_g06_c01 7 -BrushingTeeth/v_BrushingTeeth_g01_c04 19 -BoxingSpeedBag/v_BoxingSpeedBag_g05_c01 17 -PullUps/v_PullUps_g06_c04 69 -PullUps/v_PullUps_g02_c01 69 -Surfing/v_Surfing_g01_c06 87 -PullUps/v_PullUps_g01_c04 69 -BlowDryHair/v_BlowDryHair_g04_c01 12 -BasketballDunk/v_BasketballDunk_g03_c04 8 -HorseRace/v_HorseRace_g04_c04 40 -RopeClimbing/v_RopeClimbing_g02_c05 74 -Nunchucks/v_Nunchucks_g05_c04 55 -SkyDiving/v_SkyDiving_g07_c03 82 -TennisSwing/v_TennisSwing_g02_c04 91 -LongJump/v_LongJump_g01_c07 50 -VolleyballSpiking/v_VolleyballSpiking_g03_c04 96 -TableTennisShot/v_TableTennisShot_g05_c06 89 -Basketball/v_Basketball_g06_c03 7 -PoleVault/v_PoleVault_g04_c02 67 -YoYo/v_YoYo_g05_c02 100 -Shotput/v_Shotput_g06_c01 78 -Skiing/v_Skiing_g06_c05 80 -Rowing/v_Rowing_g03_c01 75 -HammerThrow/v_HammerThrow_g07_c04 35 -Haircut/v_Haircut_g04_c03 33 -SoccerJuggling/v_SoccerJuggling_g02_c03 83 -BodyWeightSquats/v_BodyWeightSquats_g03_c02 14 -Skiing/v_Skiing_g03_c06 80 -LongJump/v_LongJump_g06_c02 50 -BreastStroke/v_BreastStroke_g06_c03 18 -PlayingGuitar/v_PlayingGuitar_g05_c03 62 -ThrowDiscus/v_ThrowDiscus_g02_c07 92 -Biking/v_Biking_g03_c04 10 -CricketBowling/v_CricketBowling_g04_c05 22 -CleanAndJerk/v_CleanAndJerk_g05_c01 20 -WritingOnBoard/v_WritingOnBoard_g07_c01 99 -VolleyballSpiking/v_VolleyballSpiking_g04_c03 96 -TennisSwing/v_TennisSwing_g01_c06 91 -BlowDryHair/v_BlowDryHair_g05_c02 12 -HandstandWalking/v_HandstandWalking_g04_c05 37 -FloorGymnastics/v_FloorGymnastics_g01_c05 29 -HorseRiding/v_HorseRiding_g05_c01 41 -PlayingPiano/v_PlayingPiano_g02_c01 63 -FrontCrawl/v_FrontCrawl_g05_c02 31 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c01 16 -HeadMassage/v_HeadMassage_g01_c02 38 -WallPushups/v_WallPushups_g02_c02 98 -Typing/v_Typing_g07_c05 94 -FloorGymnastics/v_FloorGymnastics_g03_c03 29 -Kayaking/v_Kayaking_g05_c02 48 -SkateBoarding/v_SkateBoarding_g01_c04 79 -Swing/v_Swing_g05_c07 88 -PlayingSitar/v_PlayingSitar_g04_c06 64 -ParallelBars/v_ParallelBars_g07_c03 56 -HighJump/v_HighJump_g05_c03 39 -FrontCrawl/v_FrontCrawl_g05_c03 31 -TrampolineJumping/v_TrampolineJumping_g07_c02 93 -PushUps/v_PushUps_g06_c04 71 -CuttingInKitchen/v_CuttingInKitchen_g02_c03 24 -WalkingWithDog/v_WalkingWithDog_g05_c03 97 -FrontCrawl/v_FrontCrawl_g04_c07 31 -TennisSwing/v_TennisSwing_g01_c03 91 -BlowDryHair/v_BlowDryHair_g06_c05 12 -PlayingTabla/v_PlayingTabla_g06_c02 65 -TennisSwing/v_TennisSwing_g05_c01 91 -PizzaTossing/v_PizzaTossing_g07_c04 57 -Typing/v_Typing_g02_c01 94 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c02 28 -PlayingFlute/v_PlayingFlute_g02_c01 61 -HandstandWalking/v_HandstandWalking_g05_c03 37 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c06 0 -CricketBowling/v_CricketBowling_g01_c05 22 -HeadMassage/v_HeadMassage_g03_c05 38 -MilitaryParade/v_MilitaryParade_g07_c05 52 -SalsaSpin/v_SalsaSpin_g05_c03 76 -StillRings/v_StillRings_g05_c03 85 -FrontCrawl/v_FrontCrawl_g02_c01 31 -PommelHorse/v_PommelHorse_g03_c03 68 -BenchPress/v_BenchPress_g02_c07 9 -BabyCrawling/v_BabyCrawling_g03_c03 3 -Typing/v_Typing_g06_c03 94 -Archery/v_Archery_g01_c02 2 -WritingOnBoard/v_WritingOnBoard_g05_c05 99 -BreastStroke/v_BreastStroke_g04_c02 18 -WalkingWithDog/v_WalkingWithDog_g07_c02 97 -JumpingJack/v_JumpingJack_g07_c01 46 -JumpRope/v_JumpRope_g06_c02 47 -WallPushups/v_WallPushups_g01_c01 98 -Billiards/v_Billiards_g02_c02 11 -Mixing/v_Mixing_g02_c04 53 -YoYo/v_YoYo_g04_c02 100 -LongJump/v_LongJump_g06_c04 50 -BabyCrawling/v_BabyCrawling_g04_c04 3 -GolfSwing/v_GolfSwing_g01_c03 32 -HorseRiding/v_HorseRiding_g01_c01 41 -SalsaSpin/v_SalsaSpin_g04_c03 76 -HeadMassage/v_HeadMassage_g04_c01 38 -CleanAndJerk/v_CleanAndJerk_g01_c01 20 -JavelinThrow/v_JavelinThrow_g07_c05 44 -WalkingWithDog/v_WalkingWithDog_g02_c05 97 -YoYo/v_YoYo_g07_c04 100 -ThrowDiscus/v_ThrowDiscus_g03_c04 92 -MilitaryParade/v_MilitaryParade_g06_c03 52 -Basketball/v_Basketball_g06_c04 7 -BlowDryHair/v_BlowDryHair_g06_c04 12 -PushUps/v_PushUps_g04_c01 71 -MilitaryParade/v_MilitaryParade_g05_c04 52 -ParallelBars/v_ParallelBars_g04_c05 56 -BalanceBeam/v_BalanceBeam_g03_c03 4 -Haircut/v_Haircut_g06_c01 33 -PizzaTossing/v_PizzaTossing_g03_c01 57 -Archery/v_Archery_g07_c01 2 -VolleyballSpiking/v_VolleyballSpiking_g06_c03 96 -FrisbeeCatch/v_FrisbeeCatch_g03_c05 30 -PlayingDhol/v_PlayingDhol_g02_c01 60 -Diving/v_Diving_g01_c06 25 -CuttingInKitchen/v_CuttingInKitchen_g01_c03 24 -ShavingBeard/v_ShavingBeard_g02_c02 77 -CuttingInKitchen/v_CuttingInKitchen_g04_c01 24 -YoYo/v_YoYo_g07_c02 100 -Shotput/v_Shotput_g07_c01 78 -SalsaSpin/v_SalsaSpin_g02_c06 76 -HandstandWalking/v_HandstandWalking_g07_c04 37 -RockClimbingIndoor/v_RockClimbingIndoor_g02_c03 73 -PushUps/v_PushUps_g03_c02 71 -HeadMassage/v_HeadMassage_g04_c03 38 -PoleVault/v_PoleVault_g01_c02 67 -Typing/v_Typing_g01_c04 94 -PlayingSitar/v_PlayingSitar_g06_c04 64 -Knitting/v_Knitting_g02_c01 49 -PommelHorse/v_PommelHorse_g02_c02 68 -FrisbeeCatch/v_FrisbeeCatch_g01_c03 30 -IceDancing/v_IceDancing_g03_c02 43 -PushUps/v_PushUps_g07_c02 71 -BasketballDunk/v_BasketballDunk_g05_c04 8 -FloorGymnastics/v_FloorGymnastics_g04_c01 29 -Drumming/v_Drumming_g04_c02 26 -Typing/v_Typing_g06_c06 94 -Lunges/v_Lunges_g07_c01 51 -BreastStroke/v_BreastStroke_g06_c01 18 -LongJump/v_LongJump_g03_c01 50 -SalsaSpin/v_SalsaSpin_g07_c06 76 -Bowling/v_Bowling_g03_c01 15 -HammerThrow/v_HammerThrow_g06_c05 35 -Diving/v_Diving_g02_c03 25 -SumoWrestling/v_SumoWrestling_g07_c06 86 -GolfSwing/v_GolfSwing_g03_c03 32 -JumpRope/v_JumpRope_g06_c05 47 -WritingOnBoard/v_WritingOnBoard_g02_c03 99 -FrontCrawl/v_FrontCrawl_g04_c06 31 -ParallelBars/v_ParallelBars_g04_c01 56 -SoccerPenalty/v_SoccerPenalty_g01_c06 84 -BlowDryHair/v_BlowDryHair_g01_c04 12 -PlayingTabla/v_PlayingTabla_g07_c04 65 -ParallelBars/v_ParallelBars_g03_c01 56 -Skiing/v_Skiing_g03_c01 80 -RopeClimbing/v_RopeClimbing_g05_c03 74 -Haircut/v_Haircut_g02_c01 33 -TableTennisShot/v_TableTennisShot_g06_c03 89 -ThrowDiscus/v_ThrowDiscus_g07_c03 92 -BalanceBeam/v_BalanceBeam_g04_c03 4 -BenchPress/v_BenchPress_g03_c02 9 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c01 0 -Biking/v_Biking_g05_c07 10 -BaseballPitch/v_BaseballPitch_g06_c03 6 -HulaHoop/v_HulaHoop_g02_c03 42 -TennisSwing/v_TennisSwing_g02_c01 91 -Rowing/v_Rowing_g07_c02 75 -PushUps/v_PushUps_g04_c02 71 -Knitting/v_Knitting_g03_c03 49 -HighJump/v_HighJump_g03_c04 39 -ParallelBars/v_ParallelBars_g06_c03 56 -BlowDryHair/v_BlowDryHair_g05_c04 12 -BodyWeightSquats/v_BodyWeightSquats_g04_c03 14 -CricketShot/v_CricketShot_g07_c06 23 -PoleVault/v_PoleVault_g02_c01 67 -BalanceBeam/v_BalanceBeam_g02_c04 4 -PoleVault/v_PoleVault_g05_c04 67 -TennisSwing/v_TennisSwing_g05_c04 91 -CricketBowling/v_CricketBowling_g03_c04 22 -BaseballPitch/v_BaseballPitch_g03_c06 6 -StillRings/v_StillRings_g07_c02 85 -PoleVault/v_PoleVault_g02_c06 67 -WallPushups/v_WallPushups_g04_c01 98 -Archery/v_Archery_g03_c01 2 -Mixing/v_Mixing_g02_c05 53 -SkateBoarding/v_SkateBoarding_g06_c02 79 -MoppingFloor/v_MoppingFloor_g02_c01 54 -CleanAndJerk/v_CleanAndJerk_g01_c03 20 -Surfing/v_Surfing_g03_c02 87 -Archery/v_Archery_g07_c05 2 -FrontCrawl/v_FrontCrawl_g07_c06 31 -PlayingPiano/v_PlayingPiano_g02_c02 63 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c04 16 -BasketballDunk/v_BasketballDunk_g07_c01 8 -Archery/v_Archery_g04_c04 2 -Hammering/v_Hammering_g05_c04 34 -HorseRiding/v_HorseRiding_g01_c03 41 -PullUps/v_PullUps_g06_c03 69 -Bowling/v_Bowling_g04_c02 15 -BalanceBeam/v_BalanceBeam_g01_c02 4 -Typing/v_Typing_g04_c01 94 -Knitting/v_Knitting_g05_c04 49 -HeadMassage/v_HeadMassage_g02_c06 38 -Fencing/v_Fencing_g03_c03 27 -SoccerJuggling/v_SoccerJuggling_g04_c02 83 -PommelHorse/v_PommelHorse_g06_c04 68 -CricketShot/v_CricketShot_g06_c06 23 -Billiards/v_Billiards_g07_c04 11 -Drumming/v_Drumming_g05_c02 26 -Lunges/v_Lunges_g01_c06 51 -PommelHorse/v_PommelHorse_g06_c03 68 -Billiards/v_Billiards_g02_c05 11 -Rafting/v_Rafting_g05_c01 72 -SumoWrestling/v_SumoWrestling_g06_c06 86 -SalsaSpin/v_SalsaSpin_g06_c01 76 -Swing/v_Swing_g04_c07 88 -SumoWrestling/v_SumoWrestling_g07_c05 86 -WallPushups/v_WallPushups_g01_c04 98 -TennisSwing/v_TennisSwing_g04_c04 91 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c01 16 -PlayingSitar/v_PlayingSitar_g06_c02 64 -Nunchucks/v_Nunchucks_g02_c03 55 -PlayingTabla/v_PlayingTabla_g03_c01 65 -Lunges/v_Lunges_g04_c03 51 -TrampolineJumping/v_TrampolineJumping_g03_c03 93 -ThrowDiscus/v_ThrowDiscus_g05_c03 92 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c06 28 -Typing/v_Typing_g03_c04 94 -SoccerPenalty/v_SoccerPenalty_g01_c05 84 -PlayingViolin/v_PlayingViolin_g01_c04 66 -BabyCrawling/v_BabyCrawling_g05_c05 3 -GolfSwing/v_GolfSwing_g07_c02 32 -Diving/v_Diving_g04_c07 25 -Typing/v_Typing_g03_c07 94 -FrisbeeCatch/v_FrisbeeCatch_g04_c04 30 -CuttingInKitchen/v_CuttingInKitchen_g07_c04 24 -MoppingFloor/v_MoppingFloor_g07_c02 54 -ShavingBeard/v_ShavingBeard_g03_c07 77 -HandstandWalking/v_HandstandWalking_g01_c01 37 -Punch/v_Punch_g01_c05 70 -Skijet/v_Skijet_g03_c03 81 -BrushingTeeth/v_BrushingTeeth_g06_c03 19 -MilitaryParade/v_MilitaryParade_g04_c01 52 -Rafting/v_Rafting_g02_c01 72 -Basketball/v_Basketball_g07_c01 7 -FloorGymnastics/v_FloorGymnastics_g04_c03 29 -Drumming/v_Drumming_g01_c06 26 -SoccerPenalty/v_SoccerPenalty_g05_c02 84 -Mixing/v_Mixing_g05_c07 53 -HeadMassage/v_HeadMassage_g07_c03 38 -PlayingDaf/v_PlayingDaf_g06_c07 59 -BandMarching/v_BandMarching_g05_c04 5 -RockClimbingIndoor/v_RockClimbingIndoor_g01_c02 73 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c04 0 -Archery/v_Archery_g02_c05 2 -SumoWrestling/v_SumoWrestling_g05_c03 86 -WalkingWithDog/v_WalkingWithDog_g04_c02 97 -PlayingDaf/v_PlayingDaf_g04_c01 59 -CricketShot/v_CricketShot_g07_c03 23 -JavelinThrow/v_JavelinThrow_g05_c01 44 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c05 73 -Swing/v_Swing_g01_c03 88 -Bowling/v_Bowling_g02_c03 15 -BandMarching/v_BandMarching_g06_c01 5 -Billiards/v_Billiards_g02_c06 11 -PlayingFlute/v_PlayingFlute_g07_c02 61 -Lunges/v_Lunges_g04_c04 51 -PlayingCello/v_PlayingCello_g02_c05 58 -PlayingGuitar/v_PlayingGuitar_g07_c04 62 -Diving/v_Diving_g01_c05 25 -CricketShot/v_CricketShot_g04_c03 23 -WalkingWithDog/v_WalkingWithDog_g03_c02 97 -BandMarching/v_BandMarching_g06_c04 5 -PlayingDhol/v_PlayingDhol_g05_c04 60 -IceDancing/v_IceDancing_g02_c03 43 -ApplyLipstick/v_ApplyLipstick_g07_c03 1 -WritingOnBoard/v_WritingOnBoard_g07_c04 99 -ShavingBeard/v_ShavingBeard_g05_c04 77 -TableTennisShot/v_TableTennisShot_g03_c01 89 -ApplyLipstick/v_ApplyLipstick_g04_c01 1 -Surfing/v_Surfing_g02_c05 87 -FrontCrawl/v_FrontCrawl_g01_c01 31 -SumoWrestling/v_SumoWrestling_g02_c03 86 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c04 28 -Punch/v_Punch_g06_c05 70 -FieldHockeyPenalty/v_FieldHockeyPenalty_g01_c03 28 -Mixing/v_Mixing_g03_c01 53 -WallPushups/v_WallPushups_g01_c03 98 -PlayingCello/v_PlayingCello_g05_c02 58 -PlayingSitar/v_PlayingSitar_g04_c03 64 -Surfing/v_Surfing_g01_c03 87 -ThrowDiscus/v_ThrowDiscus_g01_c03 92 -Knitting/v_Knitting_g06_c04 49 -Swing/v_Swing_g06_c07 88 -Archery/v_Archery_g06_c05 2 -Biking/v_Biking_g02_c06 10 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c03 28 -FrisbeeCatch/v_FrisbeeCatch_g01_c04 30 -WritingOnBoard/v_WritingOnBoard_g06_c04 99 -LongJump/v_LongJump_g03_c06 50 -Hammering/v_Hammering_g04_c04 34 -BandMarching/v_BandMarching_g02_c04 5 -WalkingWithDog/v_WalkingWithDog_g06_c03 97 -BreastStroke/v_BreastStroke_g02_c03 18 -ApplyLipstick/v_ApplyLipstick_g01_c01 1 -MoppingFloor/v_MoppingFloor_g02_c03 54 -TennisSwing/v_TennisSwing_g04_c06 91 -GolfSwing/v_GolfSwing_g04_c05 32 -PlayingTabla/v_PlayingTabla_g04_c05 65 -Surfing/v_Surfing_g04_c03 87 -IceDancing/v_IceDancing_g01_c06 43 -Diving/v_Diving_g01_c01 25 -WalkingWithDog/v_WalkingWithDog_g02_c03 97 -HeadMassage/v_HeadMassage_g05_c05 38 -ParallelBars/v_ParallelBars_g03_c03 56 -ParallelBars/v_ParallelBars_g07_c05 56 -JugglingBalls/v_JugglingBalls_g02_c05 45 -IceDancing/v_IceDancing_g02_c01 43 -Skiing/v_Skiing_g03_c03 80 -Fencing/v_Fencing_g03_c05 27 -HighJump/v_HighJump_g02_c04 39 -Haircut/v_Haircut_g06_c04 33 -PlayingPiano/v_PlayingPiano_g04_c04 63 -HorseRiding/v_HorseRiding_g04_c03 41 -ShavingBeard/v_ShavingBeard_g06_c05 77 -BoxingSpeedBag/v_BoxingSpeedBag_g05_c04 17 -PlayingSitar/v_PlayingSitar_g06_c06 64 -UnevenBars/v_UnevenBars_g05_c01 95 -Rowing/v_Rowing_g03_c02 75 -BenchPress/v_BenchPress_g03_c04 9 -LongJump/v_LongJump_g04_c04 50 -RopeClimbing/v_RopeClimbing_g05_c04 74 -Kayaking/v_Kayaking_g05_c03 48 -GolfSwing/v_GolfSwing_g01_c05 32 -BoxingSpeedBag/v_BoxingSpeedBag_g06_c02 17 -Diving/v_Diving_g01_c04 25 -PlayingDhol/v_PlayingDhol_g06_c05 60 -BenchPress/v_BenchPress_g02_c04 9 -Surfing/v_Surfing_g03_c03 87 -PlayingGuitar/v_PlayingGuitar_g01_c04 62 -Nunchucks/v_Nunchucks_g01_c02 55 -PlayingFlute/v_PlayingFlute_g03_c02 61 -BandMarching/v_BandMarching_g07_c02 5 -Haircut/v_Haircut_g01_c01 33 -TaiChi/v_TaiChi_g07_c02 90 -Typing/v_Typing_g07_c02 94 -TaiChi/v_TaiChi_g01_c04 90 -Diving/v_Diving_g03_c06 25 -Biking/v_Biking_g07_c04 10 -BaseballPitch/v_BaseballPitch_g01_c03 6 -ParallelBars/v_ParallelBars_g06_c04 56 -VolleyballSpiking/v_VolleyballSpiking_g03_c02 96 -Archery/v_Archery_g01_c06 2 -PlayingCello/v_PlayingCello_g04_c04 58 -Punch/v_Punch_g05_c07 70 -YoYo/v_YoYo_g04_c03 100 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c03 17 -CliffDiving/v_CliffDiving_g07_c02 21 -BodyWeightSquats/v_BodyWeightSquats_g03_c05 14 -Haircut/v_Haircut_g04_c04 33 -MoppingFloor/v_MoppingFloor_g01_c01 54 -UnevenBars/v_UnevenBars_g06_c01 95 -TableTennisShot/v_TableTennisShot_g06_c05 89 -Diving/v_Diving_g06_c04 25 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c07 16 -BenchPress/v_BenchPress_g04_c03 9 -TaiChi/v_TaiChi_g03_c01 90 -HeadMassage/v_HeadMassage_g06_c01 38 -JumpRope/v_JumpRope_g02_c01 47 -PushUps/v_PushUps_g05_c02 71 -Archery/v_Archery_g01_c03 2 -CricketBowling/v_CricketBowling_g04_c01 22 -UnevenBars/v_UnevenBars_g04_c04 95 -JavelinThrow/v_JavelinThrow_g07_c01 44 -TableTennisShot/v_TableTennisShot_g04_c04 89 -PlayingPiano/v_PlayingPiano_g06_c01 63 -SoccerPenalty/v_SoccerPenalty_g03_c04 84 -Shotput/v_Shotput_g05_c04 78 -FloorGymnastics/v_FloorGymnastics_g07_c06 29 -BandMarching/v_BandMarching_g03_c01 5 -BreastStroke/v_BreastStroke_g05_c03 18 -BoxingSpeedBag/v_BoxingSpeedBag_g01_c03 17 -HandstandPushups/v_HandStandPushups_g05_c01 36 -Diving/v_Diving_g03_c01 25 -Surfing/v_Surfing_g06_c04 87 -CuttingInKitchen/v_CuttingInKitchen_g03_c02 24 -TableTennisShot/v_TableTennisShot_g05_c01 89 -RopeClimbing/v_RopeClimbing_g07_c01 74 -YoYo/v_YoYo_g02_c04 100 -UnevenBars/v_UnevenBars_g07_c02 95 -Skiing/v_Skiing_g06_c01 80 -PoleVault/v_PoleVault_g04_c05 67 -WalkingWithDog/v_WalkingWithDog_g01_c02 97 -Biking/v_Biking_g01_c02 10 -HorseRace/v_HorseRace_g04_c05 40 -HandstandWalking/v_HandstandWalking_g04_c01 37 -PlayingPiano/v_PlayingPiano_g05_c04 63 -JugglingBalls/v_JugglingBalls_g04_c02 45 -ShavingBeard/v_ShavingBeard_g05_c06 77 -YoYo/v_YoYo_g01_c01 100 -BlowingCandles/v_BlowingCandles_g05_c05 13 -Archery/v_Archery_g05_c05 2 -Rowing/v_Rowing_g04_c05 75 -PlayingGuitar/v_PlayingGuitar_g05_c05 62 -SoccerJuggling/v_SoccerJuggling_g06_c04 83 -HeadMassage/v_HeadMassage_g05_c02 38 -Rafting/v_Rafting_g05_c02 72 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c06 16 -MoppingFloor/v_MoppingFloor_g07_c05 54 -HulaHoop/v_HulaHoop_g03_c05 42 -RopeClimbing/v_RopeClimbing_g05_c05 74 -JugglingBalls/v_JugglingBalls_g07_c03 45 -PlayingGuitar/v_PlayingGuitar_g06_c03 62 -BenchPress/v_BenchPress_g01_c02 9 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c02 0 -SoccerPenalty/v_SoccerPenalty_g02_c01 84 -TennisSwing/v_TennisSwing_g06_c06 91 -ThrowDiscus/v_ThrowDiscus_g03_c01 92 -WritingOnBoard/v_WritingOnBoard_g02_c04 99 -FrisbeeCatch/v_FrisbeeCatch_g02_c05 30 -Billiards/v_Billiards_g02_c01 11 -TennisSwing/v_TennisSwing_g01_c02 91 -Fencing/v_Fencing_g07_c04 27 -HandstandWalking/v_HandstandWalking_g05_c04 37 -ParallelBars/v_ParallelBars_g04_c06 56 -TennisSwing/v_TennisSwing_g04_c01 91 -JumpRope/v_JumpRope_g03_c04 47 -PlayingGuitar/v_PlayingGuitar_g06_c04 62 -BenchPress/v_BenchPress_g04_c05 9 -Mixing/v_Mixing_g03_c05 53 -FrontCrawl/v_FrontCrawl_g02_c02 31 -HorseRiding/v_HorseRiding_g02_c04 41 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c02 0 -JugglingBalls/v_JugglingBalls_g02_c03 45 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c07 17 -MoppingFloor/v_MoppingFloor_g04_c02 54 -LongJump/v_LongJump_g07_c04 50 -BaseballPitch/v_BaseballPitch_g04_c02 6 -CuttingInKitchen/v_CuttingInKitchen_g02_c01 24 -FrisbeeCatch/v_FrisbeeCatch_g05_c01 30 -BrushingTeeth/v_BrushingTeeth_g01_c01 19 -JavelinThrow/v_JavelinThrow_g01_c03 44 -Archery/v_Archery_g05_c04 2 -BlowDryHair/v_BlowDryHair_g06_c07 12 -JavelinThrow/v_JavelinThrow_g03_c02 44 -LongJump/v_LongJump_g03_c02 50 -SoccerJuggling/v_SoccerJuggling_g04_c05 83 -CuttingInKitchen/v_CuttingInKitchen_g01_c01 24 -SoccerPenalty/v_SoccerPenalty_g05_c05 84 -JumpingJack/v_JumpingJack_g06_c05 46 -BlowingCandles/v_BlowingCandles_g03_c01 13 -PlayingDaf/v_PlayingDaf_g02_c07 59 -TableTennisShot/v_TableTennisShot_g07_c03 89 -CricketShot/v_CricketShot_g05_c06 23 -PizzaTossing/v_PizzaTossing_g06_c05 57 -Kayaking/v_Kayaking_g06_c04 48 -TennisSwing/v_TennisSwing_g06_c01 91 -PullUps/v_PullUps_g05_c04 69 -PlayingFlute/v_PlayingFlute_g04_c03 61 -Haircut/v_Haircut_g01_c02 33 -PlayingFlute/v_PlayingFlute_g04_c05 61 -JugglingBalls/v_JugglingBalls_g05_c02 45 -ShavingBeard/v_ShavingBeard_g06_c07 77 -Billiards/v_Billiards_g06_c04 11 -ThrowDiscus/v_ThrowDiscus_g07_c06 92 -PlayingDhol/v_PlayingDhol_g02_c06 60 -Swing/v_Swing_g06_c02 88 -ShavingBeard/v_ShavingBeard_g02_c05 77 -Lunges/v_Lunges_g07_c07 51 -SumoWrestling/v_SumoWrestling_g06_c01 86 -CliffDiving/v_CliffDiving_g01_c05 21 -CleanAndJerk/v_CleanAndJerk_g03_c06 20 -HorseRace/v_HorseRace_g06_c04 40 -HammerThrow/v_HammerThrow_g05_c04 35 -HulaHoop/v_HulaHoop_g05_c01 42 -CricketBowling/v_CricketBowling_g02_c07 22 -FrisbeeCatch/v_FrisbeeCatch_g07_c06 30 -FloorGymnastics/v_FloorGymnastics_g06_c04 29 -PlayingFlute/v_PlayingFlute_g03_c01 61 -HorseRiding/v_HorseRiding_g07_c04 41 -HandstandWalking/v_HandstandWalking_g03_c02 37 -CleanAndJerk/v_CleanAndJerk_g04_c05 20 -PlayingCello/v_PlayingCello_g06_c02 58 -PommelHorse/v_PommelHorse_g03_c02 68 -ApplyLipstick/v_ApplyLipstick_g05_c03 1 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c03 0 -BabyCrawling/v_BabyCrawling_g02_c01 3 -Surfing/v_Surfing_g07_c02 87 -MilitaryParade/v_MilitaryParade_g01_c05 52 -Punch/v_Punch_g07_c05 70 -Billiards/v_Billiards_g03_c05 11 -Skiing/v_Skiing_g04_c01 80 -PlayingSitar/v_PlayingSitar_g05_c01 64 -Punch/v_Punch_g01_c02 70 -JumpingJack/v_JumpingJack_g01_c07 46 -FloorGymnastics/v_FloorGymnastics_g05_c04 29 -BandMarching/v_BandMarching_g04_c03 5 -Billiards/v_Billiards_g07_c02 11 -Drumming/v_Drumming_g03_c04 26 -Punch/v_Punch_g06_c01 70 -CliffDiving/v_CliffDiving_g07_c05 21 -BaseballPitch/v_BaseballPitch_g01_c05 6 -BenchPress/v_BenchPress_g07_c05 9 -PlayingFlute/v_PlayingFlute_g06_c01 61 -ParallelBars/v_ParallelBars_g07_c02 56 -IceDancing/v_IceDancing_g03_c06 43 -PlayingDaf/v_PlayingDaf_g04_c03 59 -FrontCrawl/v_FrontCrawl_g02_c03 31 -BaseballPitch/v_BaseballPitch_g06_c06 6 -Typing/v_Typing_g03_c02 94 -PizzaTossing/v_PizzaTossing_g01_c02 57 -PlayingPiano/v_PlayingPiano_g05_c02 63 -BlowDryHair/v_BlowDryHair_g07_c03 12 -Kayaking/v_Kayaking_g02_c02 48 -HammerThrow/v_HammerThrow_g03_c02 35 -BaseballPitch/v_BaseballPitch_g07_c05 6 -HandstandPushups/v_HandStandPushups_g07_c01 36 -Knitting/v_Knitting_g06_c03 49 -Hammering/v_Hammering_g03_c05 34 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c04 28 -MilitaryParade/v_MilitaryParade_g03_c01 52 -SoccerJuggling/v_SoccerJuggling_g04_c06 83 -ParallelBars/v_ParallelBars_g04_c02 56 -RockClimbingIndoor/v_RockClimbingIndoor_g01_c05 73 -BabyCrawling/v_BabyCrawling_g07_c05 3 -PommelHorse/v_PommelHorse_g07_c06 68 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c02 0 -Fencing/v_Fencing_g01_c05 27 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c07 0 -Basketball/v_Basketball_g04_c03 7 -FloorGymnastics/v_FloorGymnastics_g02_c01 29 -TrampolineJumping/v_TrampolineJumping_g07_c05 93 -Billiards/v_Billiards_g05_c03 11 -PizzaTossing/v_PizzaTossing_g03_c03 57 -Rafting/v_Rafting_g06_c04 72 -TableTennisShot/v_TableTennisShot_g02_c03 89 -PlayingViolin/v_PlayingViolin_g07_c04 66 -SoccerPenalty/v_SoccerPenalty_g01_c04 84 -Rafting/v_Rafting_g05_c04 72 -BlowingCandles/v_BlowingCandles_g04_c03 13 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c03 16 -Basketball/v_Basketball_g02_c01 7 -IceDancing/v_IceDancing_g06_c05 43 -CricketBowling/v_CricketBowling_g07_c01 22 -PlayingDhol/v_PlayingDhol_g05_c06 60 -PlayingSitar/v_PlayingSitar_g01_c03 64 -SkateBoarding/v_SkateBoarding_g01_c02 79 -SoccerPenalty/v_SoccerPenalty_g07_c04 84 -PullUps/v_PullUps_g03_c02 69 -SoccerPenalty/v_SoccerPenalty_g07_c06 84 -WallPushups/v_WallPushups_g07_c03 98 -Hammering/v_Hammering_g03_c03 34 -BodyWeightSquats/v_BodyWeightSquats_g06_c04 14 -Billiards/v_Billiards_g07_c03 11 -BreastStroke/v_BreastStroke_g01_c03 18 -TableTennisShot/v_TableTennisShot_g06_c02 89 -HulaHoop/v_HulaHoop_g03_c04 42 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c06 16 -WritingOnBoard/v_WritingOnBoard_g05_c06 99 -Nunchucks/v_Nunchucks_g03_c02 55 -Skiing/v_Skiing_g07_c01 80 -VolleyballSpiking/v_VolleyballSpiking_g04_c04 96 -ParallelBars/v_ParallelBars_g05_c04 56 -Archery/v_Archery_g03_c02 2 -PlayingFlute/v_PlayingFlute_g05_c03 61 -BabyCrawling/v_BabyCrawling_g05_c01 3 -PullUps/v_PullUps_g03_c03 69 -BandMarching/v_BandMarching_g01_c07 5 -ApplyLipstick/v_ApplyLipstick_g01_c04 1 -TableTennisShot/v_TableTennisShot_g07_c01 89 -BrushingTeeth/v_BrushingTeeth_g02_c02 19 -ApplyLipstick/v_ApplyLipstick_g01_c02 1 -FloorGymnastics/v_FloorGymnastics_g03_c02 29 -TrampolineJumping/v_TrampolineJumping_g04_c04 93 -ThrowDiscus/v_ThrowDiscus_g06_c07 92 -BalanceBeam/v_BalanceBeam_g07_c02 4 -TrampolineJumping/v_TrampolineJumping_g02_c01 93 -HulaHoop/v_HulaHoop_g05_c03 42 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c06 0 -WallPushups/v_WallPushups_g02_c04 98 -FloorGymnastics/v_FloorGymnastics_g01_c03 29 -Skiing/v_Skiing_g07_c03 80 -Punch/v_Punch_g05_c06 70 -PlayingDaf/v_PlayingDaf_g03_c02 59 -HorseRiding/v_HorseRiding_g01_c04 41 -Fencing/v_Fencing_g05_c03 27 -StillRings/v_StillRings_g05_c04 85 -BabyCrawling/v_BabyCrawling_g07_c02 3 -JugglingBalls/v_JugglingBalls_g06_c01 45 -HorseRiding/v_HorseRiding_g03_c04 41 -ShavingBeard/v_ShavingBeard_g01_c03 77 -ParallelBars/v_ParallelBars_g01_c03 56 -SalsaSpin/v_SalsaSpin_g02_c05 76 -PlayingTabla/v_PlayingTabla_g03_c04 65 -RopeClimbing/v_RopeClimbing_g06_c03 74 -GolfSwing/v_GolfSwing_g07_c01 32 -WritingOnBoard/v_WritingOnBoard_g04_c01 99 -FrontCrawl/v_FrontCrawl_g06_c04 31 -TableTennisShot/v_TableTennisShot_g06_c04 89 -Nunchucks/v_Nunchucks_g02_c04 55 -Surfing/v_Surfing_g01_c05 87 -Haircut/v_Haircut_g02_c03 33 -Typing/v_Typing_g05_c03 94 -FrontCrawl/v_FrontCrawl_g06_c01 31 -BenchPress/v_BenchPress_g04_c06 9 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c05 73 -BaseballPitch/v_BaseballPitch_g05_c05 6 -BaseballPitch/v_BaseballPitch_g05_c07 6 -Hammering/v_Hammering_g04_c05 34 -HulaHoop/v_HulaHoop_g02_c04 42 -SkyDiving/v_SkyDiving_g07_c01 82 -Nunchucks/v_Nunchucks_g02_c02 55 -BlowDryHair/v_BlowDryHair_g03_c03 12 -PlayingDaf/v_PlayingDaf_g05_c04 59 -PlayingDhol/v_PlayingDhol_g07_c07 60 -PoleVault/v_PoleVault_g06_c02 67 -HorseRace/v_HorseRace_g07_c01 40 -HorseRace/v_HorseRace_g01_c01 40 -PlayingViolin/v_PlayingViolin_g03_c02 66 -PlayingFlute/v_PlayingFlute_g05_c06 61 -Fencing/v_Fencing_g01_c02 27 -MilitaryParade/v_MilitaryParade_g04_c03 52 -Lunges/v_Lunges_g07_c04 51 -WallPushups/v_WallPushups_g06_c06 98 -CleanAndJerk/v_CleanAndJerk_g01_c04 20 -GolfSwing/v_GolfSwing_g04_c03 32 -ApplyLipstick/v_ApplyLipstick_g05_c04 1 -MoppingFloor/v_MoppingFloor_g06_c03 54 -Knitting/v_Knitting_g04_c05 49 -Skiing/v_Skiing_g02_c01 80 -TennisSwing/v_TennisSwing_g02_c07 91 -Drumming/v_Drumming_g04_c05 26 -JumpRope/v_JumpRope_g02_c02 47 -LongJump/v_LongJump_g05_c02 50 -PommelHorse/v_PommelHorse_g06_c01 68 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c03 28 -BandMarching/v_BandMarching_g05_c05 5 -Bowling/v_Bowling_g01_c06 15 -PlayingDhol/v_PlayingDhol_g06_c06 60 -Shotput/v_Shotput_g05_c03 78 -MilitaryParade/v_MilitaryParade_g02_c04 52 -Shotput/v_Shotput_g03_c06 78 -ParallelBars/v_ParallelBars_g01_c01 56 -BodyWeightSquats/v_BodyWeightSquats_g05_c02 14 -Surfing/v_Surfing_g02_c03 87 -ShavingBeard/v_ShavingBeard_g07_c05 77 -Hammering/v_Hammering_g04_c03 34 -Biking/v_Biking_g06_c02 10 -Skiing/v_Skiing_g02_c04 80 -HandstandPushups/v_HandStandPushups_g01_c04 36 -BenchPress/v_BenchPress_g06_c04 9 -BlowDryHair/v_BlowDryHair_g06_c06 12 -PullUps/v_PullUps_g02_c02 69 -TableTennisShot/v_TableTennisShot_g05_c02 89 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c04 73 -WallPushups/v_WallPushups_g03_c03 98 -SalsaSpin/v_SalsaSpin_g07_c04 76 -BreastStroke/v_BreastStroke_g06_c04 18 -BlowingCandles/v_BlowingCandles_g06_c01 13 -CliffDiving/v_CliffDiving_g06_c02 21 -Swing/v_Swing_g06_c06 88 -BasketballDunk/v_BasketballDunk_g04_c04 8 -Kayaking/v_Kayaking_g06_c02 48 -IceDancing/v_IceDancing_g04_c03 43 -Biking/v_Biking_g02_c04 10 -BaseballPitch/v_BaseballPitch_g03_c07 6 -BaseballPitch/v_BaseballPitch_g03_c03 6 -CleanAndJerk/v_CleanAndJerk_g07_c01 20 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c03 16 -Rowing/v_Rowing_g03_c07 75 -ApplyLipstick/v_ApplyLipstick_g07_c02 1 -Hammering/v_Hammering_g02_c01 34 -BoxingSpeedBag/v_BoxingSpeedBag_g03_c03 17 -SoccerPenalty/v_SoccerPenalty_g01_c03 84 -BoxingSpeedBag/v_BoxingSpeedBag_g03_c02 17 -HandstandWalking/v_HandstandWalking_g04_c04 37 -Drumming/v_Drumming_g01_c04 26 -SumoWrestling/v_SumoWrestling_g06_c03 86 -CricketShot/v_CricketShot_g06_c02 23 -SumoWrestling/v_SumoWrestling_g07_c02 86 -Drumming/v_Drumming_g02_c02 26 -VolleyballSpiking/v_VolleyballSpiking_g07_c07 96 -PoleVault/v_PoleVault_g03_c05 67 -BoxingSpeedBag/v_BoxingSpeedBag_g03_c04 17 -PlayingGuitar/v_PlayingGuitar_g03_c05 62 -PlayingDhol/v_PlayingDhol_g07_c03 60 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c05 16 -MoppingFloor/v_MoppingFloor_g03_c02 54 -PlayingDaf/v_PlayingDaf_g02_c05 59 -UnevenBars/v_UnevenBars_g03_c03 95 -Rafting/v_Rafting_g03_c02 72 -WallPushups/v_WallPushups_g04_c02 98 -MoppingFloor/v_MoppingFloor_g07_c04 54 -CricketBowling/v_CricketBowling_g02_c05 22 -BandMarching/v_BandMarching_g02_c01 5 -PlayingSitar/v_PlayingSitar_g02_c04 64 -WritingOnBoard/v_WritingOnBoard_g01_c06 99 -CleanAndJerk/v_CleanAndJerk_g01_c02 20 -PlayingFlute/v_PlayingFlute_g03_c03 61 -Kayaking/v_Kayaking_g06_c05 48 -CricketShot/v_CricketShot_g02_c03 23 -PushUps/v_PushUps_g01_c02 71 -TableTennisShot/v_TableTennisShot_g05_c07 89 -PlayingSitar/v_PlayingSitar_g06_c01 64 -Billiards/v_Billiards_g07_c01 11 -TableTennisShot/v_TableTennisShot_g04_c01 89 -VolleyballSpiking/v_VolleyballSpiking_g05_c02 96 -GolfSwing/v_GolfSwing_g07_c04 32 -PullUps/v_PullUps_g04_c02 69 -HammerThrow/v_HammerThrow_g03_c03 35 -StillRings/v_StillRings_g04_c02 85 -RopeClimbing/v_RopeClimbing_g05_c01 74 -TennisSwing/v_TennisSwing_g03_c02 91 -BandMarching/v_BandMarching_g05_c01 5 -SalsaSpin/v_SalsaSpin_g02_c02 76 -Bowling/v_Bowling_g04_c03 15 -BlowingCandles/v_BlowingCandles_g05_c01 13 -PlayingSitar/v_PlayingSitar_g02_c06 64 -BasketballDunk/v_BasketballDunk_g07_c05 8 -PlayingSitar/v_PlayingSitar_g05_c05 64 -BoxingSpeedBag/v_BoxingSpeedBag_g01_c01 17 -HorseRace/v_HorseRace_g06_c06 40 -PullUps/v_PullUps_g07_c02 69 -SoccerJuggling/v_SoccerJuggling_g07_c05 83 -BasketballDunk/v_BasketballDunk_g06_c03 8 -GolfSwing/v_GolfSwing_g05_c01 32 -PlayingSitar/v_PlayingSitar_g03_c06 64 -BaseballPitch/v_BaseballPitch_g05_c06 6 -Bowling/v_Bowling_g07_c05 15 -ParallelBars/v_ParallelBars_g07_c04 56 -Haircut/v_Haircut_g02_c02 33 -BlowingCandles/v_BlowingCandles_g06_c04 13 -BandMarching/v_BandMarching_g07_c07 5 -JumpRope/v_JumpRope_g04_c07 47 -HorseRace/v_HorseRace_g05_c02 40 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c04 17 -Mixing/v_Mixing_g07_c05 53 -WallPushups/v_WallPushups_g03_c05 98 -Mixing/v_Mixing_g04_c04 53 -ParallelBars/v_ParallelBars_g02_c02 56 -Punch/v_Punch_g05_c03 70 -JugglingBalls/v_JugglingBalls_g02_c01 45 -CuttingInKitchen/v_CuttingInKitchen_g04_c02 24 -Skijet/v_Skijet_g04_c02 81 -BreastStroke/v_BreastStroke_g06_c02 18 -HeadMassage/v_HeadMassage_g04_c02 38 -SalsaSpin/v_SalsaSpin_g06_c04 76 -Archery/v_Archery_g06_c01 2 -SkyDiving/v_SkyDiving_g03_c01 82 -FloorGymnastics/v_FloorGymnastics_g04_c04 29 -BandMarching/v_BandMarching_g07_c03 5 -IceDancing/v_IceDancing_g05_c06 43 -Punch/v_Punch_g05_c01 70 -Kayaking/v_Kayaking_g04_c03 48 -ApplyLipstick/v_ApplyLipstick_g02_c03 1 -Lunges/v_Lunges_g02_c03 51 -BaseballPitch/v_BaseballPitch_g07_c01 6 -SkateBoarding/v_SkateBoarding_g04_c04 79 -HandstandWalking/v_HandstandWalking_g07_c01 37 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c07 73 -JumpRope/v_JumpRope_g05_c05 47 -IceDancing/v_IceDancing_g01_c01 43 -HulaHoop/v_HulaHoop_g04_c02 42 -TaiChi/v_TaiChi_g03_c04 90 -PommelHorse/v_PommelHorse_g07_c03 68 -PlayingGuitar/v_PlayingGuitar_g06_c07 62 -Skijet/v_Skijet_g02_c01 81 -HorseRace/v_HorseRace_g03_c01 40 -Biking/v_Biking_g02_c05 10 -MilitaryParade/v_MilitaryParade_g02_c01 52 -Basketball/v_Basketball_g05_c04 7 -Kayaking/v_Kayaking_g03_c02 48 -FrisbeeCatch/v_FrisbeeCatch_g06_c05 30 -PlayingDhol/v_PlayingDhol_g01_c07 60 -ShavingBeard/v_ShavingBeard_g04_c01 77 -HighJump/v_HighJump_g02_c07 39 -HammerThrow/v_HammerThrow_g07_c03 35 -HorseRace/v_HorseRace_g06_c03 40 -PlayingFlute/v_PlayingFlute_g06_c05 61 -RopeClimbing/v_RopeClimbing_g02_c04 74 -HeadMassage/v_HeadMassage_g05_c04 38 -Diving/v_Diving_g05_c01 25 -HammerThrow/v_HammerThrow_g03_c05 35 -VolleyballSpiking/v_VolleyballSpiking_g07_c05 96 -PlayingDhol/v_PlayingDhol_g03_c07 60 -PoleVault/v_PoleVault_g05_c01 67 -BlowDryHair/v_BlowDryHair_g05_c01 12 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c06 16 -BodyWeightSquats/v_BodyWeightSquats_g05_c04 14 -Mixing/v_Mixing_g03_c03 53 -LongJump/v_LongJump_g01_c03 50 -HammerThrow/v_HammerThrow_g03_c04 35 -Billiards/v_Billiards_g01_c05 11 -Mixing/v_Mixing_g06_c06 53 -SoccerPenalty/v_SoccerPenalty_g07_c01 84 -Rowing/v_Rowing_g02_c01 75 -BrushingTeeth/v_BrushingTeeth_g05_c04 19 -FrisbeeCatch/v_FrisbeeCatch_g06_c03 30 -HandstandWalking/v_HandstandWalking_g04_c03 37 -BenchPress/v_BenchPress_g02_c02 9 -StillRings/v_StillRings_g03_c02 85 -StillRings/v_StillRings_g03_c01 85 -CliffDiving/v_CliffDiving_g04_c01 21 -YoYo/v_YoYo_g06_c03 100 -HandstandPushups/v_HandStandPushups_g06_c01 36 -Surfing/v_Surfing_g05_c02 87 -PlayingDhol/v_PlayingDhol_g05_c05 60 -WalkingWithDog/v_WalkingWithDog_g06_c01 97 -JavelinThrow/v_JavelinThrow_g07_c04 44 -HulaHoop/v_HulaHoop_g07_c03 42 -JavelinThrow/v_JavelinThrow_g03_c04 44 -PullUps/v_PullUps_g07_c03 69 -BenchPress/v_BenchPress_g04_c01 9 -HorseRiding/v_HorseRiding_g05_c04 41 -Rowing/v_Rowing_g02_c04 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c03 0 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c06 17 -HulaHoop/v_HulaHoop_g04_c04 42 -PlayingPiano/v_PlayingPiano_g04_c02 63 -PlayingCello/v_PlayingCello_g06_c07 58 -BreastStroke/v_BreastStroke_g04_c01 18 -StillRings/v_StillRings_g03_c03 85 -BaseballPitch/v_BaseballPitch_g01_c01 6 -HammerThrow/v_HammerThrow_g06_c06 35 -CricketShot/v_CricketShot_g02_c02 23 -Drumming/v_Drumming_g02_c01 26 -BaseballPitch/v_BaseballPitch_g05_c02 6 -Rafting/v_Rafting_g07_c03 72 -SoccerJuggling/v_SoccerJuggling_g02_c04 83 -BalanceBeam/v_BalanceBeam_g04_c02 4 -MilitaryParade/v_MilitaryParade_g04_c02 52 -MilitaryParade/v_MilitaryParade_g07_c03 52 -PlayingDhol/v_PlayingDhol_g06_c03 60 -BasketballDunk/v_BasketballDunk_g05_c06 8 -Skijet/v_Skijet_g05_c03 81 -HandstandPushups/v_HandStandPushups_g05_c04 36 -Punch/v_Punch_g04_c01 70 -FloorGymnastics/v_FloorGymnastics_g03_c01 29 -HandstandWalking/v_HandstandWalking_g03_c03 37 -ParallelBars/v_ParallelBars_g04_c07 56 -YoYo/v_YoYo_g04_c05 100 -SoccerPenalty/v_SoccerPenalty_g07_c02 84 -BasketballDunk/v_BasketballDunk_g07_c02 8 -HandstandWalking/v_HandstandWalking_g04_c02 37 -PlayingViolin/v_PlayingViolin_g02_c04 66 -HammerThrow/v_HammerThrow_g01_c05 35 -Fencing/v_Fencing_g05_c01 27 -PommelHorse/v_PommelHorse_g02_c04 68 -ThrowDiscus/v_ThrowDiscus_g02_c06 92 -PlayingFlute/v_PlayingFlute_g04_c02 61 -PlayingCello/v_PlayingCello_g02_c03 58 -WalkingWithDog/v_WalkingWithDog_g01_c03 97 -Surfing/v_Surfing_g06_c02 87 -LongJump/v_LongJump_g04_c03 50 -MilitaryParade/v_MilitaryParade_g01_c07 52 -Shotput/v_Shotput_g04_c05 78 -TaiChi/v_TaiChi_g02_c02 90 -Billiards/v_Billiards_g04_c05 11 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c01 16 -Mixing/v_Mixing_g06_c02 53 -HighJump/v_HighJump_g04_c02 39 -FloorGymnastics/v_FloorGymnastics_g07_c07 29 -Swing/v_Swing_g05_c01 88 -Archery/v_Archery_g01_c05 2 -PlayingViolin/v_PlayingViolin_g07_c01 66 -TennisSwing/v_TennisSwing_g06_c04 91 -MoppingFloor/v_MoppingFloor_g07_c03 54 -PlayingSitar/v_PlayingSitar_g07_c07 64 -PommelHorse/v_PommelHorse_g05_c04 68 -BrushingTeeth/v_BrushingTeeth_g07_c04 19 -CuttingInKitchen/v_CuttingInKitchen_g05_c03 24 -SkateBoarding/v_SkateBoarding_g01_c03 79 -SkyDiving/v_SkyDiving_g01_c02 82 -YoYo/v_YoYo_g05_c03 100 -PlayingCello/v_PlayingCello_g02_c06 58 -CuttingInKitchen/v_CuttingInKitchen_g04_c03 24 -CliffDiving/v_CliffDiving_g02_c01 21 -BoxingSpeedBag/v_BoxingSpeedBag_g06_c01 17 -Rowing/v_Rowing_g04_c02 75 -BrushingTeeth/v_BrushingTeeth_g02_c07 19 -SumoWrestling/v_SumoWrestling_g03_c03 86 -HammerThrow/v_HammerThrow_g07_c01 35 -Bowling/v_Bowling_g07_c07 15 -PlayingFlute/v_PlayingFlute_g04_c04 61 -BalanceBeam/v_BalanceBeam_g04_c04 4 -HeadMassage/v_HeadMassage_g04_c04 38 -Shotput/v_Shotput_g04_c01 78 -Bowling/v_Bowling_g05_c04 15 -PlayingSitar/v_PlayingSitar_g07_c02 64 -SoccerJuggling/v_SoccerJuggling_g02_c01 83 -LongJump/v_LongJump_g02_c04 50 -SalsaSpin/v_SalsaSpin_g05_c06 76 -Drumming/v_Drumming_g05_c04 26 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c06 16 -Shotput/v_Shotput_g05_c02 78 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c06 73 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c06 17 -ParallelBars/v_ParallelBars_g01_c02 56 -BaseballPitch/v_BaseballPitch_g02_c03 6 -SoccerJuggling/v_SoccerJuggling_g01_c04 83 -Billiards/v_Billiards_g05_c02 11 -Typing/v_Typing_g05_c02 94 -PlayingCello/v_PlayingCello_g05_c01 58 -Haircut/v_Haircut_g07_c05 33 -BodyWeightSquats/v_BodyWeightSquats_g01_c03 14 -WalkingWithDog/v_WalkingWithDog_g01_c04 97 -Knitting/v_Knitting_g06_c02 49 -Typing/v_Typing_g07_c01 94 -SoccerJuggling/v_SoccerJuggling_g01_c01 83 -BenchPress/v_BenchPress_g05_c02 9 -PlayingFlute/v_PlayingFlute_g06_c06 61 -WritingOnBoard/v_WritingOnBoard_g01_c05 99 -TrampolineJumping/v_TrampolineJumping_g05_c01 93 -Knitting/v_Knitting_g01_c01 49 -HandstandWalking/v_HandstandWalking_g07_c05 37 -SoccerJuggling/v_SoccerJuggling_g07_c04 83 -BlowingCandles/v_BlowingCandles_g04_c02 13 -TaiChi/v_TaiChi_g02_c04 90 -Knitting/v_Knitting_g04_c01 49 -SalsaSpin/v_SalsaSpin_g02_c03 76 -BabyCrawling/v_BabyCrawling_g02_c06 3 -BandMarching/v_BandMarching_g07_c04 5 -Mixing/v_Mixing_g04_c03 53 -HammerThrow/v_HammerThrow_g04_c07 35 -FloorGymnastics/v_FloorGymnastics_g04_c05 29 -BandMarching/v_BandMarching_g01_c04 5 -Punch/v_Punch_g05_c04 70 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c03 16 -JugglingBalls/v_JugglingBalls_g07_c04 45 -SoccerPenalty/v_SoccerPenalty_g02_c04 84 -PlayingCello/v_PlayingCello_g01_c06 58 -FrontCrawl/v_FrontCrawl_g04_c05 31 -PizzaTossing/v_PizzaTossing_g04_c05 57 -SalsaSpin/v_SalsaSpin_g06_c03 76 -PlayingViolin/v_PlayingViolin_g02_c01 66 -Rowing/v_Rowing_g03_c04 75 -MilitaryParade/v_MilitaryParade_g03_c03 52 -HeadMassage/v_HeadMassage_g02_c04 38 -Typing/v_Typing_g06_c07 94 -PlayingFlute/v_PlayingFlute_g03_c07 61 -PlayingPiano/v_PlayingPiano_g05_c01 63 -HandstandWalking/v_HandstandWalking_g07_c02 37 -PlayingFlute/v_PlayingFlute_g04_c06 61 -Archery/v_Archery_g07_c02 2 -Typing/v_Typing_g05_c05 94 -FieldHockeyPenalty/v_FieldHockeyPenalty_g07_c03 28 -BasketballDunk/v_BasketballDunk_g02_c04 8 -Kayaking/v_Kayaking_g01_c01 48 -IceDancing/v_IceDancing_g07_c06 43 -JavelinThrow/v_JavelinThrow_g04_c01 44 -SoccerJuggling/v_SoccerJuggling_g05_c02 83 -Drumming/v_Drumming_g02_c05 26 -ShavingBeard/v_ShavingBeard_g03_c04 77 -JumpingJack/v_JumpingJack_g06_c01 46 -Biking/v_Biking_g04_c02 10 -SalsaSpin/v_SalsaSpin_g07_c02 76 -Drumming/v_Drumming_g03_c03 26 -Hammering/v_Hammering_g06_c06 34 -SalsaSpin/v_SalsaSpin_g04_c01 76 -PlayingPiano/v_PlayingPiano_g06_c03 63 -SalsaSpin/v_SalsaSpin_g06_c02 76 -SumoWrestling/v_SumoWrestling_g03_c04 86 -YoYo/v_YoYo_g03_c05 100 -PlayingTabla/v_PlayingTabla_g04_c02 65 -PlayingFlute/v_PlayingFlute_g01_c03 61 -WritingOnBoard/v_WritingOnBoard_g07_c07 99 -Biking/v_Biking_g04_c01 10 -PlayingFlute/v_PlayingFlute_g01_c05 61 -SumoWrestling/v_SumoWrestling_g01_c04 86 -Lunges/v_Lunges_g06_c05 51 -HammerThrow/v_HammerThrow_g06_c07 35 -SoccerPenalty/v_SoccerPenalty_g06_c02 84 -CricketShot/v_CricketShot_g07_c07 23 -PlayingCello/v_PlayingCello_g07_c01 58 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c07 17 -TaiChi/v_TaiChi_g03_c02 90 -GolfSwing/v_GolfSwing_g04_c06 32 -BreastStroke/v_BreastStroke_g05_c01 18 -PlayingDhol/v_PlayingDhol_g04_c02 60 -BlowDryHair/v_BlowDryHair_g05_c05 12 -ApplyLipstick/v_ApplyLipstick_g07_c04 1 -Punch/v_Punch_g07_c04 70 -VolleyballSpiking/v_VolleyballSpiking_g02_c02 96 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c05 28 -BenchPress/v_BenchPress_g04_c04 9 -Shotput/v_Shotput_g02_c01 78 -PlayingCello/v_PlayingCello_g03_c04 58 -HulaHoop/v_HulaHoop_g03_c01 42 -SalsaSpin/v_SalsaSpin_g02_c01 76 -Surfing/v_Surfing_g01_c01 87 -WritingOnBoard/v_WritingOnBoard_g01_c04 99 -RockClimbingIndoor/v_RockClimbingIndoor_g02_c04 73 -JugglingBalls/v_JugglingBalls_g05_c01 45 -PlayingCello/v_PlayingCello_g04_c07 58 -Hammering/v_Hammering_g07_c03 34 -JumpingJack/v_JumpingJack_g06_c02 46 -FrontCrawl/v_FrontCrawl_g05_c04 31 -BlowingCandles/v_BlowingCandles_g07_c02 13 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c01 16 -Nunchucks/v_Nunchucks_g06_c03 55 -VolleyballSpiking/v_VolleyballSpiking_g06_c02 96 -Lunges/v_Lunges_g03_c04 51 -TennisSwing/v_TennisSwing_g05_c03 91 -WalkingWithDog/v_WalkingWithDog_g06_c02 97 -JumpingJack/v_JumpingJack_g06_c07 46 -CricketShot/v_CricketShot_g05_c01 23 -PlayingGuitar/v_PlayingGuitar_g05_c01 62 -TrampolineJumping/v_TrampolineJumping_g04_c02 93 -TrampolineJumping/v_TrampolineJumping_g04_c01 93 -Drumming/v_Drumming_g05_c01 26 -MilitaryParade/v_MilitaryParade_g04_c04 52 -MoppingFloor/v_MoppingFloor_g05_c05 54 -CricketShot/v_CricketShot_g01_c01 23 -BenchPress/v_BenchPress_g07_c01 9 -CleanAndJerk/v_CleanAndJerk_g04_c01 20 -HulaHoop/v_HulaHoop_g05_c02 42 -ApplyLipstick/v_ApplyLipstick_g04_c05 1 -Diving/v_Diving_g01_c03 25 -FrontCrawl/v_FrontCrawl_g07_c02 31 -Billiards/v_Billiards_g01_c06 11 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c07 16 -Rafting/v_Rafting_g01_c04 72 -BrushingTeeth/v_BrushingTeeth_g07_c03 19 -SkyDiving/v_SkyDiving_g03_c03 82 -PommelHorse/v_PommelHorse_g05_c03 68 -Bowling/v_Bowling_g02_c04 15 -SoccerJuggling/v_SoccerJuggling_g07_c07 83 -HorseRace/v_HorseRace_g03_c03 40 -PommelHorse/v_PommelHorse_g01_c01 68 -BenchPress/v_BenchPress_g06_c06 9 -Kayaking/v_Kayaking_g04_c05 48 -PlayingViolin/v_PlayingViolin_g04_c03 66 -PlayingSitar/v_PlayingSitar_g03_c02 64 -BrushingTeeth/v_BrushingTeeth_g07_c02 19 -TaiChi/v_TaiChi_g01_c01 90 -BodyWeightSquats/v_BodyWeightSquats_g03_c04 14 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c07 16 -TaiChi/v_TaiChi_g01_c02 90 -CricketShot/v_CricketShot_g05_c05 23 -PlayingTabla/v_PlayingTabla_g05_c01 65 -WalkingWithDog/v_WalkingWithDog_g07_c06 97 -Haircut/v_Haircut_g03_c06 33 -Rafting/v_Rafting_g06_c02 72 -VolleyballSpiking/v_VolleyballSpiking_g07_c03 96 -Nunchucks/v_Nunchucks_g03_c01 55 -CuttingInKitchen/v_CuttingInKitchen_g06_c02 24 -SkateBoarding/v_SkateBoarding_g02_c06 79 -SalsaSpin/v_SalsaSpin_g04_c02 76 -JumpRope/v_JumpRope_g07_c02 47 -IceDancing/v_IceDancing_g02_c06 43 -Fencing/v_Fencing_g03_c01 27 -Punch/v_Punch_g03_c02 70 -PlayingDaf/v_PlayingDaf_g01_c01 59 -Kayaking/v_Kayaking_g05_c04 48 -BaseballPitch/v_BaseballPitch_g05_c03 6 -IceDancing/v_IceDancing_g06_c02 43 -PlayingViolin/v_PlayingViolin_g04_c04 66 -JavelinThrow/v_JavelinThrow_g06_c01 44 -IceDancing/v_IceDancing_g04_c07 43 -SkateBoarding/v_SkateBoarding_g04_c03 79 -BlowDryHair/v_BlowDryHair_g03_c01 12 -PlayingDhol/v_PlayingDhol_g06_c07 60 -Basketball/v_Basketball_g03_c04 7 -ShavingBeard/v_ShavingBeard_g03_c01 77 -Lunges/v_Lunges_g02_c01 51 -BreastStroke/v_BreastStroke_g03_c04 18 -BrushingTeeth/v_BrushingTeeth_g06_c02 19 -PlayingGuitar/v_PlayingGuitar_g07_c02 62 -JumpingJack/v_JumpingJack_g05_c05 46 -BandMarching/v_BandMarching_g01_c05 5 -Basketball/v_Basketball_g03_c02 7 -BabyCrawling/v_BabyCrawling_g02_c02 3 -JugglingBalls/v_JugglingBalls_g07_c07 45 -Bowling/v_Bowling_g07_c06 15 -CricketShot/v_CricketShot_g07_c02 23 -Knitting/v_Knitting_g03_c05 49 -ParallelBars/v_ParallelBars_g06_c07 56 -Rowing/v_Rowing_g05_c04 75 -HulaHoop/v_HulaHoop_g06_c04 42 -HeadMassage/v_HeadMassage_g06_c06 38 -HighJump/v_HighJump_g04_c06 39 -HammerThrow/v_HammerThrow_g01_c01 35 -UnevenBars/v_UnevenBars_g01_c03 95 -LongJump/v_LongJump_g05_c01 50 -RopeClimbing/v_RopeClimbing_g05_c06 74 -JumpingJack/v_JumpingJack_g05_c02 46 -PlayingFlute/v_PlayingFlute_g05_c04 61 -Mixing/v_Mixing_g01_c07 53 -Mixing/v_Mixing_g05_c05 53 -PlayingViolin/v_PlayingViolin_g07_c03 66 -JumpRope/v_JumpRope_g05_c02 47 -HammerThrow/v_HammerThrow_g01_c03 35 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c06 73 -PlayingGuitar/v_PlayingGuitar_g06_c01 62 -BalanceBeam/v_BalanceBeam_g06_c03 4 -HorseRiding/v_HorseRiding_g07_c03 41 -ShavingBeard/v_ShavingBeard_g03_c03 77 -Kayaking/v_Kayaking_g07_c01 48 -Skijet/v_Skijet_g07_c04 81 -HighJump/v_HighJump_g05_c02 39 -JugglingBalls/v_JugglingBalls_g07_c01 45 -PushUps/v_PushUps_g07_c03 71 -Nunchucks/v_Nunchucks_g02_c06 55 -CricketShot/v_CricketShot_g01_c03 23 -TennisSwing/v_TennisSwing_g04_c03 91 -PlayingSitar/v_PlayingSitar_g03_c05 64 -JumpingJack/v_JumpingJack_g01_c05 46 -BaseballPitch/v_BaseballPitch_g06_c02 6 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c05 0 -JumpRope/v_JumpRope_g05_c03 47 -Nunchucks/v_Nunchucks_g04_c01 55 -Biking/v_Biking_g06_c05 10 -HulaHoop/v_HulaHoop_g03_c03 42 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c07 16 -JumpRope/v_JumpRope_g02_c07 47 -Fencing/v_Fencing_g02_c01 27 -MilitaryParade/v_MilitaryParade_g07_c01 52 -PlayingGuitar/v_PlayingGuitar_g04_c05 62 -ShavingBeard/v_ShavingBeard_g05_c03 77 -Skiing/v_Skiing_g04_c04 80 -FrontCrawl/v_FrontCrawl_g07_c01 31 -SkyDiving/v_SkyDiving_g05_c04 82 -WritingOnBoard/v_WritingOnBoard_g03_c02 99 -Diving/v_Diving_g06_c01 25 -FrisbeeCatch/v_FrisbeeCatch_g04_c05 30 -WalkingWithDog/v_WalkingWithDog_g04_c05 97 -CricketShot/v_CricketShot_g01_c05 23 -Diving/v_Diving_g07_c03 25 -Skijet/v_Skijet_g01_c02 81 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c07 16 -JumpingJack/v_JumpingJack_g01_c04 46 -WritingOnBoard/v_WritingOnBoard_g06_c01 99 -Skiing/v_Skiing_g04_c06 80 -Drumming/v_Drumming_g06_c06 26 -IceDancing/v_IceDancing_g07_c04 43 -Haircut/v_Haircut_g07_c06 33 -PommelHorse/v_PommelHorse_g04_c03 68 -TennisSwing/v_TennisSwing_g02_c03 91 -CliffDiving/v_CliffDiving_g03_c03 21 -PlayingSitar/v_PlayingSitar_g05_c04 64 -BasketballDunk/v_BasketballDunk_g07_c06 8 -Haircut/v_Haircut_g06_c02 33 -CleanAndJerk/v_CleanAndJerk_g05_c02 20 -Archery/v_Archery_g01_c07 2 -HeadMassage/v_HeadMassage_g03_c02 38 -FloorGymnastics/v_FloorGymnastics_g01_c04 29 -Surfing/v_Surfing_g07_c01 87 -HighJump/v_HighJump_g06_c01 39 -GolfSwing/v_GolfSwing_g06_c03 32 -SkyDiving/v_SkyDiving_g01_c03 82 -Haircut/v_Haircut_g07_c04 33 -HandstandPushups/v_HandStandPushups_g02_c02 36 -JumpRope/v_JumpRope_g01_c03 47 -JavelinThrow/v_JavelinThrow_g05_c05 44 -RopeClimbing/v_RopeClimbing_g05_c07 74 -PushUps/v_PushUps_g06_c01 71 -FrontCrawl/v_FrontCrawl_g02_c04 31 -CricketBowling/v_CricketBowling_g01_c04 22 -HorseRiding/v_HorseRiding_g04_c01 41 -FieldHockeyPenalty/v_FieldHockeyPenalty_g03_c01 28 -CliffDiving/v_CliffDiving_g01_c03 21 -PlayingCello/v_PlayingCello_g05_c06 58 -TaiChi/v_TaiChi_g06_c02 90 -Lunges/v_Lunges_g06_c07 51 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c06 0 -PullUps/v_PullUps_g05_c02 69 -TaiChi/v_TaiChi_g06_c03 90 -ParallelBars/v_ParallelBars_g07_c06 56 -WritingOnBoard/v_WritingOnBoard_g07_c03 99 -PushUps/v_PushUps_g03_c03 71 -Diving/v_Diving_g02_c07 25 -CuttingInKitchen/v_CuttingInKitchen_g05_c06 24 -BasketballDunk/v_BasketballDunk_g01_c05 8 -Shotput/v_Shotput_g07_c02 78 -Knitting/v_Knitting_g05_c02 49 -Bowling/v_Bowling_g06_c03 15 -PlayingPiano/v_PlayingPiano_g01_c01 63 -BlowingCandles/v_BlowingCandles_g04_c01 13 -Diving/v_Diving_g02_c05 25 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c05 16 -ApplyLipstick/v_ApplyLipstick_g02_c02 1 -CleanAndJerk/v_CleanAndJerk_g06_c02 20 -PlayingDaf/v_PlayingDaf_g05_c03 59 -PullUps/v_PullUps_g05_c03 69 -PlayingViolin/v_PlayingViolin_g04_c01 66 -HammerThrow/v_HammerThrow_g02_c03 35 -CleanAndJerk/v_CleanAndJerk_g05_c03 20 -PlayingDaf/v_PlayingDaf_g04_c06 59 -Rafting/v_Rafting_g07_c01 72 -YoYo/v_YoYo_g01_c06 100 -FieldHockeyPenalty/v_FieldHockeyPenalty_g01_c04 28 -Hammering/v_Hammering_g03_c02 34 -JugglingBalls/v_JugglingBalls_g02_c06 45 -SkateBoarding/v_SkateBoarding_g02_c03 79 -Fencing/v_Fencing_g02_c05 27 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c01 73 -StillRings/v_StillRings_g02_c04 85 -SalsaSpin/v_SalsaSpin_g03_c06 76 -SkyDiving/v_SkyDiving_g03_c05 82 -CricketBowling/v_CricketBowling_g07_c04 22 -HeadMassage/v_HeadMassage_g03_c03 38 -SumoWrestling/v_SumoWrestling_g01_c03 86 -Rowing/v_Rowing_g06_c02 75 -Rowing/v_Rowing_g02_c05 75 -IceDancing/v_IceDancing_g01_c07 43 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c01 0 -PlayingViolin/v_PlayingViolin_g06_c02 66 -VolleyballSpiking/v_VolleyballSpiking_g02_c03 96 -Basketball/v_Basketball_g03_c05 7 -Bowling/v_Bowling_g04_c01 15 -BasketballDunk/v_BasketballDunk_g04_c03 8 -SalsaSpin/v_SalsaSpin_g02_c07 76 -ApplyLipstick/v_ApplyLipstick_g02_c01 1 -Swing/v_Swing_g01_c01 88 -BrushingTeeth/v_BrushingTeeth_g03_c01 19 -Basketball/v_Basketball_g02_c03 7 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c04 0 -YoYo/v_YoYo_g03_c02 100 -PlayingTabla/v_PlayingTabla_g01_c01 65 -BaseballPitch/v_BaseballPitch_g05_c04 6 -PoleVault/v_PoleVault_g01_c04 67 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c01 16 -JumpingJack/v_JumpingJack_g02_c01 46 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c07 28 -JugglingBalls/v_JugglingBalls_g07_c05 45 -MilitaryParade/v_MilitaryParade_g03_c02 52 -YoYo/v_YoYo_g06_c01 100 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c02 17 -Lunges/v_Lunges_g03_c03 51 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c02 73 -PlayingCello/v_PlayingCello_g03_c02 58 -HeadMassage/v_HeadMassage_g05_c06 38 -PommelHorse/v_PommelHorse_g03_c04 68 -Swing/v_Swing_g03_c02 88 -IceDancing/v_IceDancing_g02_c02 43 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c01 16 -Drumming/v_Drumming_g07_c07 26 -ApplyLipstick/v_ApplyLipstick_g06_c04 1 -Mixing/v_Mixing_g07_c03 53 -Surfing/v_Surfing_g05_c03 87 -PlayingDhol/v_PlayingDhol_g02_c04 60 -BandMarching/v_BandMarching_g04_c04 5 -WalkingWithDog/v_WalkingWithDog_g06_c05 97 -IceDancing/v_IceDancing_g02_c07 43 -BenchPress/v_BenchPress_g01_c06 9 -Punch/v_Punch_g04_c02 70 -Knitting/v_Knitting_g04_c03 49 -PlayingCello/v_PlayingCello_g02_c07 58 -TennisSwing/v_TennisSwing_g05_c07 91 -HeadMassage/v_HeadMassage_g03_c04 38 -HulaHoop/v_HulaHoop_g02_c02 42 -ApplyLipstick/v_ApplyLipstick_g06_c05 1 -Knitting/v_Knitting_g01_c03 49 -BoxingSpeedBag/v_BoxingSpeedBag_g03_c05 17 -VolleyballSpiking/v_VolleyballSpiking_g04_c07 96 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c05 16 -Swing/v_Swing_g07_c03 88 -HorseRiding/v_HorseRiding_g06_c07 41 -Shotput/v_Shotput_g03_c05 78 -JumpingJack/v_JumpingJack_g04_c01 46 -BodyWeightSquats/v_BodyWeightSquats_g02_c02 14 -PlayingSitar/v_PlayingSitar_g04_c02 64 -CliffDiving/v_CliffDiving_g05_c03 21 -IceDancing/v_IceDancing_g07_c05 43 -GolfSwing/v_GolfSwing_g02_c04 32 -BlowDryHair/v_BlowDryHair_g06_c03 12 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c07 0 -MilitaryParade/v_MilitaryParade_g01_c04 52 -Lunges/v_Lunges_g01_c02 51 -CliffDiving/v_CliffDiving_g03_c05 21 -BlowDryHair/v_BlowDryHair_g06_c01 12 -Biking/v_Biking_g02_c07 10 -BandMarching/v_BandMarching_g03_c05 5 -PlayingDhol/v_PlayingDhol_g06_c04 60 -Nunchucks/v_Nunchucks_g05_c03 55 -Typing/v_Typing_g02_c05 94 -PlayingViolin/v_PlayingViolin_g01_c03 66 -FrontCrawl/v_FrontCrawl_g03_c05 31 -RockClimbingIndoor/v_RockClimbingIndoor_g02_c05 73 -Swing/v_Swing_g03_c04 88 -Drumming/v_Drumming_g04_c04 26 -LongJump/v_LongJump_g02_c01 50 -Skijet/v_Skijet_g05_c02 81 -HammerThrow/v_HammerThrow_g04_c05 35 -Punch/v_Punch_g02_c02 70 -BaseballPitch/v_BaseballPitch_g02_c04 6 -SoccerJuggling/v_SoccerJuggling_g06_c02 83 -Surfing/v_Surfing_g05_c04 87 -PlayingCello/v_PlayingCello_g01_c02 58 -PoleVault/v_PoleVault_g02_c05 67 -Knitting/v_Knitting_g01_c04 49 -BlowDryHair/v_BlowDryHair_g01_c03 12 -PlayingGuitar/v_PlayingGuitar_g03_c01 62 -JumpRope/v_JumpRope_g07_c03 47 -PlayingTabla/v_PlayingTabla_g02_c03 65 -Hammering/v_Hammering_g03_c01 34 -Basketball/v_Basketball_g07_c04 7 -CricketBowling/v_CricketBowling_g02_c03 22 -TennisSwing/v_TennisSwing_g06_c07 91 -HammerThrow/v_HammerThrow_g04_c02 35 -Biking/v_Biking_g02_c03 10 -SkateBoarding/v_SkateBoarding_g03_c03 79 -UnevenBars/v_UnevenBars_g02_c03 95 -HulaHoop/v_HulaHoop_g06_c01 42 -Swing/v_Swing_g06_c01 88 -GolfSwing/v_GolfSwing_g03_c07 32 -CricketShot/v_CricketShot_g03_c07 23 -JumpRope/v_JumpRope_g02_c03 47 -HighJump/v_HighJump_g02_c06 39 -Biking/v_Biking_g06_c03 10 -VolleyballSpiking/v_VolleyballSpiking_g01_c02 96 -ApplyLipstick/v_ApplyLipstick_g03_c02 1 -JumpingJack/v_JumpingJack_g05_c04 46 -PullUps/v_PullUps_g01_c03 69 -Typing/v_Typing_g06_c02 94 -GolfSwing/v_GolfSwing_g05_c06 32 -ApplyLipstick/v_ApplyLipstick_g03_c01 1 -FrisbeeCatch/v_FrisbeeCatch_g04_c02 30 -TennisSwing/v_TennisSwing_g03_c06 91 -CuttingInKitchen/v_CuttingInKitchen_g04_c04 24 -Mixing/v_Mixing_g06_c05 53 -MilitaryParade/v_MilitaryParade_g06_c01 52 -BenchPress/v_BenchPress_g07_c06 9 -BodyWeightSquats/v_BodyWeightSquats_g02_c01 14 -PlayingTabla/v_PlayingTabla_g04_c01 65 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c01 28 -PlayingSitar/v_PlayingSitar_g02_c01 64 -TableTennisShot/v_TableTennisShot_g06_c06 89 -YoYo/v_YoYo_g02_c03 100 -Fencing/v_Fencing_g04_c02 27 -TableTennisShot/v_TableTennisShot_g03_c04 89 -CuttingInKitchen/v_CuttingInKitchen_g04_c05 24 -SumoWrestling/v_SumoWrestling_g05_c02 86 -BabyCrawling/v_BabyCrawling_g02_c03 3 -Surfing/v_Surfing_g03_c04 87 -Mixing/v_Mixing_g02_c02 53 -Diving/v_Diving_g03_c02 25 -PizzaTossing/v_PizzaTossing_g01_c04 57 -PlayingTabla/v_PlayingTabla_g04_c04 65 -BandMarching/v_BandMarching_g01_c01 5 -PlayingDhol/v_PlayingDhol_g05_c07 60 -LongJump/v_LongJump_g06_c01 50 -PlayingCello/v_PlayingCello_g01_c03 58 -BandMarching/v_BandMarching_g06_c02 5 -LongJump/v_LongJump_g01_c02 50 -Biking/v_Biking_g07_c03 10 -PlayingDaf/v_PlayingDaf_g05_c02 59 -Bowling/v_Bowling_g01_c07 15 -Swing/v_Swing_g02_c05 88 -BreastStroke/v_BreastStroke_g05_c04 18 -Surfing/v_Surfing_g07_c03 87 -JumpRope/v_JumpRope_g04_c02 47 -Archery/v_Archery_g02_c02 2 -Billiards/v_Billiards_g04_c01 11 -Punch/v_Punch_g07_c01 70 -BenchPress/v_BenchPress_g07_c02 9 -Drumming/v_Drumming_g01_c01 26 -CricketBowling/v_CricketBowling_g05_c03 22 -Rafting/v_Rafting_g01_c01 72 -TrampolineJumping/v_TrampolineJumping_g04_c05 93 -HeadMassage/v_HeadMassage_g06_c02 38 -CleanAndJerk/v_CleanAndJerk_g06_c04 20 -MoppingFloor/v_MoppingFloor_g02_c02 54 -ThrowDiscus/v_ThrowDiscus_g07_c07 92 -GolfSwing/v_GolfSwing_g04_c02 32 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c02 16 -HeadMassage/v_HeadMassage_g07_c05 38 -ParallelBars/v_ParallelBars_g03_c02 56 -CleanAndJerk/v_CleanAndJerk_g03_c02 20 -SkyDiving/v_SkyDiving_g06_c03 82 -BoxingSpeedBag/v_BoxingSpeedBag_g02_c01 17 -CricketBowling/v_CricketBowling_g05_c01 22 -ShavingBeard/v_ShavingBeard_g03_c02 77 -JugglingBalls/v_JugglingBalls_g03_c04 45 -SkyDiving/v_SkyDiving_g07_c05 82 -WallPushups/v_WallPushups_g06_c01 98 -ApplyEyeMakeup/v_ApplyEyeMakeup_g02_c01 0 -SoccerJuggling/v_SoccerJuggling_g02_c06 83 -Mixing/v_Mixing_g01_c05 53 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c01 0 -ParallelBars/v_ParallelBars_g05_c01 56 -Basketball/v_Basketball_g02_c05 7 -GolfSwing/v_GolfSwing_g04_c04 32 -JumpRope/v_JumpRope_g01_c01 47 -SoccerPenalty/v_SoccerPenalty_g03_c02 84 -LongJump/v_LongJump_g04_c07 50 -BreastStroke/v_BreastStroke_g04_c04 18 -BandMarching/v_BandMarching_g06_c03 5 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c05 0 -BabyCrawling/v_BabyCrawling_g07_c06 3 -VolleyballSpiking/v_VolleyballSpiking_g05_c03 96 -CuttingInKitchen/v_CuttingInKitchen_g05_c02 24 -WritingOnBoard/v_WritingOnBoard_g02_c01 99 -Typing/v_Typing_g05_c01 94 -BenchPress/v_BenchPress_g07_c07 9 -SalsaSpin/v_SalsaSpin_g01_c07 76 -SoccerJuggling/v_SoccerJuggling_g05_c06 83 -ApplyLipstick/v_ApplyLipstick_g04_c04 1 -CricketBowling/v_CricketBowling_g03_c01 22 -BlowDryHair/v_BlowDryHair_g05_c03 12 -FrontCrawl/v_FrontCrawl_g04_c03 31 -Nunchucks/v_Nunchucks_g04_c03 55 -TaiChi/v_TaiChi_g06_c01 90 -JumpRope/v_JumpRope_g01_c04 47 -BlowDryHair/v_BlowDryHair_g03_c04 12 -Mixing/v_Mixing_g05_c03 53 -GolfSwing/v_GolfSwing_g01_c04 32 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c06 73 -PlayingGuitar/v_PlayingGuitar_g04_c01 62 -Archery/v_Archery_g05_c03 2 -ThrowDiscus/v_ThrowDiscus_g04_c03 92 -ThrowDiscus/v_ThrowDiscus_g01_c02 92 -CricketShot/v_CricketShot_g02_c05 23 -CricketShot/v_CricketShot_g04_c02 23 -RopeClimbing/v_RopeClimbing_g06_c02 74 -Fencing/v_Fencing_g06_c02 27 -WritingOnBoard/v_WritingOnBoard_g05_c04 99 -WritingOnBoard/v_WritingOnBoard_g03_c01 99 -BandMarching/v_BandMarching_g04_c01 5 -Skijet/v_Skijet_g07_c02 81 -TableTennisShot/v_TableTennisShot_g03_c05 89 -TableTennisShot/v_TableTennisShot_g04_c02 89 -PlayingPiano/v_PlayingPiano_g01_c02 63 -Typing/v_Typing_g04_c03 94 -PlayingFlute/v_PlayingFlute_g07_c06 61 -Lunges/v_Lunges_g01_c07 51 -BenchPress/v_BenchPress_g05_c04 9 -Mixing/v_Mixing_g05_c01 53 -HammerThrow/v_HammerThrow_g02_c01 35 -Hammering/v_Hammering_g06_c02 34 -FrisbeeCatch/v_FrisbeeCatch_g07_c01 30 -Swing/v_Swing_g07_c01 88 -FloorGymnastics/v_FloorGymnastics_g02_c03 29 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c05 16 -GolfSwing/v_GolfSwing_g03_c05 32 -BabyCrawling/v_BabyCrawling_g05_c03 3 -TrampolineJumping/v_TrampolineJumping_g01_c02 93 -RopeClimbing/v_RopeClimbing_g07_c04 74 -Bowling/v_Bowling_g07_c02 15 -PushUps/v_PushUps_g02_c01 71 -PlayingGuitar/v_PlayingGuitar_g05_c02 62 -GolfSwing/v_GolfSwing_g04_c01 32 -Knitting/v_Knitting_g02_c03 49 -Kayaking/v_Kayaking_g06_c06 48 -Skijet/v_Skijet_g03_c04 81 -Nunchucks/v_Nunchucks_g05_c02 55 -Rafting/v_Rafting_g02_c02 72 -HorseRiding/v_HorseRiding_g01_c02 41 -CricketShot/v_CricketShot_g02_c06 23 -MilitaryParade/v_MilitaryParade_g01_c02 52 -SkyDiving/v_SkyDiving_g03_c02 82 -HandstandWalking/v_HandstandWalking_g05_c01 37 -HorseRace/v_HorseRace_g04_c06 40 -Biking/v_Biking_g05_c02 10 -HulaHoop/v_HulaHoop_g04_c05 42 -SoccerJuggling/v_SoccerJuggling_g06_c05 83 -WalkingWithDog/v_WalkingWithDog_g06_c04 97 -StillRings/v_StillRings_g04_c03 85 -HandstandPushups/v_HandStandPushups_g07_c04 36 -PommelHorse/v_PommelHorse_g07_c02 68 -Swing/v_Swing_g05_c03 88 -TaiChi/v_TaiChi_g02_c03 90 -PlayingViolin/v_PlayingViolin_g06_c04 66 -RockClimbingIndoor/v_RockClimbingIndoor_g04_c04 73 -Typing/v_Typing_g03_c06 94 -StillRings/v_StillRings_g03_c05 85 -Biking/v_Biking_g05_c05 10 -Shotput/v_Shotput_g04_c02 78 -YoYo/v_YoYo_g01_c03 100 -PlayingSitar/v_PlayingSitar_g01_c02 64 -JumpRope/v_JumpRope_g07_c05 47 -HandstandWalking/v_HandstandWalking_g06_c02 37 -ThrowDiscus/v_ThrowDiscus_g06_c06 92 -SkateBoarding/v_SkateBoarding_g04_c02 79 -Swing/v_Swing_g02_c04 88 -Lunges/v_Lunges_g06_c06 51 -PullUps/v_PullUps_g02_c04 69 -UnevenBars/v_UnevenBars_g04_c03 95 -FrisbeeCatch/v_FrisbeeCatch_g01_c01 30 -SkateBoarding/v_SkateBoarding_g03_c01 79 -GolfSwing/v_GolfSwing_g03_c01 32 -WritingOnBoard/v_WritingOnBoard_g07_c05 99 -Punch/v_Punch_g02_c04 70 -BrushingTeeth/v_BrushingTeeth_g07_c01 19 -PlayingFlute/v_PlayingFlute_g05_c01 61 -Skiing/v_Skiing_g06_c02 80 -YoYo/v_YoYo_g01_c02 100 -TennisSwing/v_TennisSwing_g03_c01 91 -RopeClimbing/v_RopeClimbing_g07_c05 74 -TennisSwing/v_TennisSwing_g03_c05 91 -Drumming/v_Drumming_g07_c04 26 -TableTennisShot/v_TableTennisShot_g05_c03 89 -JavelinThrow/v_JavelinThrow_g05_c06 44 -Lunges/v_Lunges_g05_c03 51 -PlayingGuitar/v_PlayingGuitar_g07_c06 62 -TrampolineJumping/v_TrampolineJumping_g05_c02 93 -BlowDryHair/v_BlowDryHair_g04_c04 12 -JavelinThrow/v_JavelinThrow_g01_c02 44 -Kayaking/v_Kayaking_g03_c01 48 -BenchPress/v_BenchPress_g05_c07 9 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c01 0 -Hammering/v_Hammering_g03_c04 34 -Biking/v_Biking_g05_c03 10 -Swing/v_Swing_g06_c04 88 -SkyDiving/v_SkyDiving_g03_c04 82 -RockClimbingIndoor/v_RockClimbingIndoor_g01_c01 73 -PlayingTabla/v_PlayingTabla_g06_c04 65 -ThrowDiscus/v_ThrowDiscus_g06_c04 92 -BlowingCandles/v_BlowingCandles_g03_c04 13 -CleanAndJerk/v_CleanAndJerk_g04_c03 20 -Bowling/v_Bowling_g04_c04 15 -PlayingTabla/v_PlayingTabla_g07_c03 65 -BandMarching/v_BandMarching_g02_c06 5 -WalkingWithDog/v_WalkingWithDog_g07_c03 97 -HighJump/v_HighJump_g06_c02 39 -CliffDiving/v_CliffDiving_g04_c03 21 -Archery/v_Archery_g02_c03 2 -BreastStroke/v_BreastStroke_g07_c03 18 -Shotput/v_Shotput_g06_c04 78 -ShavingBeard/v_ShavingBeard_g07_c06 77 -FrisbeeCatch/v_FrisbeeCatch_g01_c05 30 -PoleVault/v_PoleVault_g06_c01 67 -ApplyEyeMakeup/v_ApplyEyeMakeup_g02_c02 0 -PlayingTabla/v_PlayingTabla_g07_c01 65 -FrisbeeCatch/v_FrisbeeCatch_g06_c02 30 -HeadMassage/v_HeadMassage_g01_c05 38 -Haircut/v_Haircut_g05_c04 33 -GolfSwing/v_GolfSwing_g03_c02 32 -JumpRope/v_JumpRope_g04_c03 47 -HandstandWalking/v_HandstandWalking_g01_c02 37 -BenchPress/v_BenchPress_g05_c06 9 -PizzaTossing/v_PizzaTossing_g02_c03 57 -PlayingCello/v_PlayingCello_g01_c05 58 -FloorGymnastics/v_FloorGymnastics_g04_c02 29 -Basketball/v_Basketball_g07_c02 7 -BaseballPitch/v_BaseballPitch_g05_c01 6 -WalkingWithDog/v_WalkingWithDog_g03_c05 97 -Rowing/v_Rowing_g04_c04 75 -PlayingViolin/v_PlayingViolin_g02_c03 66 -HorseRiding/v_HorseRiding_g02_c02 41 -Diving/v_Diving_g02_c01 25 -RopeClimbing/v_RopeClimbing_g06_c01 74 -StillRings/v_StillRings_g01_c01 85 -PlayingCello/v_PlayingCello_g03_c03 58 -ApplyLipstick/v_ApplyLipstick_g04_c03 1 -JumpingJack/v_JumpingJack_g04_c04 46 -Shotput/v_Shotput_g03_c04 78 -MilitaryParade/v_MilitaryParade_g07_c04 52 -BrushingTeeth/v_BrushingTeeth_g07_c06 19 -Drumming/v_Drumming_g02_c03 26 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c05 0 -JumpingJack/v_JumpingJack_g07_c05 46 -HulaHoop/v_HulaHoop_g01_c02 42 -Swing/v_Swing_g01_c04 88 -SoccerJuggling/v_SoccerJuggling_g03_c02 83 -CliffDiving/v_CliffDiving_g05_c06 21 -Shotput/v_Shotput_g04_c04 78 -CricketShot/v_CricketShot_g06_c03 23 -JumpingJack/v_JumpingJack_g03_c04 46 -Rowing/v_Rowing_g01_c02 75 -Punch/v_Punch_g07_c02 70 -SkateBoarding/v_SkateBoarding_g02_c04 79 -PlayingPiano/v_PlayingPiano_g05_c03 63 -BasketballDunk/v_BasketballDunk_g04_c01 8 -SumoWrestling/v_SumoWrestling_g07_c01 86 -WalkingWithDog/v_WalkingWithDog_g03_c01 97 -Typing/v_Typing_g01_c03 94 -PlayingDaf/v_PlayingDaf_g05_c07 59 -BodyWeightSquats/v_BodyWeightSquats_g06_c03 14 -JugglingBalls/v_JugglingBalls_g02_c04 45 -UnevenBars/v_UnevenBars_g01_c04 95 -PlayingFlute/v_PlayingFlute_g07_c05 61 -Rowing/v_Rowing_g01_c04 75 -TrampolineJumping/v_TrampolineJumping_g01_c01 93 -SoccerPenalty/v_SoccerPenalty_g03_c03 84 -PizzaTossing/v_PizzaTossing_g04_c06 57 -WallPushups/v_WallPushups_g05_c02 98 -PlayingSitar/v_PlayingSitar_g06_c03 64 -MoppingFloor/v_MoppingFloor_g05_c03 54 -Nunchucks/v_Nunchucks_g07_c04 55 -Diving/v_Diving_g03_c04 25 -SalsaSpin/v_SalsaSpin_g07_c05 76 -HulaHoop/v_HulaHoop_g05_c04 42 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c05 0 -Drumming/v_Drumming_g07_c02 26 -BabyCrawling/v_BabyCrawling_g01_c03 3 -BalanceBeam/v_BalanceBeam_g01_c01 4 -PlayingSitar/v_PlayingSitar_g07_c06 64 -PommelHorse/v_PommelHorse_g01_c04 68 -BreastStroke/v_BreastStroke_g02_c04 18 -BreastStroke/v_BreastStroke_g03_c03 18 -HighJump/v_HighJump_g03_c02 39 -LongJump/v_LongJump_g01_c06 50 -Skijet/v_Skijet_g02_c03 81 -BoxingSpeedBag/v_BoxingSpeedBag_g02_c03 17 -RopeClimbing/v_RopeClimbing_g04_c03 74 -Bowling/v_Bowling_g03_c03 15 -CricketShot/v_CricketShot_g04_c04 23 -HeadMassage/v_HeadMassage_g07_c01 38 -PlayingTabla/v_PlayingTabla_g04_c03 65 -CuttingInKitchen/v_CuttingInKitchen_g03_c03 24 -BandMarching/v_BandMarching_g02_c05 5 -Hammering/v_Hammering_g06_c03 34 -BandMarching/v_BandMarching_g03_c07 5 -JumpRope/v_JumpRope_g02_c04 47 -MilitaryParade/v_MilitaryParade_g07_c02 52 -CleanAndJerk/v_CleanAndJerk_g02_c01 20 -Hammering/v_Hammering_g05_c01 34 -CliffDiving/v_CliffDiving_g07_c01 21 -Billiards/v_Billiards_g05_c06 11 -PlayingGuitar/v_PlayingGuitar_g01_c05 62 -BandMarching/v_BandMarching_g07_c01 5 -Punch/v_Punch_g01_c04 70 -PlayingDhol/v_PlayingDhol_g04_c03 60 -LongJump/v_LongJump_g02_c02 50 -Mixing/v_Mixing_g01_c04 53 -JavelinThrow/v_JavelinThrow_g04_c04 44 -BenchPress/v_BenchPress_g01_c01 9 -Skiing/v_Skiing_g04_c03 80 -WalkingWithDog/v_WalkingWithDog_g05_c04 97 -Kayaking/v_Kayaking_g07_c04 48 -Punch/v_Punch_g03_c04 70 -PlayingGuitar/v_PlayingGuitar_g03_c04 62 -HandstandPushups/v_HandStandPushups_g03_c01 36 -BaseballPitch/v_BaseballPitch_g04_c01 6 -BenchPress/v_BenchPress_g02_c01 9 -BabyCrawling/v_BabyCrawling_g06_c04 3 -MilitaryParade/v_MilitaryParade_g02_c03 52 -CliffDiving/v_CliffDiving_g06_c01 21 -CricketBowling/v_CricketBowling_g02_c04 22 -BalanceBeam/v_BalanceBeam_g05_c01 4 -PommelHorse/v_PommelHorse_g07_c07 68 -BasketballDunk/v_BasketballDunk_g07_c04 8 -Archery/v_Archery_g05_c02 2 -JugglingBalls/v_JugglingBalls_g07_c02 45 -Fencing/v_Fencing_g07_c02 27 -HammerThrow/v_HammerThrow_g05_c02 35 -PoleVault/v_PoleVault_g02_c07 67 -BandMarching/v_BandMarching_g04_c02 5 -Kayaking/v_Kayaking_g06_c03 48 -BaseballPitch/v_BaseballPitch_g04_c05 6 -Swing/v_Swing_g06_c05 88 -TennisSwing/v_TennisSwing_g07_c07 91 -IceDancing/v_IceDancing_g06_c03 43 -Biking/v_Biking_g07_c01 10 -PizzaTossing/v_PizzaTossing_g04_c02 57 -HeadMassage/v_HeadMassage_g05_c03 38 -GolfSwing/v_GolfSwing_g05_c05 32 -GolfSwing/v_GolfSwing_g05_c03 32 -PullUps/v_PullUps_g07_c04 69 -UnevenBars/v_UnevenBars_g07_c03 95 -HandstandPushups/v_HandStandPushups_g07_c02 36 -PushUps/v_PushUps_g05_c03 71 -ThrowDiscus/v_ThrowDiscus_g06_c01 92 -Knitting/v_Knitting_g05_c03 49 -SoccerPenalty/v_SoccerPenalty_g04_c02 84 -Kayaking/v_Kayaking_g04_c02 48 -Rowing/v_Rowing_g03_c06 75 -ShavingBeard/v_ShavingBeard_g05_c02 77 -BlowingCandles/v_BlowingCandles_g03_c02 13 -Rafting/v_Rafting_g07_c04 72 -HeadMassage/v_HeadMassage_g06_c04 38 -JavelinThrow/v_JavelinThrow_g01_c01 44 -SalsaSpin/v_SalsaSpin_g01_c01 76 -PlayingCello/v_PlayingCello_g01_c04 58 -PlayingCello/v_PlayingCello_g04_c06 58 -PullUps/v_PullUps_g06_c02 69 -HighJump/v_HighJump_g04_c01 39 -FloorGymnastics/v_FloorGymnastics_g06_c03 29 -SoccerPenalty/v_SoccerPenalty_g02_c02 84 -Swing/v_Swing_g03_c03 88 -PoleVault/v_PoleVault_g01_c05 67 -BlowDryHair/v_BlowDryHair_g07_c04 12 -JumpRope/v_JumpRope_g06_c01 47 -HighJump/v_HighJump_g04_c04 39 -BabyCrawling/v_BabyCrawling_g02_c04 3 -Skiing/v_Skiing_g05_c01 80 -PlayingFlute/v_PlayingFlute_g02_c05 61 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c07 28 -Skiing/v_Skiing_g04_c07 80 -MilitaryParade/v_MilitaryParade_g07_c06 52 -PlayingPiano/v_PlayingPiano_g07_c04 63 -HulaHoop/v_HulaHoop_g01_c06 42 -Typing/v_Typing_g06_c01 94 -HammerThrow/v_HammerThrow_g02_c07 35 -JavelinThrow/v_JavelinThrow_g04_c02 44 -SumoWrestling/v_SumoWrestling_g07_c03 86 -PushUps/v_PushUps_g01_c03 71 -BreastStroke/v_BreastStroke_g01_c04 18 -PoleVault/v_PoleVault_g03_c01 67 -Mixing/v_Mixing_g03_c04 53 -Surfing/v_Surfing_g02_c01 87 -HorseRiding/v_HorseRiding_g04_c04 41 -TrampolineJumping/v_TrampolineJumping_g06_c03 93 -ShavingBeard/v_ShavingBeard_g02_c06 77 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c01 28 -Skijet/v_Skijet_g05_c01 81 -Archery/v_Archery_g07_c03 2 -Skiing/v_Skiing_g03_c04 80 -BandMarching/v_BandMarching_g01_c03 5 -BaseballPitch/v_BaseballPitch_g02_c02 6 -ThrowDiscus/v_ThrowDiscus_g02_c04 92 -FrontCrawl/v_FrontCrawl_g03_c01 31 -CricketShot/v_CricketShot_g04_c06 23 -Diving/v_Diving_g04_c03 25 -BrushingTeeth/v_BrushingTeeth_g04_c03 19 -Bowling/v_Bowling_g01_c01 15 -ThrowDiscus/v_ThrowDiscus_g05_c05 92 -BlowingCandles/v_BlowingCandles_g07_c04 13 -SoccerJuggling/v_SoccerJuggling_g02_c05 83 -TennisSwing/v_TennisSwing_g02_c05 91 -BenchPress/v_BenchPress_g04_c02 9 -Skijet/v_Skijet_g03_c02 81 -PlayingSitar/v_PlayingSitar_g02_c03 64 -Rowing/v_Rowing_g02_c03 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c01 0 -Hammering/v_Hammering_g01_c03 34 -Kayaking/v_Kayaking_g03_c03 48 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c02 16 -HandstandPushups/v_HandStandPushups_g01_c01 36 -FrontCrawl/v_FrontCrawl_g07_c04 31 -ApplyEyeMakeup/v_ApplyEyeMakeup_g02_c03 0 -PlayingTabla/v_PlayingTabla_g03_c03 65 -Archery/v_Archery_g03_c04 2 -Archery/v_Archery_g01_c01 2 -FrontCrawl/v_FrontCrawl_g07_c03 31 -PlayingGuitar/v_PlayingGuitar_g03_c03 62 -HulaHoop/v_HulaHoop_g03_c02 42 -IceDancing/v_IceDancing_g04_c05 43 -FieldHockeyPenalty/v_FieldHockeyPenalty_g01_c02 28 -Lunges/v_Lunges_g05_c04 51 -JumpingJack/v_JumpingJack_g05_c06 46 -TennisSwing/v_TennisSwing_g05_c05 91 -PlayingCello/v_PlayingCello_g04_c03 58 -Drumming/v_Drumming_g03_c01 26 -JumpingJack/v_JumpingJack_g07_c04 46 -Skijet/v_Skijet_g04_c03 81 -JumpRope/v_JumpRope_g04_c06 47 -Nunchucks/v_Nunchucks_g04_c04 55 -HandstandWalking/v_HandstandWalking_g05_c07 37 -PlayingDhol/v_PlayingDhol_g01_c05 60 -PlayingSitar/v_PlayingSitar_g05_c03 64 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c02 73 -Surfing/v_Surfing_g04_c01 87 -FrisbeeCatch/v_FrisbeeCatch_g02_c04 30 -BlowingCandles/v_BlowingCandles_g06_c05 13 -BandMarching/v_BandMarching_g01_c02 5 -JumpRope/v_JumpRope_g04_c05 47 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c02 16 -PlayingSitar/v_PlayingSitar_g05_c07 64 -SumoWrestling/v_SumoWrestling_g04_c02 86 -WritingOnBoard/v_WritingOnBoard_g06_c07 99 -BalanceBeam/v_BalanceBeam_g03_c04 4 -Kayaking/v_Kayaking_g01_c03 48 -Archery/v_Archery_g03_c05 2 -JumpRope/v_JumpRope_g07_c04 47 -Bowling/v_Bowling_g06_c05 15 -Typing/v_Typing_g03_c03 94 -RockClimbingIndoor/v_RockClimbingIndoor_g04_c01 73 -Lunges/v_Lunges_g06_c01 51 -TennisSwing/v_TennisSwing_g03_c03 91 -BlowDryHair/v_BlowDryHair_g04_c05 12 -Archery/v_Archery_g05_c01 2 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c04 16 -PlayingDhol/v_PlayingDhol_g02_c02 60 -FrontCrawl/v_FrontCrawl_g03_c06 31 -PoleVault/v_PoleVault_g07_c02 67 -BrushingTeeth/v_BrushingTeeth_g04_c04 19 -WalkingWithDog/v_WalkingWithDog_g05_c05 97 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c07 73 -PushUps/v_PushUps_g04_c03 71 -PushUps/v_PushUps_g05_c01 71 -PlayingCello/v_PlayingCello_g06_c03 58 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c02 73 -BandMarching/v_BandMarching_g01_c06 5 -Typing/v_Typing_g06_c05 94 -Billiards/v_Billiards_g04_c06 11 -BaseballPitch/v_BaseballPitch_g06_c05 6 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c03 17 -Haircut/v_Haircut_g02_c04 33 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c04 73 -PlayingDhol/v_PlayingDhol_g03_c01 60 -VolleyballSpiking/v_VolleyballSpiking_g07_c06 96 -Bowling/v_Bowling_g02_c01 15 -Haircut/v_Haircut_g01_c04 33 -MoppingFloor/v_MoppingFloor_g05_c04 54 -Fencing/v_Fencing_g02_c04 27 -SoccerJuggling/v_SoccerJuggling_g05_c04 83 -BrushingTeeth/v_BrushingTeeth_g07_c05 19 -SkyDiving/v_SkyDiving_g06_c01 82 -Hammering/v_Hammering_g07_c05 34 -BalanceBeam/v_BalanceBeam_g02_c01 4 -JumpRope/v_JumpRope_g07_c06 47 -HighJump/v_HighJump_g01_c03 39 -Shotput/v_Shotput_g01_c02 78 -Drumming/v_Drumming_g02_c07 26 -HorseRace/v_HorseRace_g05_c04 40 -BrushingTeeth/v_BrushingTeeth_g05_c01 19 -Lunges/v_Lunges_g07_c03 51 -BodyWeightSquats/v_BodyWeightSquats_g05_c03 14 -WallPushups/v_WallPushups_g04_c03 98 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c01 16 -Bowling/v_Bowling_g01_c03 15 -IceDancing/v_IceDancing_g01_c02 43 -Diving/v_Diving_g01_c02 25 -CuttingInKitchen/v_CuttingInKitchen_g07_c03 24 -SoccerJuggling/v_SoccerJuggling_g03_c03 83 -SkyDiving/v_SkyDiving_g01_c04 82 -CleanAndJerk/v_CleanAndJerk_g02_c04 20 -HeadMassage/v_HeadMassage_g02_c03 38 -HandstandWalking/v_HandstandWalking_g05_c02 37 -VolleyballSpiking/v_VolleyballSpiking_g05_c01 96 -Knitting/v_Knitting_g07_c01 49 -FrisbeeCatch/v_FrisbeeCatch_g01_c02 30 -Lunges/v_Lunges_g01_c05 51 -BoxingSpeedBag/v_BoxingSpeedBag_g05_c03 17 -JugglingBalls/v_JugglingBalls_g06_c06 45 -PlayingDaf/v_PlayingDaf_g02_c03 59 -JugglingBalls/v_JugglingBalls_g04_c03 45 -YoYo/v_YoYo_g06_c04 100 -CuttingInKitchen/v_CuttingInKitchen_g06_c04 24 -ThrowDiscus/v_ThrowDiscus_g07_c04 92 -MoppingFloor/v_MoppingFloor_g02_c04 54 -PlayingGuitar/v_PlayingGuitar_g01_c02 62 -PoleVault/v_PoleVault_g05_c03 67 -PoleVault/v_PoleVault_g04_c03 67 -Bowling/v_Bowling_g05_c03 15 -VolleyballSpiking/v_VolleyballSpiking_g01_c03 96 -Haircut/v_Haircut_g04_c01 33 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c04 0 -ShavingBeard/v_ShavingBeard_g06_c02 77 -SkateBoarding/v_SkateBoarding_g05_c03 79 -BrushingTeeth/v_BrushingTeeth_g05_c03 19 -ApplyLipstick/v_ApplyLipstick_g02_c04 1 -Drumming/v_Drumming_g01_c07 26 -Rowing/v_Rowing_g01_c01 75 -SumoWrestling/v_SumoWrestling_g05_c01 86 -TableTennisShot/v_TableTennisShot_g06_c01 89 -CleanAndJerk/v_CleanAndJerk_g03_c01 20 -Kayaking/v_Kayaking_g04_c01 48 -RockClimbingIndoor/v_RockClimbingIndoor_g02_c01 73 -Punch/v_Punch_g02_c03 70 -ParallelBars/v_ParallelBars_g05_c03 56 -Skiing/v_Skiing_g06_c04 80 -HorseRiding/v_HorseRiding_g06_c06 41 -PizzaTossing/v_PizzaTossing_g04_c07 57 -Billiards/v_Billiards_g06_c05 11 -HorseRiding/v_HorseRiding_g07_c06 41 -Bowling/v_Bowling_g03_c06 15 -PlayingFlute/v_PlayingFlute_g05_c05 61 -Skijet/v_Skijet_g07_c03 81 -Hammering/v_Hammering_g07_c02 34 -CleanAndJerk/v_CleanAndJerk_g03_c05 20 -StillRings/v_StillRings_g07_c01 85 -WritingOnBoard/v_WritingOnBoard_g03_c05 99 -HeadMassage/v_HeadMassage_g01_c03 38 -IceDancing/v_IceDancing_g01_c04 43 -StillRings/v_StillRings_g06_c02 85 -PlayingFlute/v_PlayingFlute_g02_c06 61 -SalsaSpin/v_SalsaSpin_g05_c02 76 -HighJump/v_HighJump_g07_c04 39 -ThrowDiscus/v_ThrowDiscus_g06_c02 92 -BlowingCandles/v_BlowingCandles_g02_c02 13 -Diving/v_Diving_g05_c05 25 -MoppingFloor/v_MoppingFloor_g04_c01 54 -Biking/v_Biking_g04_c04 10 -RopeClimbing/v_RopeClimbing_g07_c02 74 -FrontCrawl/v_FrontCrawl_g04_c01 31 -CliffDiving/v_CliffDiving_g01_c04 21 -Billiards/v_Billiards_g04_c02 11 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c04 73 -SkateBoarding/v_SkateBoarding_g03_c02 79 -HighJump/v_HighJump_g07_c02 39 -BaseballPitch/v_BaseballPitch_g04_c04 6 -HammerThrow/v_HammerThrow_g03_c01 35 -Mixing/v_Mixing_g01_c03 53 -PlayingCello/v_PlayingCello_g04_c05 58 -Drumming/v_Drumming_g05_c05 26 -PlayingCello/v_PlayingCello_g03_c01 58 -PlayingDaf/v_PlayingDaf_g05_c01 59 -BoxingSpeedBag/v_BoxingSpeedBag_g05_c02 17 -Lunges/v_Lunges_g01_c03 51 -Rowing/v_Rowing_g06_c04 75 -JavelinThrow/v_JavelinThrow_g07_c03 44 -Haircut/v_Haircut_g05_c02 33 -Drumming/v_Drumming_g07_c05 26 -SoccerJuggling/v_SoccerJuggling_g05_c03 83 -BrushingTeeth/v_BrushingTeeth_g06_c04 19 -HeadMassage/v_HeadMassage_g03_c01 38 -PlayingFlute/v_PlayingFlute_g03_c04 61 -Mixing/v_Mixing_g01_c02 53 -PlayingFlute/v_PlayingFlute_g07_c01 61 -HandstandPushups/v_HandStandPushups_g05_c02 36 -HorseRiding/v_HorseRiding_g04_c06 41 -VolleyballSpiking/v_VolleyballSpiking_g03_c01 96 -PlayingDaf/v_PlayingDaf_g06_c05 59 -Swing/v_Swing_g01_c02 88 -Rafting/v_Rafting_g03_c01 72 -ThrowDiscus/v_ThrowDiscus_g01_c04 92 -UnevenBars/v_UnevenBars_g03_c04 95 -PlayingCello/v_PlayingCello_g06_c05 58 -TennisSwing/v_TennisSwing_g06_c02 91 -HighJump/v_HighJump_g02_c03 39 -PlayingTabla/v_PlayingTabla_g03_c02 65 -TrampolineJumping/v_TrampolineJumping_g06_c01 93 -ApplyEyeMakeup/v_ApplyEyeMakeup_g04_c03 0 -HighJump/v_HighJump_g07_c06 39 -WalkingWithDog/v_WalkingWithDog_g04_c03 97 -PlayingSitar/v_PlayingSitar_g04_c05 64 -HandstandPushups/v_HandStandPushups_g03_c04 36 -CricketShot/v_CricketShot_g06_c07 23 -Swing/v_Swing_g05_c06 88 -TaiChi/v_TaiChi_g03_c03 90 -Basketball/v_Basketball_g01_c05 7 -ShavingBeard/v_ShavingBeard_g06_c06 77 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c03 16 -Basketball/v_Basketball_g02_c04 7 -ParallelBars/v_ParallelBars_g05_c02 56 -JavelinThrow/v_JavelinThrow_g02_c01 44 -WalkingWithDog/v_WalkingWithDog_g05_c01 97 -PlayingDhol/v_PlayingDhol_g03_c05 60 -PlayingPiano/v_PlayingPiano_g06_c04 63 -Shotput/v_Shotput_g04_c03 78 -CleanAndJerk/v_CleanAndJerk_g07_c04 20 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01 0 -MoppingFloor/v_MoppingFloor_g03_c01 54 -FrontCrawl/v_FrontCrawl_g01_c04 31 -WallPushups/v_WallPushups_g05_c03 98 -Archery/v_Archery_g03_c03 2 -HorseRiding/v_HorseRiding_g06_c03 41 -VolleyballSpiking/v_VolleyballSpiking_g02_c04 96 -WritingOnBoard/v_WritingOnBoard_g02_c07 99 -Mixing/v_Mixing_g04_c01 53 -PoleVault/v_PoleVault_g03_c06 67 -BoxingSpeedBag/v_BoxingSpeedBag_g04_c05 17 -Drumming/v_Drumming_g06_c02 26 -JavelinThrow/v_JavelinThrow_g03_c03 44 -BasketballDunk/v_BasketballDunk_g01_c03 8 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c02 28 -TaiChi/v_TaiChi_g07_c01 90 -BrushingTeeth/v_BrushingTeeth_g03_c02 19 -Punch/v_Punch_g06_c06 70 -HulaHoop/v_HulaHoop_g07_c01 42 -CricketShot/v_CricketShot_g01_c07 23 -ShavingBeard/v_ShavingBeard_g01_c01 77 -Shotput/v_Shotput_g07_c07 78 -GolfSwing/v_GolfSwing_g03_c06 32 -HorseRace/v_HorseRace_g02_c02 40 -BalanceBeam/v_BalanceBeam_g05_c03 4 -CliffDiving/v_CliffDiving_g01_c01 21 -Basketball/v_Basketball_g06_c02 7 -HighJump/v_HighJump_g02_c01 39 -CuttingInKitchen/v_CuttingInKitchen_g06_c03 24 -Billiards/v_Billiards_g06_c03 11 -Surfing/v_Surfing_g01_c02 87 -TennisSwing/v_TennisSwing_g03_c07 91 -FieldHockeyPenalty/v_FieldHockeyPenalty_g07_c01 28 -CricketBowling/v_CricketBowling_g04_c04 22 -Shotput/v_Shotput_g03_c03 78 -CricketShot/v_CricketShot_g03_c06 23 -PommelHorse/v_PommelHorse_g02_c03 68 -HighJump/v_HighJump_g04_c05 39 -RopeClimbing/v_RopeClimbing_g01_c04 74 -PizzaTossing/v_PizzaTossing_g06_c04 57 -JumpRope/v_JumpRope_g01_c02 47 -YoYo/v_YoYo_g04_c04 100 -PlayingCello/v_PlayingCello_g07_c02 58 -HighJump/v_HighJump_g04_c03 39 -Shotput/v_Shotput_g01_c06 78 -WalkingWithDog/v_WalkingWithDog_g02_c01 97 -PlayingDaf/v_PlayingDaf_g02_c04 59 -FrisbeeCatch/v_FrisbeeCatch_g05_c03 30 -PommelHorse/v_PommelHorse_g04_c02 68 -CricketShot/v_CricketShot_g05_c03 23 -Basketball/v_Basketball_g04_c01 7 -PullUps/v_PullUps_g04_c01 69 -WritingOnBoard/v_WritingOnBoard_g01_c01 99 -PlayingFlute/v_PlayingFlute_g01_c07 61 -PoleVault/v_PoleVault_g02_c02 67 -CricketShot/v_CricketShot_g03_c02 23 -Diving/v_Diving_g04_c04 25 -SumoWrestling/v_SumoWrestling_g06_c05 86 -SumoWrestling/v_SumoWrestling_g05_c04 86 -HorseRace/v_HorseRace_g03_c05 40 -ApplyLipstick/v_ApplyLipstick_g03_c04 1 -Billiards/v_Billiards_g02_c03 11 -SoccerPenalty/v_SoccerPenalty_g04_c03 84 -TennisSwing/v_TennisSwing_g07_c04 91 -TrampolineJumping/v_TrampolineJumping_g06_c04 93 -BasketballDunk/v_BasketballDunk_g05_c05 8 -Lunges/v_Lunges_g05_c01 51 -Billiards/v_Billiards_g03_c04 11 -CricketBowling/v_CricketBowling_g01_c02 22 -VolleyballSpiking/v_VolleyballSpiking_g06_c04 96 -Basketball/v_Basketball_g01_c06 7 -PlayingDhol/v_PlayingDhol_g02_c05 60 -TrampolineJumping/v_TrampolineJumping_g06_c02 93 -TrampolineJumping/v_TrampolineJumping_g03_c02 93 -PlayingPiano/v_PlayingPiano_g04_c01 63 -Rafting/v_Rafting_g01_c03 72 -Archery/v_Archery_g06_c02 2 -ShavingBeard/v_ShavingBeard_g07_c04 77 -BasketballDunk/v_BasketballDunk_g06_c01 8 -BlowDryHair/v_BlowDryHair_g07_c06 12 -Surfing/v_Surfing_g02_c02 87 -BasketballDunk/v_BasketballDunk_g01_c01 8 -IceDancing/v_IceDancing_g05_c04 43 -PlayingDhol/v_PlayingDhol_g01_c06 60 -Fencing/v_Fencing_g01_c04 27 -PizzaTossing/v_PizzaTossing_g06_c01 57 -UnevenBars/v_UnevenBars_g06_c03 95 -FrontCrawl/v_FrontCrawl_g05_c01 31 -TrampolineJumping/v_TrampolineJumping_g05_c03 93 -SkyDiving/v_SkyDiving_g02_c03 82 -PushUps/v_PushUps_g06_c03 71 -Hammering/v_Hammering_g06_c01 34 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c07 0 -MilitaryParade/v_MilitaryParade_g01_c03 52 -HorseRiding/v_HorseRiding_g03_c03 41 -PlayingGuitar/v_PlayingGuitar_g03_c06 62 -PizzaTossing/v_PizzaTossing_g03_c02 57 -SoccerJuggling/v_SoccerJuggling_g06_c03 83 -BlowingCandles/v_BlowingCandles_g05_c02 13 -ShavingBeard/v_ShavingBeard_g04_c02 77 -MoppingFloor/v_MoppingFloor_g02_c06 54 -PizzaTossing/v_PizzaTossing_g04_c04 57 -StillRings/v_StillRings_g07_c03 85 -SoccerPenalty/v_SoccerPenalty_g06_c01 84 -Haircut/v_Haircut_g06_c03 33 -BalanceBeam/v_BalanceBeam_g01_c04 4 -SkyDiving/v_SkyDiving_g05_c01 82 -Archery/v_Archery_g04_c01 2 -VolleyballSpiking/v_VolleyballSpiking_g04_c06 96 -RopeClimbing/v_RopeClimbing_g02_c06 74 -Bowling/v_Bowling_g07_c04 15 -MoppingFloor/v_MoppingFloor_g03_c03 54 -TennisSwing/v_TennisSwing_g01_c01 91 -Typing/v_Typing_g05_c06 94 -BasketballDunk/v_BasketballDunk_g03_c01 8 -FloorGymnastics/v_FloorGymnastics_g05_c01 29 -SumoWrestling/v_SumoWrestling_g07_c04 86 -Rowing/v_Rowing_g07_c04 75 -VolleyballSpiking/v_VolleyballSpiking_g07_c02 96 -MilitaryParade/v_MilitaryParade_g06_c02 52 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c01 28 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c06 0 -Fencing/v_Fencing_g04_c03 27 -PullUps/v_PullUps_g07_c01 69 -UnevenBars/v_UnevenBars_g05_c02 95 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c01 17 -TennisSwing/v_TennisSwing_g07_c05 91 -ApplyLipstick/v_ApplyLipstick_g07_c01 1 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c03 0 -JugglingBalls/v_JugglingBalls_g02_c02 45 -BrushingTeeth/v_BrushingTeeth_g02_c06 19 -HighJump/v_HighJump_g01_c02 39 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c06 0 -Hammering/v_Hammering_g04_c02 34 -CleanAndJerk/v_CleanAndJerk_g05_c04 20 -WallPushups/v_WallPushups_g06_c03 98 -SkateBoarding/v_SkateBoarding_g05_c04 79 -BrushingTeeth/v_BrushingTeeth_g04_c02 19 -Archery/v_Archery_g06_c04 2 -SumoWrestling/v_SumoWrestling_g04_c01 86 -WritingOnBoard/v_WritingOnBoard_g06_c06 99 -BoxingSpeedBag/v_BoxingSpeedBag_g07_c05 17 -Drumming/v_Drumming_g04_c06 26 -HandstandPushups/v_HandStandPushups_g03_c03 36 -Skiing/v_Skiing_g01_c05 80 -Shotput/v_Shotput_g02_c03 78 -BasketballDunk/v_BasketballDunk_g07_c03 8 -BreastStroke/v_BreastStroke_g04_c03 18 -Rafting/v_Rafting_g04_c01 72 -PlayingTabla/v_PlayingTabla_g06_c03 65 -MilitaryParade/v_MilitaryParade_g05_c01 52 -PizzaTossing/v_PizzaTossing_g05_c04 57 -Surfing/v_Surfing_g05_c01 87 -PushUps/v_PushUps_g04_c04 71 -Skiing/v_Skiing_g07_c02 80 -Skijet/v_Skijet_g06_c01 81 -PlayingCello/v_PlayingCello_g06_c04 58 -HeadMassage/v_HeadMassage_g07_c02 38 -ApplyEyeMakeup/v_ApplyEyeMakeup_g02_c04 0 -Skiing/v_Skiing_g02_c05 80 -CliffDiving/v_CliffDiving_g06_c06 21 -BalanceBeam/v_BalanceBeam_g05_c02 4 -Archery/v_Archery_g01_c04 2 -BalanceBeam/v_BalanceBeam_g06_c05 4 -PlayingDaf/v_PlayingDaf_g07_c02 59 -HighJump/v_HighJump_g01_c05 39 -SumoWrestling/v_SumoWrestling_g06_c04 86 -Haircut/v_Haircut_g03_c01 33 -Shotput/v_Shotput_g06_c05 78 -Archery/v_Archery_g02_c01 2 -Lunges/v_Lunges_g02_c04 51 -WritingOnBoard/v_WritingOnBoard_g01_c03 99 -HammerThrow/v_HammerThrow_g05_c01 35 -Diving/v_Diving_g05_c03 25 -BasketballDunk/v_BasketballDunk_g03_c05 8 -Drumming/v_Drumming_g06_c05 26 -Swing/v_Swing_g04_c04 88 -BabyCrawling/v_BabyCrawling_g06_c03 3 -IceDancing/v_IceDancing_g04_c06 43 -PommelHorse/v_PommelHorse_g02_c01 68 -JumpRope/v_JumpRope_g05_c04 47 -BodyWeightSquats/v_BodyWeightSquats_g04_c01 14 -TableTennisShot/v_TableTennisShot_g01_c05 89 -PlayingDaf/v_PlayingDaf_g04_c04 59 -SkyDiving/v_SkyDiving_g02_c04 82 -Diving/v_Diving_g03_c03 25 -BabyCrawling/v_BabyCrawling_g01_c04 3 -PlayingViolin/v_PlayingViolin_g03_c04 66 -Haircut/v_Haircut_g03_c04 33 -RopeClimbing/v_RopeClimbing_g05_c02 74 -BenchPress/v_BenchPress_g05_c03 9 -PushUps/v_PushUps_g07_c01 71 -CliffDiving/v_CliffDiving_g05_c04 21 -ShavingBeard/v_ShavingBeard_g02_c03 77 -Knitting/v_Knitting_g02_c05 49 -FloorGymnastics/v_FloorGymnastics_g07_c02 29 -HammerThrow/v_HammerThrow_g02_c04 35 -CuttingInKitchen/v_CuttingInKitchen_g07_c02 24 -FrisbeeCatch/v_FrisbeeCatch_g05_c02 30 -WritingOnBoard/v_WritingOnBoard_g03_c03 99 -BabyCrawling/v_BabyCrawling_g05_c04 3 -BenchPress/v_BenchPress_g03_c06 9 -PlayingFlute/v_PlayingFlute_g02_c03 61 -Drumming/v_Drumming_g06_c01 26 -Bowling/v_Bowling_g05_c01 15 -YoYo/v_YoYo_g02_c01 100 -TennisSwing/v_TennisSwing_g06_c03 91 -HorseRiding/v_HorseRiding_g04_c05 41 -PommelHorse/v_PommelHorse_g07_c05 68 -PlayingFlute/v_PlayingFlute_g06_c02 61 -VolleyballSpiking/v_VolleyballSpiking_g04_c02 96 -BandMarching/v_BandMarching_g05_c03 5 -BenchPress/v_BenchPress_g01_c05 9 -TennisSwing/v_TennisSwing_g06_c05 91 -IceDancing/v_IceDancing_g02_c05 43 -Punch/v_Punch_g04_c05 70 -PushUps/v_PushUps_g02_c02 71 -JumpingJack/v_JumpingJack_g05_c01 46 -PullUps/v_PullUps_g01_c02 69 -GolfSwing/v_GolfSwing_g01_c02 32 -Surfing/v_Surfing_g01_c04 87 -PlayingFlute/v_PlayingFlute_g06_c03 61 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c03 28 -PlayingCello/v_PlayingCello_g01_c01 58 -HorseRace/v_HorseRace_g02_c01 40 -BalanceBeam/v_BalanceBeam_g04_c01 4 -BasketballDunk/v_BasketballDunk_g01_c04 8 -HandstandWalking/v_HandstandWalking_g05_c05 37 -PlayingDhol/v_PlayingDhol_g07_c05 60 -BasketballDunk/v_BasketballDunk_g05_c02 8 -CricketBowling/v_CricketBowling_g06_c05 22 -Basketball/v_Basketball_g07_c03 7 -PullUps/v_PullUps_g03_c01 69 -Billiards/v_Billiards_g01_c03 11 -Knitting/v_Knitting_g02_c04 49 -IceDancing/v_IceDancing_g07_c01 43 -PushUps/v_PushUps_g02_c04 71 -Diving/v_Diving_g06_c05 25 -TaiChi/v_TaiChi_g05_c01 90 -MilitaryParade/v_MilitaryParade_g05_c02 52 -Rafting/v_Rafting_g04_c04 72 -BlowDryHair/v_BlowDryHair_g06_c02 12 -Basketball/v_Basketball_g01_c03 7 -Shotput/v_Shotput_g01_c03 78 -TaiChi/v_TaiChi_g06_c04 90 -Archery/v_Archery_g06_c03 2 -Kayaking/v_Kayaking_g01_c04 48 -ThrowDiscus/v_ThrowDiscus_g05_c04 92 -HulaHoop/v_HulaHoop_g01_c07 42 -Drumming/v_Drumming_g04_c07 26 -CuttingInKitchen/v_CuttingInKitchen_g07_c01 24 -Skiing/v_Skiing_g05_c04 80 -WritingOnBoard/v_WritingOnBoard_g01_c07 99 -Skijet/v_Skijet_g01_c04 81 -TableTennisShot/v_TableTennisShot_g02_c02 89 -Fencing/v_Fencing_g06_c03 27 -JumpingJack/v_JumpingJack_g01_c03 46 -SkyDiving/v_SkyDiving_g07_c02 82 -FieldHockeyPenalty/v_FieldHockeyPenalty_g03_c02 28 -Surfing/v_Surfing_g02_c06 87 -Nunchucks/v_Nunchucks_g07_c01 55 -BalanceBeam/v_BalanceBeam_g05_c04 4 -Nunchucks/v_Nunchucks_g04_c02 55 -BalanceBeam/v_BalanceBeam_g06_c06 4 -Biking/v_Biking_g05_c06 10 -PommelHorse/v_PommelHorse_g06_c02 68 -Surfing/v_Surfing_g03_c01 87 -FloorGymnastics/v_FloorGymnastics_g07_c03 29 -ShavingBeard/v_ShavingBeard_g07_c02 77 -PlayingPiano/v_PlayingPiano_g07_c02 63 -Mixing/v_Mixing_g06_c03 53 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c04 16 -FrisbeeCatch/v_FrisbeeCatch_g05_c04 30 -TennisSwing/v_TennisSwing_g01_c05 91 -PlayingCello/v_PlayingCello_g05_c03 58 -Lunges/v_Lunges_g06_c04 51 -Shotput/v_Shotput_g06_c06 78 -Bowling/v_Bowling_g01_c05 15 -Typing/v_Typing_g04_c02 94 -WallPushups/v_WallPushups_g06_c05 98 -BabyCrawling/v_BabyCrawling_g02_c05 3 -HorseRace/v_HorseRace_g07_c05 40 -Rowing/v_Rowing_g04_c06 75 -FrisbeeCatch/v_FrisbeeCatch_g06_c01 30 -LongJump/v_LongJump_g05_c05 50 -ParallelBars/v_ParallelBars_g06_c06 56 -PushUps/v_PushUps_g03_c01 71 -ThrowDiscus/v_ThrowDiscus_g05_c01 92 -WritingOnBoard/v_WritingOnBoard_g04_c02 99 -PushUps/v_PushUps_g01_c05 71 -CliffDiving/v_CliffDiving_g04_c04 21 -RopeClimbing/v_RopeClimbing_g04_c04 74 -Rowing/v_Rowing_g05_c01 75 -BaseballPitch/v_BaseballPitch_g06_c01 6 -BoxingSpeedBag/v_BoxingSpeedBag_g03_c01 17 -SoccerPenalty/v_SoccerPenalty_g02_c03 84 -SkyDiving/v_SkyDiving_g04_c02 82 -WallPushups/v_WallPushups_g05_c01 98 -JumpRope/v_JumpRope_g03_c01 47 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c03 16 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c05 0 -TaiChi/v_TaiChi_g04_c04 90 -ApplyLipstick/v_ApplyLipstick_g01_c05 1 -SalsaSpin/v_SalsaSpin_g03_c03 76 -ShavingBeard/v_ShavingBeard_g05_c07 77 -Swing/v_Swing_g01_c05 88 -Typing/v_Typing_g06_c04 94 -LongJump/v_LongJump_g04_c02 50 -Rowing/v_Rowing_g06_c03 75 -JugglingBalls/v_JugglingBalls_g01_c04 45 -JugglingBalls/v_JugglingBalls_g01_c03 45 -StillRings/v_StillRings_g06_c01 85 -PlayingSitar/v_PlayingSitar_g03_c07 64 -Kayaking/v_Kayaking_g02_c01 48 -Swing/v_Swing_g04_c05 88 -RopeClimbing/v_RopeClimbing_g01_c03 74 -HandstandWalking/v_HandstandWalking_g02_c02 37 -Hammering/v_Hammering_g06_c05 34 -HorseRiding/v_HorseRiding_g05_c05 41 -HandstandPushups/v_HandStandPushups_g01_c03 36 -JugglingBalls/v_JugglingBalls_g03_c06 45 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c07 16 -TableTennisShot/v_TableTennisShot_g03_c02 89 -Haircut/v_Haircut_g03_c03 33 -PlayingViolin/v_PlayingViolin_g05_c04 66 -TaiChi/v_TaiChi_g05_c02 90 -YoYo/v_YoYo_g03_c03 100 -SalsaSpin/v_SalsaSpin_g01_c05 76 -HammerThrow/v_HammerThrow_g06_c01 35 -JumpRope/v_JumpRope_g03_c02 47 -Bowling/v_Bowling_g06_c07 15 -CricketBowling/v_CricketBowling_g02_c02 22 -BaseballPitch/v_BaseballPitch_g07_c06 6 -WalkingWithDog/v_WalkingWithDog_g02_c04 97 -HandstandWalking/v_HandstandWalking_g06_c03 37 -HulaHoop/v_HulaHoop_g01_c05 42 -PlayingDhol/v_PlayingDhol_g04_c04 60 -PommelHorse/v_PommelHorse_g05_c01 68 -Lunges/v_Lunges_g07_c06 51 -Hammering/v_Hammering_g01_c02 34 -BreastStroke/v_BreastStroke_g07_c04 18 -BabyCrawling/v_BabyCrawling_g04_c02 3 -Kayaking/v_Kayaking_g01_c05 48 -PoleVault/v_PoleVault_g06_c04 67 -PlayingViolin/v_PlayingViolin_g06_c03 66 -CricketShot/v_CricketShot_g07_c04 23 -Diving/v_Diving_g02_c04 25 -ThrowDiscus/v_ThrowDiscus_g04_c04 92 -PoleVault/v_PoleVault_g01_c03 67 -JavelinThrow/v_JavelinThrow_g06_c04 44 -RockClimbingIndoor/v_RockClimbingIndoor_g04_c03 73 -WallPushups/v_WallPushups_g02_c01 98 -CuttingInKitchen/v_CuttingInKitchen_g01_c05 24 -Shotput/v_Shotput_g06_c07 78 -Surfing/v_Surfing_g04_c02 87 -TrampolineJumping/v_TrampolineJumping_g01_c03 93 -Haircut/v_Haircut_g07_c03 33 -HandstandPushups/v_HandStandPushups_g01_c02 36 -TaiChi/v_TaiChi_g07_c04 90 -RopeClimbing/v_RopeClimbing_g04_c01 74 -BalanceBeam/v_BalanceBeam_g01_c03 4 -Knitting/v_Knitting_g07_c04 49 -HammerThrow/v_HammerThrow_g01_c04 35 -UnevenBars/v_UnevenBars_g04_c01 95 -HorseRiding/v_HorseRiding_g06_c02 41 -Archery/v_Archery_g07_c06 2 -MoppingFloor/v_MoppingFloor_g04_c03 54 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c03 73 -Rowing/v_Rowing_g04_c01 75 -SumoWrestling/v_SumoWrestling_g03_c02 86 -Shotput/v_Shotput_g01_c05 78 -Basketball/v_Basketball_g05_c01 7 -SoccerPenalty/v_SoccerPenalty_g01_c01 84 -Haircut/v_Haircut_g01_c03 33 -LongJump/v_LongJump_g04_c01 50 -WritingOnBoard/v_WritingOnBoard_g02_c05 99 -TableTennisShot/v_TableTennisShot_g05_c05 89 -HighJump/v_HighJump_g06_c03 39 -PlayingDaf/v_PlayingDaf_g01_c03 59 -MoppingFloor/v_MoppingFloor_g07_c01 54 -BaseballPitch/v_BaseballPitch_g01_c02 6 -HandstandPushups/v_HandStandPushups_g03_c02 36 -Basketball/v_Basketball_g03_c01 7 -BlowDryHair/v_BlowDryHair_g01_c02 12 -PlayingDaf/v_PlayingDaf_g07_c04 59 -HandstandPushups/v_HandStandPushups_g06_c04 36 -Fencing/v_Fencing_g01_c06 27 -BaseballPitch/v_BaseballPitch_g07_c04 6 -UnevenBars/v_UnevenBars_g02_c04 95 -PizzaTossing/v_PizzaTossing_g06_c03 57 -HulaHoop/v_HulaHoop_g07_c05 42 -TableTennisShot/v_TableTennisShot_g04_c07 89 -CleanAndJerk/v_CleanAndJerk_g03_c03 20 -WritingOnBoard/v_WritingOnBoard_g04_c04 99 -PizzaTossing/v_PizzaTossing_g03_c04 57 -ParallelBars/v_ParallelBars_g02_c01 56 -IceDancing/v_IceDancing_g07_c03 43 -Punch/v_Punch_g06_c07 70 -Basketball/v_Basketball_g04_c02 7 -BandMarching/v_BandMarching_g07_c05 5 -FrisbeeCatch/v_FrisbeeCatch_g06_c04 30 -FrisbeeCatch/v_FrisbeeCatch_g02_c01 30 -JavelinThrow/v_JavelinThrow_g07_c02 44 -HandstandWalking/v_HandstandWalking_g06_c04 37 -SoccerJuggling/v_SoccerJuggling_g06_c01 83 -PushUps/v_PushUps_g04_c05 71 -PlayingViolin/v_PlayingViolin_g01_c01 66 -PlayingDhol/v_PlayingDhol_g07_c02 60 -PlayingSitar/v_PlayingSitar_g07_c01 64 -RockClimbingIndoor/v_RockClimbingIndoor_g04_c02 73 -BabyCrawling/v_BabyCrawling_g06_c06 3 -BoxingPunchingBag/v_BoxingPunchingBag_g04_c04 16 -PlayingCello/v_PlayingCello_g07_c04 58 -BoxingSpeedBag/v_BoxingSpeedBag_g06_c05 17 -Nunchucks/v_Nunchucks_g03_c05 55 -HandstandWalking/v_HandstandWalking_g01_c03 37 -Basketball/v_Basketball_g05_c03 7 -TaiChi/v_TaiChi_g04_c03 90 -HorseRiding/v_HorseRiding_g06_c04 41 -VolleyballSpiking/v_VolleyballSpiking_g03_c03 96 -Rafting/v_Rafting_g01_c02 72 -BodyWeightSquats/v_BodyWeightSquats_g02_c04 14 -Mixing/v_Mixing_g02_c01 53 -SkateBoarding/v_SkateBoarding_g06_c01 79 -BodyWeightSquats/v_BodyWeightSquats_g06_c05 14 -PlayingFlute/v_PlayingFlute_g04_c07 61 -YoYo/v_YoYo_g01_c05 100 -PlayingFlute/v_PlayingFlute_g03_c06 61 -CricketBowling/v_CricketBowling_g05_c02 22 -Swing/v_Swing_g07_c06 88 -WalkingWithDog/v_WalkingWithDog_g04_c04 97 -Knitting/v_Knitting_g07_c05 49 -Hammering/v_Hammering_g05_c02 34 -ThrowDiscus/v_ThrowDiscus_g03_c03 92 -CricketBowling/v_CricketBowling_g04_c02 22 -RopeClimbing/v_RopeClimbing_g03_c03 74 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c07 16 -PlayingDaf/v_PlayingDaf_g06_c03 59 -Biking/v_Biking_g05_c04 10 -JavelinThrow/v_JavelinThrow_g01_c04 44 -TrampolineJumping/v_TrampolineJumping_g03_c04 93 -HeadMassage/v_HeadMassage_g02_c02 38 -HorseRiding/v_HorseRiding_g06_c01 41 -CricketShot/v_CricketShot_g06_c04 23 -Surfing/v_Surfing_g07_c04 87 -BalanceBeam/v_BalanceBeam_g03_c02 4 -PlayingDaf/v_PlayingDaf_g04_c02 59 -ApplyEyeMakeup/v_ApplyEyeMakeup_g05_c05 0 -Archery/v_Archery_g04_c03 2 -LongJump/v_LongJump_g01_c01 50 -Bowling/v_Bowling_g06_c04 15 -BlowDryHair/v_BlowDryHair_g02_c01 12 -Knitting/v_Knitting_g07_c03 49 -JugglingBalls/v_JugglingBalls_g06_c04 45 -Shotput/v_Shotput_g02_c04 78 -FieldHockeyPenalty/v_FieldHockeyPenalty_g07_c04 28 -BrushingTeeth/v_BrushingTeeth_g04_c01 19 -FrontCrawl/v_FrontCrawl_g06_c05 31 -WritingOnBoard/v_WritingOnBoard_g03_c06 99 -CleanAndJerk/v_CleanAndJerk_g07_c02 20 -CleanAndJerk/v_CleanAndJerk_g06_c03 20 -BaseballPitch/v_BaseballPitch_g06_c04 6 -Haircut/v_Haircut_g05_c01 33 -PushUps/v_PushUps_g07_c04 71 -TaiChi/v_TaiChi_g04_c01 90 -Hammering/v_Hammering_g02_c03 34 -Drumming/v_Drumming_g07_c06 26 -TennisSwing/v_TennisSwing_g07_c01 91 -FieldHockeyPenalty/v_FieldHockeyPenalty_g07_c02 28 -PlayingViolin/v_PlayingViolin_g06_c01 66 -FrontCrawl/v_FrontCrawl_g04_c04 31 -Knitting/v_Knitting_g03_c01 49 -HorseRace/v_HorseRace_g02_c04 40 -Nunchucks/v_Nunchucks_g02_c05 55 -Biking/v_Biking_g04_c03 10 -Skijet/v_Skijet_g02_c04 81 -PullUps/v_PullUps_g02_c03 69 -IceDancing/v_IceDancing_g03_c01 43 -BodyWeightSquats/v_BodyWeightSquats_g07_c01 14 -Knitting/v_Knitting_g02_c02 49 -TableTennisShot/v_TableTennisShot_g02_c01 89 -JugglingBalls/v_JugglingBalls_g04_c05 45 -ShavingBeard/v_ShavingBeard_g02_c01 77 -HorseRiding/v_HorseRiding_g03_c05 41 -PlayingFlute/v_PlayingFlute_g04_c01 61 -Shotput/v_Shotput_g05_c01 78 -BoxingPunchingBag/v_BoxingPunchingBag_g01_c02 16 -Hammering/v_Hammering_g02_c02 34 -Mixing/v_Mixing_g01_c06 53 -ParallelBars/v_ParallelBars_g04_c03 56 -BabyCrawling/v_BabyCrawling_g07_c04 3 -PommelHorse/v_PommelHorse_g01_c05 68 -BandMarching/v_BandMarching_g03_c02 5 -Bowling/v_Bowling_g03_c05 15 -CricketBowling/v_CricketBowling_g02_c01 22 -PlayingSitar/v_PlayingSitar_g02_c05 64 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c03 0 -CricketShot/v_CricketShot_g02_c07 23 -Nunchucks/v_Nunchucks_g06_c01 55 -Skiing/v_Skiing_g06_c06 80 -SkateBoarding/v_SkateBoarding_g02_c05 79 -Punch/v_Punch_g06_c02 70 -JumpingJack/v_JumpingJack_g06_c04 46 -GolfSwing/v_GolfSwing_g02_c01 32 -StillRings/v_StillRings_g01_c05 85 -Billiards/v_Billiards_g05_c01 11 -PlayingDaf/v_PlayingDaf_g03_c04 59 -CricketShot/v_CricketShot_g03_c04 23 -Knitting/v_Knitting_g05_c05 49 -BenchPress/v_BenchPress_g03_c01 9 -HandstandWalking/v_HandstandWalking_g05_c06 37 -PlayingPiano/v_PlayingPiano_g03_c04 63 -ThrowDiscus/v_ThrowDiscus_g01_c01 92 -Kayaking/v_Kayaking_g04_c07 48 -TennisSwing/v_TennisSwing_g01_c04 91 -StillRings/v_StillRings_g06_c04 85 -ApplyLipstick/v_ApplyLipstick_g06_c01 1 -Swing/v_Swing_g04_c03 88 -FrisbeeCatch/v_FrisbeeCatch_g02_c02 30 -PlayingDhol/v_PlayingDhol_g07_c04 60 -PlayingFlute/v_PlayingFlute_g05_c02 61 -SoccerPenalty/v_SoccerPenalty_g03_c05 84 -SkyDiving/v_SkyDiving_g05_c03 82 -TennisSwing/v_TennisSwing_g01_c07 91 -BlowingCandles/v_BlowingCandles_g02_c03 13 -ThrowDiscus/v_ThrowDiscus_g02_c02 92 -SoccerPenalty/v_SoccerPenalty_g05_c03 84 -CuttingInKitchen/v_CuttingInKitchen_g06_c05 24 -Rafting/v_Rafting_g06_c01 72 -ShavingBeard/v_ShavingBeard_g04_c03 77 -HammerThrow/v_HammerThrow_g04_c01 35 -BoxingPunchingBag/v_BoxingPunchingBag_g06_c03 16 -BodyWeightSquats/v_BodyWeightSquats_g03_c03 14 -HandstandPushups/v_HandStandPushups_g04_c01 36 -GolfSwing/v_GolfSwing_g07_c03 32 -Punch/v_Punch_g06_c04 70 -BandMarching/v_BandMarching_g02_c03 5 -HighJump/v_HighJump_g06_c04 39 -ApplyLipstick/v_ApplyLipstick_g06_c03 1 -RopeClimbing/v_RopeClimbing_g03_c04 74 -BrushingTeeth/v_BrushingTeeth_g06_c05 19 -JavelinThrow/v_JavelinThrow_g05_c03 44 -JavelinThrow/v_JavelinThrow_g02_c02 44 -BlowDryHair/v_BlowDryHair_g02_c05 12 -Lunges/v_Lunges_g07_c05 51 -PlayingDaf/v_PlayingDaf_g03_c03 59 -PullUps/v_PullUps_g05_c01 69 -WritingOnBoard/v_WritingOnBoard_g02_c06 99 -SoccerPenalty/v_SoccerPenalty_g07_c03 84 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c03 73 -PlayingDhol/v_PlayingDhol_g04_c07 60 -PizzaTossing/v_PizzaTossing_g07_c02 57 -ThrowDiscus/v_ThrowDiscus_g02_c05 92 -HighJump/v_HighJump_g07_c03 39 -Drumming/v_Drumming_g01_c02 26 -BodyWeightSquats/v_BodyWeightSquats_g01_c01 14 -LongJump/v_LongJump_g03_c05 50 -PlayingGuitar/v_PlayingGuitar_g03_c07 62 -Drumming/v_Drumming_g05_c06 26 -TableTennisShot/v_TableTennisShot_g01_c03 89 -BalanceBeam/v_BalanceBeam_g06_c04 4 -PommelHorse/v_PommelHorse_g01_c07 68 -Mixing/v_Mixing_g03_c07 53 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c05 28 -WallPushups/v_WallPushups_g07_c06 98 -IceDancing/v_IceDancing_g07_c07 43 -MilitaryParade/v_MilitaryParade_g01_c06 52 -RopeClimbing/v_RopeClimbing_g02_c02 74 -Billiards/v_Billiards_g01_c04 11 -FrisbeeCatch/v_FrisbeeCatch_g07_c05 30 -HorseRiding/v_HorseRiding_g06_c05 41 -BenchPress/v_BenchPress_g03_c03 9 -HammerThrow/v_HammerThrow_g07_c02 35 -SoccerPenalty/v_SoccerPenalty_g05_c04 84 -PlayingViolin/v_PlayingViolin_g05_c01 66 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c02 28 -YoYo/v_YoYo_g07_c03 100 -GolfSwing/v_GolfSwing_g01_c01 32 -Skiing/v_Skiing_g02_c02 80 -Swing/v_Swing_g04_c01 88 -Diving/v_Diving_g03_c07 25 -PlayingSitar/v_PlayingSitar_g02_c02 64 -Archery/v_Archery_g04_c02 2 -HorseRace/v_HorseRace_g07_c02 40 -Biking/v_Biking_g02_c01 10 -SalsaSpin/v_SalsaSpin_g01_c04 76 -Typing/v_Typing_g01_c06 94 -HorseRiding/v_HorseRiding_g04_c02 41 -BandMarching/v_BandMarching_g03_c06 5 -HeadMassage/v_HeadMassage_g06_c05 38 -PoleVault/v_PoleVault_g07_c04 67 -SkateBoarding/v_SkateBoarding_g06_c04 79 -PlayingPiano/v_PlayingPiano_g02_c03 63 -PlayingSitar/v_PlayingSitar_g07_c04 64 -CliffDiving/v_CliffDiving_g06_c03 21 -PlayingFlute/v_PlayingFlute_g05_c07 61 -WritingOnBoard/v_WritingOnBoard_g06_c05 99 -Kayaking/v_Kayaking_g07_c03 48 -BlowingCandles/v_BlowingCandles_g02_c01 13 -BlowingCandles/v_BlowingCandles_g02_c04 13 -PlayingSitar/v_PlayingSitar_g07_c05 64 -PlayingDaf/v_PlayingDaf_g06_c02 59 -WallPushups/v_WallPushups_g07_c01 98 -Bowling/v_Bowling_g05_c05 15 -PlayingTabla/v_PlayingTabla_g03_c05 65 -JavelinThrow/v_JavelinThrow_g05_c04 44 -JumpRope/v_JumpRope_g04_c01 47 -WallPushups/v_WallPushups_g05_c05 98 -PizzaTossing/v_PizzaTossing_g02_c01 57 -SkyDiving/v_SkyDiving_g04_c01 82 -Mixing/v_Mixing_g04_c02 53 -RopeClimbing/v_RopeClimbing_g01_c02 74 -PlayingGuitar/v_PlayingGuitar_g04_c06 62 -BreastStroke/v_BreastStroke_g03_c01 18 -SoccerJuggling/v_SoccerJuggling_g07_c02 83 -PoleVault/v_PoleVault_g05_c05 67 -HighJump/v_HighJump_g05_c05 39 -UnevenBars/v_UnevenBars_g07_c01 95 -HorseRace/v_HorseRace_g04_c01 40 -ThrowDiscus/v_ThrowDiscus_g04_c02 92 -PlayingSitar/v_PlayingSitar_g03_c01 64 -Shotput/v_Shotput_g02_c02 78 -Bowling/v_Bowling_g05_c06 15 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c04 16 -Skiing/v_Skiing_g01_c03 80 -HorseRiding/v_HorseRiding_g01_c06 41 -Rowing/v_Rowing_g07_c05 75 -TrampolineJumping/v_TrampolineJumping_g07_c03 93 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c06 16 -SkyDiving/v_SkyDiving_g05_c05 82 -Billiards/v_Billiards_g06_c01 11 -TableTennisShot/v_TableTennisShot_g02_c04 89 -JugglingBalls/v_JugglingBalls_g05_c04 45 -YoYo/v_YoYo_g05_c04 100 -FrisbeeCatch/v_FrisbeeCatch_g03_c03 30 -Billiards/v_Billiards_g06_c02 11 -ShavingBeard/v_ShavingBeard_g07_c03 77 -SkateBoarding/v_SkateBoarding_g02_c02 79 -MoppingFloor/v_MoppingFloor_g03_c04 54 -YoYo/v_YoYo_g06_c02 100 -TennisSwing/v_TennisSwing_g07_c03 91 -Punch/v_Punch_g03_c01 70 -Skijet/v_Skijet_g06_c04 81 -JugglingBalls/v_JugglingBalls_g05_c03 45 -MoppingFloor/v_MoppingFloor_g06_c04 54 -JumpRope/v_JumpRope_g06_c03 47 -WritingOnBoard/v_WritingOnBoard_g06_c02 99 -Biking/v_Biking_g07_c02 10 -Nunchucks/v_Nunchucks_g07_c02 55 -HorseRace/v_HorseRace_g07_c04 40 -Nunchucks/v_Nunchucks_g04_c05 55 -WallPushups/v_WallPushups_g03_c02 98 -JumpingJack/v_JumpingJack_g06_c03 46 -Basketball/v_Basketball_g01_c01 7 -HulaHoop/v_HulaHoop_g01_c01 42 -BasketballDunk/v_BasketballDunk_g03_c03 8 -IceDancing/v_IceDancing_g03_c03 43 -SoccerJuggling/v_SoccerJuggling_g07_c03 83 -WritingOnBoard/v_WritingOnBoard_g06_c03 99 -PlayingCello/v_PlayingCello_g02_c01 58 -WallPushups/v_WallPushups_g07_c02 98 -FieldHockeyPenalty/v_FieldHockeyPenalty_g01_c01 28 -PlayingDhol/v_PlayingDhol_g03_c04 60 -FloorGymnastics/v_FloorGymnastics_g07_c05 29 -PlayingDaf/v_PlayingDaf_g04_c05 59 -PullUps/v_PullUps_g04_c03 69 -BandMarching/v_BandMarching_g07_c06 5 -BlowingCandles/v_BlowingCandles_g06_c07 13 -SoccerPenalty/v_SoccerPenalty_g06_c06 84 -YoYo/v_YoYo_g03_c04 100 -FrisbeeCatch/v_FrisbeeCatch_g07_c02 30 -PlayingGuitar/v_PlayingGuitar_g02_c01 62 -GolfSwing/v_GolfSwing_g01_c06 32 -HorseRace/v_HorseRace_g03_c02 40 -Skijet/v_Skijet_g07_c01 81 -Biking/v_Biking_g03_c03 10 -PlayingFlute/v_PlayingFlute_g01_c02 61 -PlayingPiano/v_PlayingPiano_g07_c01 63 -Typing/v_Typing_g05_c04 94 -BlowingCandles/v_BlowingCandles_g01_c03 13 -HorseRace/v_HorseRace_g06_c01 40 -FrontCrawl/v_FrontCrawl_g04_c02 31 -CliffDiving/v_CliffDiving_g06_c04 21 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c06 28 -PlayingGuitar/v_PlayingGuitar_g05_c04 62 -HeadMassage/v_HeadMassage_g03_c07 38 -Shotput/v_Shotput_g06_c03 78 -BlowingCandles/v_BlowingCandles_g04_c05 13 -Hammering/v_Hammering_g01_c04 34 -Rafting/v_Rafting_g02_c03 72 -GolfSwing/v_GolfSwing_g06_c02 32 -HeadMassage/v_HeadMassage_g01_c04 38 -HighJump/v_HighJump_g02_c02 39 -FrisbeeCatch/v_FrisbeeCatch_g04_c01 30 -JumpRope/v_JumpRope_g04_c04 47 -FrisbeeCatch/v_FrisbeeCatch_g02_c03 30 -Shotput/v_Shotput_g03_c02 78 -Punch/v_Punch_g06_c03 70 -TaiChi/v_TaiChi_g05_c04 90 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c03 73 -FloorGymnastics/v_FloorGymnastics_g06_c06 29 -ApplyEyeMakeup/v_ApplyEyeMakeup_g03_c04 0 -HorseRiding/v_HorseRiding_g02_c06 41 -Fencing/v_Fencing_g01_c03 27 -StillRings/v_StillRings_g02_c03 85 -SoccerPenalty/v_SoccerPenalty_g06_c07 84 -PlayingDaf/v_PlayingDaf_g07_c01 59 -CliffDiving/v_CliffDiving_g01_c06 21 -CricketBowling/v_CricketBowling_g05_c04 22 -SkateBoarding/v_SkateBoarding_g01_c01 79 -JavelinThrow/v_JavelinThrow_g03_c01 44 -Swing/v_Swing_g07_c04 88 -Shotput/v_Shotput_g03_c01 78 -Billiards/v_Billiards_g01_c01 11 -Mixing/v_Mixing_g07_c04 53 -Mixing/v_Mixing_g05_c02 53 -PlayingDhol/v_PlayingDhol_g06_c02 60 -LongJump/v_LongJump_g04_c05 50 -CliffDiving/v_CliffDiving_g07_c03 21 -FloorGymnastics/v_FloorGymnastics_g07_c04 29 -MoppingFloor/v_MoppingFloor_g01_c04 54 -BoxingPunchingBag/v_BoxingPunchingBag_g07_c02 16 -Fencing/v_Fencing_g01_c01 27 -ApplyEyeMakeup/v_ApplyEyeMakeup_g06_c04 0 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c04 28 -ThrowDiscus/v_ThrowDiscus_g07_c02 92 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c04 16 -BenchPress/v_BenchPress_g06_c05 9 -ShavingBeard/v_ShavingBeard_g07_c07 77 -PlayingTabla/v_PlayingTabla_g07_c02 65 -CricketBowling/v_CricketBowling_g01_c07 22 -CuttingInKitchen/v_CuttingInKitchen_g01_c02 24 -SkyDiving/v_SkyDiving_g05_c02 82 -PlayingViolin/v_PlayingViolin_g01_c02 66 -Lunges/v_Lunges_g07_c02 51 -Shotput/v_Shotput_g07_c06 78 -MoppingFloor/v_MoppingFloor_g04_c04 54 -Diving/v_Diving_g02_c06 25 -Lunges/v_Lunges_g03_c01 51 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c04 73 -PushUps/v_PushUps_g01_c04 71 -BasketballDunk/v_BasketballDunk_g03_c02 8 -PlayingDaf/v_PlayingDaf_g02_c06 59 -HorseRace/v_HorseRace_g06_c05 40 -HighJump/v_HighJump_g07_c01 39 -StillRings/v_StillRings_g03_c04 85 -PizzaTossing/v_PizzaTossing_g01_c03 57 -JumpRope/v_JumpRope_g02_c05 47 -Shotput/v_Shotput_g07_c05 78 -JugglingBalls/v_JugglingBalls_g05_c05 45 -FloorGymnastics/v_FloorGymnastics_g05_c02 29 -Rafting/v_Rafting_g04_c02 72 -PoleVault/v_PoleVault_g06_c03 67 -BandMarching/v_BandMarching_g02_c02 5 -BodyWeightSquats/v_BodyWeightSquats_g07_c03 14 -PommelHorse/v_PommelHorse_g07_c01 68 -PlayingSitar/v_PlayingSitar_g07_c03 64 -Biking/v_Biking_g02_c02 10 -BabyCrawling/v_BabyCrawling_g04_c03 3 -PommelHorse/v_PommelHorse_g01_c03 68 -BoxingSpeedBag/v_BoxingSpeedBag_g05_c05 17 -GolfSwing/v_GolfSwing_g07_c05 32 -PoleVault/v_PoleVault_g03_c07 67 -PizzaTossing/v_PizzaTossing_g04_c01 57 -FrisbeeCatch/v_FrisbeeCatch_g05_c05 30 -HighJump/v_HighJump_g01_c01 39 -YoYo/v_YoYo_g03_c06 100 -CleanAndJerk/v_CleanAndJerk_g06_c01 20 -MoppingFloor/v_MoppingFloor_g02_c05 54 -TableTennisShot/v_TableTennisShot_g04_c05 89 -PlayingFlute/v_PlayingFlute_g07_c04 61 -TennisSwing/v_TennisSwing_g07_c06 91 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c06 28 -PlayingSitar/v_PlayingSitar_g04_c07 64 -LongJump/v_LongJump_g02_c05 50 -BenchPress/v_BenchPress_g02_c06 9 -Fencing/v_Fencing_g06_c04 27 -PlayingFlute/v_PlayingFlute_g07_c07 61 -HulaHoop/v_HulaHoop_g07_c02 42 -Nunchucks/v_Nunchucks_g03_c03 55 -CuttingInKitchen/v_CuttingInKitchen_g05_c01 24 -HorseRiding/v_HorseRiding_g03_c06 41 -BlowingCandles/v_BlowingCandles_g06_c03 13 -PlayingDaf/v_PlayingDaf_g07_c05 59 -Kayaking/v_Kayaking_g02_c04 48 -BodyWeightSquats/v_BodyWeightSquats_g05_c01 14 -YoYo/v_YoYo_g03_c01 100 -PlayingViolin/v_PlayingViolin_g05_c02 66 -BandMarching/v_BandMarching_g02_c07 5 -PizzaTossing/v_PizzaTossing_g05_c03 57 -BreastStroke/v_BreastStroke_g03_c02 18 -CliffDiving/v_CliffDiving_g07_c06 21 -BabyCrawling/v_BabyCrawling_g06_c01 3 -TaiChi/v_TaiChi_g02_c01 90 -JugglingBalls/v_JugglingBalls_g03_c05 45 -YoYo/v_YoYo_g07_c01 100 -PlayingCello/v_PlayingCello_g04_c01 58 -ParallelBars/v_ParallelBars_g07_c01 56 -Typing/v_Typing_g02_c04 94 -VolleyballSpiking/v_VolleyballSpiking_g07_c01 96 -BabyCrawling/v_BabyCrawling_g06_c02 3 -Nunchucks/v_Nunchucks_g03_c04 55 -PlayingGuitar/v_PlayingGuitar_g01_c03 62 -Diving/v_Diving_g05_c04 25 -ParallelBars/v_ParallelBars_g01_c04 56 -RockClimbingIndoor/v_RockClimbingIndoor_g01_c04 73 -Biking/v_Biking_g01_c01 10 -FloorGymnastics/v_FloorGymnastics_g06_c05 29 -Biking/v_Biking_g03_c02 10 -PoleVault/v_PoleVault_g05_c02 67 -IceDancing/v_IceDancing_g06_c06 43 -Surfing/v_Surfing_g01_c07 87 -HorseRace/v_HorseRace_g04_c02 40 -TableTennisShot/v_TableTennisShot_g01_c06 89 -CliffDiving/v_CliffDiving_g01_c02 21 -UnevenBars/v_UnevenBars_g06_c02 95 -SalsaSpin/v_SalsaSpin_g01_c06 76 -WalkingWithDog/v_WalkingWithDog_g07_c04 97 -MoppingFloor/v_MoppingFloor_g05_c02 54 -PommelHorse/v_PommelHorse_g04_c04 68 -BalanceBeam/v_BalanceBeam_g06_c07 4 -PlayingDaf/v_PlayingDaf_g04_c07 59 -BlowDryHair/v_BlowDryHair_g03_c05 12 -PlayingFlute/v_PlayingFlute_g01_c06 61 -Knitting/v_Knitting_g04_c04 49 -ApplyLipstick/v_ApplyLipstick_g06_c02 1 -SkateBoarding/v_SkateBoarding_g02_c01 79 -HeadMassage/v_HeadMassage_g02_c07 38 -RockClimbingIndoor/v_RockClimbingIndoor_g07_c07 73 -TableTennisShot/v_TableTennisShot_g04_c06 89 -Rowing/v_Rowing_g01_c03 75 -Bowling/v_Bowling_g02_c02 15 -UnevenBars/v_UnevenBars_g06_c04 95 -Punch/v_Punch_g04_c03 70 -Rafting/v_Rafting_g05_c03 72 -PlayingFlute/v_PlayingFlute_g01_c04 61 -Billiards/v_Billiards_g02_c07 11 -Punch/v_Punch_g01_c03 70 -JugglingBalls/v_JugglingBalls_g04_c01 45 -JumpingJack/v_JumpingJack_g02_c02 46 -TrampolineJumping/v_TrampolineJumping_g02_c03 93 -PlayingTabla/v_PlayingTabla_g02_c01 65 -Skiing/v_Skiing_g01_c02 80 -GolfSwing/v_GolfSwing_g03_c04 32 -LongJump/v_LongJump_g01_c04 50 -HorseRiding/v_HorseRiding_g03_c02 41 -SoccerPenalty/v_SoccerPenalty_g07_c05 84 -ApplyLipstick/v_ApplyLipstick_g01_c03 1 -WritingOnBoard/v_WritingOnBoard_g03_c07 99 -Skijet/v_Skijet_g04_c04 81 -BlowingCandles/v_BlowingCandles_g03_c03 13 -PlayingPiano/v_PlayingPiano_g03_c03 63 -PlayingDaf/v_PlayingDaf_g03_c01 59 -RockClimbingIndoor/v_RockClimbingIndoor_g05_c06 73 -HorseRiding/v_HorseRiding_g05_c03 41 -CricketShot/v_CricketShot_g01_c06 23 -WritingOnBoard/v_WritingOnBoard_g02_c02 99 -BlowDryHair/v_BlowDryHair_g07_c01 12 -HulaHoop/v_HulaHoop_g06_c03 42 -BodyWeightSquats/v_BodyWeightSquats_g07_c02 14 -HandstandPushups/v_HandStandPushups_g02_c03 36 -HorseRace/v_HorseRace_g07_c03 40 -PlayingDhol/v_PlayingDhol_g03_c03 60 -Fencing/v_Fencing_g04_c01 27 -CricketBowling/v_CricketBowling_g06_c02 22 -PlayingDhol/v_PlayingDhol_g01_c03 60 -BasketballDunk/v_BasketballDunk_g05_c01 8 -SalsaSpin/v_SalsaSpin_g05_c04 76 -HorseRace/v_HorseRace_g01_c03 40 -ShavingBeard/v_ShavingBeard_g07_c01 77 -BoxingSpeedBag/v_BoxingSpeedBag_g06_c04 17 -VolleyballSpiking/v_VolleyballSpiking_g05_c04 96 -PlayingCello/v_PlayingCello_g02_c04 58 -PlayingDhol/v_PlayingDhol_g03_c02 60 -IceDancing/v_IceDancing_g05_c01 43 -BodyWeightSquats/v_BodyWeightSquats_g07_c04 14 -HeadMassage/v_HeadMassage_g01_c01 38 -HandstandWalking/v_HandstandWalking_g03_c01 37 -FloorGymnastics/v_FloorGymnastics_g01_c01 29 -Typing/v_Typing_g02_c02 94 -JavelinThrow/v_JavelinThrow_g06_c02 44 -PlayingGuitar/v_PlayingGuitar_g06_c02 62 -BlowingCandles/v_BlowingCandles_g07_c03 13 -JugglingBalls/v_JugglingBalls_g04_c04 45 -CliffDiving/v_CliffDiving_g02_c04 21 -TrampolineJumping/v_TrampolineJumping_g03_c01 93 -PlayingFlute/v_PlayingFlute_g07_c03 61 -BlowDryHair/v_BlowDryHair_g07_c07 12 -HorseRiding/v_HorseRiding_g02_c05 41 -FloorGymnastics/v_FloorGymnastics_g07_c01 29 -PlayingGuitar/v_PlayingGuitar_g02_c02 62 -ApplyEyeMakeup/v_ApplyEyeMakeup_g07_c02 0 -CricketBowling/v_CricketBowling_g06_c03 22 -JugglingBalls/v_JugglingBalls_g01_c01 45 -WritingOnBoard/v_WritingOnBoard_g07_c02 99 -BreastStroke/v_BreastStroke_g07_c01 18 -PoleVault/v_PoleVault_g03_c04 67 -CricketShot/v_CricketShot_g05_c04 23 -BenchPress/v_BenchPress_g04_c07 9 -BrushingTeeth/v_BrushingTeeth_g05_c02 19 -CricketShot/v_CricketShot_g04_c05 23 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c04 28 -TrampolineJumping/v_TrampolineJumping_g02_c06 93 -PullUps/v_PullUps_g03_c04 69 -Lunges/v_Lunges_g06_c02 51 -PlayingDhol/v_PlayingDhol_g02_c03 60 -WallPushups/v_WallPushups_g04_c04 98 -SkyDiving/v_SkyDiving_g06_c02 82 -ParallelBars/v_ParallelBars_g06_c01 56 -SumoWrestling/v_SumoWrestling_g02_c01 86 -BenchPress/v_BenchPress_g07_c03 9 -SoccerJuggling/v_SoccerJuggling_g04_c03 83 -BabyCrawling/v_BabyCrawling_g03_c02 3 -Bowling/v_Bowling_g01_c04 15 -CricketBowling/v_CricketBowling_g07_c02 22 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c02 16 -BoxingPunchingBag/v_BoxingPunchingBag_g02_c02 16 -StillRings/v_StillRings_g06_c03 85 -PizzaTossing/v_PizzaTossing_g07_c03 57 -SoccerPenalty/v_SoccerPenalty_g05_c01 84 -CliffDiving/v_CliffDiving_g05_c02 21 -BaseballPitch/v_BaseballPitch_g01_c04 6 -PlayingTabla/v_PlayingTabla_g05_c03 65 -FrisbeeCatch/v_FrisbeeCatch_g03_c04 30 -TableTennisShot/v_TableTennisShot_g04_c03 89 -Rowing/v_Rowing_g07_c01 75 -BlowingCandles/v_BlowingCandles_g06_c02 13 -Diving/v_Diving_g04_c02 25 -StillRings/v_StillRings_g04_c01 85 -PushUps/v_PushUps_g02_c03 71 -Swing/v_Swing_g02_c02 88 -IceDancing/v_IceDancing_g04_c02 43 -PlayingDaf/v_PlayingDaf_g02_c01 59 -Fencing/v_Fencing_g05_c02 27 -SoccerJuggling/v_SoccerJuggling_g01_c05 83 -StillRings/v_StillRings_g02_c02 85 -PlayingGuitar/v_PlayingGuitar_g04_c07 62 -Hammering/v_Hammering_g04_c01 34 -PlayingCello/v_PlayingCello_g05_c04 58 -BodyWeightSquats/v_BodyWeightSquats_g04_c02 14 -Skiing/v_Skiing_g05_c02 80 -BenchPress/v_BenchPress_g01_c03 9 -Biking/v_Biking_g03_c01 10 -BabyCrawling/v_BabyCrawling_g03_c01 3 -BenchPress/v_BenchPress_g07_c04 9 -JumpRope/v_JumpRope_g07_c01 47 -UnevenBars/v_UnevenBars_g03_c02 95 -HorseRiding/v_HorseRiding_g01_c05 41 -Biking/v_Biking_g01_c03 10 -StillRings/v_StillRings_g03_c07 85 -JugglingBalls/v_JugglingBalls_g06_c05 45 -WritingOnBoard/v_WritingOnBoard_g01_c02 99 -HulaHoop/v_HulaHoop_g04_c01 42 -Diving/v_Diving_g04_c05 25 -BlowingCandles/v_BlowingCandles_g05_c04 13 -PoleVault/v_PoleVault_g02_c04 67 -Kayaking/v_Kayaking_g06_c07 48 -FrontCrawl/v_FrontCrawl_g06_c03 31 -Bowling/v_Bowling_g06_c06 15 -Skijet/v_Skijet_g06_c03 81 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c02 28 -FrontCrawl/v_FrontCrawl_g01_c03 31 -Surfing/v_Surfing_g04_c04 87 -HeadMassage/v_HeadMassage_g06_c03 38 -PlayingDaf/v_PlayingDaf_g05_c06 59 -Mixing/v_Mixing_g02_c06 53 -Drumming/v_Drumming_g04_c01 26 -UnevenBars/v_UnevenBars_g03_c01 95 -Shotput/v_Shotput_g05_c07 78 -Basketball/v_Basketball_g03_c03 7 -MilitaryParade/v_MilitaryParade_g06_c04 52 -HandstandPushups/v_HandStandPushups_g06_c03 36 -MilitaryParade/v_MilitaryParade_g03_c04 52 -HorseRace/v_HorseRace_g03_c04 40 -PlayingGuitar/v_PlayingGuitar_g06_c06 62 -PlayingDhol/v_PlayingDhol_g04_c05 60 -CricketBowling/v_CricketBowling_g06_c04 22 -HorseRiding/v_HorseRiding_g01_c07 41 -VolleyballSpiking/v_VolleyballSpiking_g02_c01 96 -Swing/v_Swing_g04_c06 88 -Bowling/v_Bowling_g05_c07 15 -PlayingViolin/v_PlayingViolin_g03_c03 66 -RockClimbingIndoor/v_RockClimbingIndoor_g06_c01 73 -SoccerPenalty/v_SoccerPenalty_g01_c02 84 -WallPushups/v_WallPushups_g07_c05 98 -PlayingCello/v_PlayingCello_g06_c06 58 -HorseRiding/v_HorseRiding_g05_c02 41 -StillRings/v_StillRings_g03_c06 85 -LongJump/v_LongJump_g02_c03 50 -BrushingTeeth/v_BrushingTeeth_g03_c03 19 -Fencing/v_Fencing_g04_c04 27 -Shotput/v_Shotput_g02_c06 78 -Mixing/v_Mixing_g05_c04 53 -Nunchucks/v_Nunchucks_g05_c01 55 -SalsaSpin/v_SalsaSpin_g04_c05 76 -YoYo/v_YoYo_g02_c02 100 -Mixing/v_Mixing_g07_c02 53 -PlayingSitar/v_PlayingSitar_g03_c03 64 -FieldHockeyPenalty/v_FieldHockeyPenalty_g02_c01 28 -Skiing/v_Skiing_g06_c03 80 -JumpingJack/v_JumpingJack_g04_c02 46 -Shotput/v_Shotput_g01_c01 78 -TaiChi/v_TaiChi_g01_c03 90 -TableTennisShot/v_TableTennisShot_g03_c03 89 -CuttingInKitchen/v_CuttingInKitchen_g02_c04 24 -UnevenBars/v_UnevenBars_g02_c02 95 -SalsaSpin/v_SalsaSpin_g01_c03 76 -SalsaSpin/v_SalsaSpin_g05_c05 76 -IceDancing/v_IceDancing_g01_c03 43 -Kayaking/v_Kayaking_g05_c01 48 -SkyDiving/v_SkyDiving_g04_c04 82 -HammerThrow/v_HammerThrow_g06_c03 35 -Bowling/v_Bowling_g06_c01 15 -Diving/v_Diving_g06_c06 25 -BrushingTeeth/v_BrushingTeeth_g03_c04 19 -FrisbeeCatch/v_FrisbeeCatch_g03_c01 30 -BenchPress/v_BenchPress_g06_c02 9 -FrontCrawl/v_FrontCrawl_g03_c02 31 -Drumming/v_Drumming_g01_c03 26 -MoppingFloor/v_MoppingFloor_g04_c06 54 -BaseballPitch/v_BaseballPitch_g07_c02 6 -LongJump/v_LongJump_g06_c03 50 -CricketShot/v_CricketShot_g03_c05 23 -Rowing/v_Rowing_g03_c05 75 -Surfing/v_Surfing_g06_c03 87 -SumoWrestling/v_SumoWrestling_g06_c02 86 -HorseRace/v_HorseRace_g02_c03 40 -PushUps/v_PushUps_g05_c04 71 -HandstandWalking/v_HandstandWalking_g07_c06 37 -Basketball/v_Basketball_g04_c04 7 -PoleVault/v_PoleVault_g04_c01 67 -PlayingFlute/v_PlayingFlute_g03_c05 61 -WallPushups/v_WallPushups_g06_c02 98 -BlowDryHair/v_BlowDryHair_g02_c04 12 -BoxingPunchingBag/v_BoxingPunchingBag_g03_c05 16 -CricketShot/v_CricketShot_g03_c01 23 -Typing/v_Typing_g07_c03 94 -CuttingInKitchen/v_CuttingInKitchen_g03_c04 24 -SoccerJuggling/v_SoccerJuggling_g03_c01 83 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c07 28 -ParallelBars/v_ParallelBars_g02_c03 56 -ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c02 0 -JugglingBalls/v_JugglingBalls_g03_c01 45 -TaiChi/v_TaiChi_g04_c02 90 -SalsaSpin/v_SalsaSpin_g07_c03 76 -PlayingGuitar/v_PlayingGuitar_g07_c07 62 -JugglingBalls/v_JugglingBalls_g03_c02 45 -ParallelBars/v_ParallelBars_g05_c05 56 -Punch/v_Punch_g05_c05 70 -YoYo/v_YoYo_g01_c07 100 -JumpingJack/v_JumpingJack_g02_c04 46 -StillRings/v_StillRings_g02_c01 85 -Fencing/v_Fencing_g02_c02 27 -Bowling/v_Bowling_g01_c02 15 -Lunges/v_Lunges_g04_c02 51 -Basketball/v_Basketball_g01_c04 7 -FrontCrawl/v_FrontCrawl_g06_c02 31 -PizzaTossing/v_PizzaTossing_g06_c02 57 -Hammering/v_Hammering_g01_c01 34 -PlayingGuitar/v_PlayingGuitar_g03_c02 62 -Shotput/v_Shotput_g07_c03 78 -WalkingWithDog/v_WalkingWithDog_g07_c05 97 -SkyDiving/v_SkyDiving_g04_c03 82 -Shotput/v_Shotput_g05_c06 78 -SalsaSpin/v_SalsaSpin_g06_c05 76 -FieldHockeyPenalty/v_FieldHockeyPenalty_g05_c06 28 -TableTennisShot/v_TableTennisShot_g07_c04 89 -PlayingPiano/v_PlayingPiano_g01_c04 63 -PommelHorse/v_PommelHorse_g01_c02 68 -PlayingDhol/v_PlayingDhol_g02_c07 60 -Skiing/v_Skiing_g01_c01 80 -SoccerJuggling/v_SoccerJuggling_g05_c05 83 -PlayingDhol/v_PlayingDhol_g07_c01 60 -Swing/v_Swing_g02_c01 88 -PlayingDhol/v_PlayingDhol_g05_c02 60 -ThrowDiscus/v_ThrowDiscus_g07_c01 92 -HorseRace/v_HorseRace_g05_c01 40 -Skijet/v_Skijet_g03_c01 81 -JumpingJack/v_JumpingJack_g03_c01 46 -SoccerJuggling/v_SoccerJuggling_g02_c02 83 -HeadMassage/v_HeadMassage_g03_c06 38 -PommelHorse/v_PommelHorse_g01_c06 68 -CliffDiving/v_CliffDiving_g03_c02 21 -BasketballDunk/v_BasketballDunk_g05_c03 8 -BasketballDunk/v_BasketballDunk_g01_c07 8 -TaiChi/v_TaiChi_g07_c03 90 -LongJump/v_LongJump_g01_c05 50 -HandstandPushups/v_HandStandPushups_g02_c04 36 -HulaHoop/v_HulaHoop_g04_c03 42 -HammerThrow/v_HammerThrow_g03_c07 35 -PlayingPiano/v_PlayingPiano_g06_c02 63 -FrisbeeCatch/v_FrisbeeCatch_g07_c03 30 -Hammering/v_Hammering_g05_c03 34 -SumoWrestling/v_SumoWrestling_g04_c04 86 -Basketball/v_Basketball_g03_c06 7 -MoppingFloor/v_MoppingFloor_g05_c01 54 -PlayingSitar/v_PlayingSitar_g01_c04 64 -LongJump/v_LongJump_g07_c03 50 -PoleVault/v_PoleVault_g01_c01 67 -PlayingGuitar/v_PlayingGuitar_g06_c05 62 -Swing/v_Swing_g07_c02 88 -Biking/v_Biking_g06_c04 10 -Rowing/v_Rowing_g04_c03 75 -PlayingPiano/v_PlayingPiano_g03_c01 63 -PlayingViolin/v_PlayingViolin_g07_c02 66 -BaseballPitch/v_BaseballPitch_g02_c01 6 -GolfSwing/v_GolfSwing_g02_c03 32 -Billiards/v_Billiards_g04_c04 11 -Knitting/v_Knitting_g03_c02 49 -RopeClimbing/v_RopeClimbing_g04_c02 74 -Diving/v_Diving_g02_c02 25 -Mixing/v_Mixing_g02_c03 53 -IceDancing/v_IceDancing_g03_c05 43 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c05 73 -CliffDiving/v_CliffDiving_g03_c04 21 -PizzaTossing/v_PizzaTossing_g01_c01 57 -Drumming/v_Drumming_g02_c04 26 -HandstandPushups/v_HandStandPushups_g05_c03 36 -UnevenBars/v_UnevenBars_g04_c02 95 -CricketShot/v_CricketShot_g05_c07 23 -BlowDryHair/v_BlowDryHair_g07_c05 12 -TennisSwing/v_TennisSwing_g04_c05 91 -ParallelBars/v_ParallelBars_g04_c04 56 -Bowling/v_Bowling_g03_c02 15 -StillRings/v_StillRings_g07_c04 85 -CliffDiving/v_CliffDiving_g05_c05 21 -Nunchucks/v_Nunchucks_g01_c03 55 -IceDancing/v_IceDancing_g05_c02 43 -MoppingFloor/v_MoppingFloor_g06_c02 54 -Rafting/v_Rafting_g07_c02 72 -Knitting/v_Knitting_g04_c06 49 -Billiards/v_Billiards_g02_c04 11 -IceDancing/v_IceDancing_g07_c02 43 -StillRings/v_StillRings_g01_c04 85 -Hammering/v_Hammering_g06_c04 34 -Archery/v_Archery_g02_c04 2 -FloorGymnastics/v_FloorGymnastics_g06_c02 29 -CricketBowling/v_CricketBowling_g06_c01 22 -FloorGymnastics/v_FloorGymnastics_g06_c01 29 -CricketBowling/v_CricketBowling_g02_c06 22 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c03 28 -ParallelBars/v_ParallelBars_g02_c04 56 -ShavingBeard/v_ShavingBeard_g03_c05 77 -BalanceBeam/v_BalanceBeam_g02_c02 4 -ShavingBeard/v_ShavingBeard_g01_c02 77 -PlayingDhol/v_PlayingDhol_g05_c01 60 -CricketShot/v_CricketShot_g04_c07 23 -JugglingBalls/v_JugglingBalls_g06_c02 45 -BlowingCandles/v_BlowingCandles_g04_c04 13 -Biking/v_Biking_g07_c05 10 -VolleyballSpiking/v_VolleyballSpiking_g04_c05 96 -PlayingPiano/v_PlayingPiano_g04_c03 63 -PoleVault/v_PoleVault_g03_c02 67 -BrushingTeeth/v_BrushingTeeth_g01_c02 19 -BabyCrawling/v_BabyCrawling_g07_c01 3 -BasketballDunk/v_BasketballDunk_g01_c02 8 -BrushingTeeth/v_BrushingTeeth_g02_c03 19 -PlayingViolin/v_PlayingViolin_g04_c02 66 -PlayingViolin/v_PlayingViolin_g05_c03 66 -PlayingFlute/v_PlayingFlute_g02_c04 61 -VolleyballSpiking/v_VolleyballSpiking_g04_c01 96 -PizzaTossing/v_PizzaTossing_g05_c02 57 -PlayingViolin/v_PlayingViolin_g03_c01 66 -SoccerPenalty/v_SoccerPenalty_g06_c04 84 -BlowingCandles/v_BlowingCandles_g01_c04 13 -Diving/v_Diving_g07_c04 25 -Mixing/v_Mixing_g04_c05 53 -HammerThrow/v_HammerThrow_g01_c06 35 -BalanceBeam/v_BalanceBeam_g02_c03 4 -ShavingBeard/v_ShavingBeard_g02_c07 77 -TableTennisShot/v_TableTennisShot_g01_c04 89 -ThrowDiscus/v_ThrowDiscus_g02_c03 92 -TrampolineJumping/v_TrampolineJumping_g07_c01 93 -PizzaTossing/v_PizzaTossing_g02_c04 57 -SoccerPenalty/v_SoccerPenalty_g06_c05 84 -PushUps/v_PushUps_g03_c04 71 -HighJump/v_HighJump_g05_c04 39 -PoleVault/v_PoleVault_g07_c01 67 -Billiards/v_Billiards_g05_c05 11 -SkateBoarding/v_SkateBoarding_g05_c01 79 -Nunchucks/v_Nunchucks_g06_c02 55 -WritingOnBoard/v_WritingOnBoard_g05_c01 99 -BasketballDunk/v_BasketballDunk_g01_c06 8 -SumoWrestling/v_SumoWrestling_g04_c03 86 -BrushingTeeth/v_BrushingTeeth_g02_c04 19 -TrampolineJumping/v_TrampolineJumping_g04_c03 93 -PlayingSitar/v_PlayingSitar_g01_c01 64 -PoleVault/v_PoleVault_g04_c06 67 -SalsaSpin/v_SalsaSpin_g03_c02 76 -BandMarching/v_BandMarching_g05_c06 5 -BabyCrawling/v_BabyCrawling_g01_c01 3 -CricketShot/v_CricketShot_g04_c01 23 -CuttingInKitchen/v_CuttingInKitchen_g05_c05 24 -CuttingInKitchen/v_CuttingInKitchen_g05_c04 24 -TrampolineJumping/v_TrampolineJumping_g05_c04 93 -HammerThrow/v_HammerThrow_g07_c05 35 -BlowDryHair/v_BlowDryHair_g07_c02 12 -BaseballPitch/v_BaseballPitch_g04_c03 6 -CricketShot/v_CricketShot_g05_c02 23 -PlayingTabla/v_PlayingTabla_g01_c02 65 -PlayingFlute/v_PlayingFlute_g01_c01 61 -Mixing/v_Mixing_g03_c02 53 -PlayingPiano/v_PlayingPiano_g03_c02 63 -PlayingPiano/v_PlayingPiano_g02_c04 63 -MoppingFloor/v_MoppingFloor_g04_c05 54 -Swing/v_Swing_g07_c07 88 -BodyWeightSquats/v_BodyWeightSquats_g06_c02 14 -WallPushups/v_WallPushups_g01_c02 98 -RopeClimbing/v_RopeClimbing_g02_c03 74 -SoccerPenalty/v_SoccerPenalty_g02_c05 84 -WalkingWithDog/v_WalkingWithDog_g03_c03 97 -HammerThrow/v_HammerThrow_g02_c02 35 -HammerThrow/v_HammerThrow_g03_c06 35 -CliffDiving/v_CliffDiving_g02_c03 21 -Kayaking/v_Kayaking_g01_c02 48 -Bowling/v_Bowling_g05_c02 15 -Shotput/v_Shotput_g07_c04 78 -CleanAndJerk/v_CleanAndJerk_g07_c05 20 -IceDancing/v_IceDancing_g02_c04 43 -Punch/v_Punch_g04_c04 70 -BenchPress/v_BenchPress_g03_c07 9 -VolleyballSpiking/v_VolleyballSpiking_g01_c04 96 -BrushingTeeth/v_BrushingTeeth_g03_c05 19 -ThrowDiscus/v_ThrowDiscus_g04_c01 92 -JumpingJack/v_JumpingJack_g04_c03 46 -HandstandPushups/v_HandStandPushups_g04_c02 36 -PlayingGuitar/v_PlayingGuitar_g07_c05 62 -CricketShot/v_CricketShot_g01_c02 23 -HighJump/v_HighJump_g03_c01 39 -HighJump/v_HighJump_g05_c01 39 -FrontCrawl/v_FrontCrawl_g07_c05 31 -RopeClimbing/v_RopeClimbing_g03_c01 74 -LongJump/v_LongJump_g07_c05 50 -HammerThrow/v_HammerThrow_g05_c06 35 -HandstandPushups/v_HandStandPushups_g04_c03 36 -Punch/v_Punch_g01_c01 70 -TrampolineJumping/v_TrampolineJumping_g01_c04 93 -HorseRace/v_HorseRace_g04_c03 40 -HorseRiding/v_HorseRiding_g05_c06 41 -Skiing/v_Skiing_g04_c02 80 -SoccerJuggling/v_SoccerJuggling_g05_c01 83 -Rafting/v_Rafting_g03_c03 72 -Lunges/v_Lunges_g01_c04 51 -SoccerPenalty/v_SoccerPenalty_g04_c05 84 -StillRings/v_StillRings_g01_c03 85 -Swing/v_Swing_g02_c03 88 -BlowDryHair/v_BlowDryHair_g01_c01 12 -PlayingTabla/v_PlayingTabla_g06_c01 65 -FieldHockeyPenalty/v_FieldHockeyPenalty_g06_c05 28 -PlayingTabla/v_PlayingTabla_g05_c02 65 -Rafting/v_Rafting_g04_c03 72 -PullUps/v_PullUps_g04_c04 69 -FieldHockeyPenalty/v_FieldHockeyPenalty_g04_c05 28 -HandstandWalking/v_HandstandWalking_g06_c01 37 -BreastStroke/v_BreastStroke_g02_c02 18 -Rafting/v_Rafting_g02_c04 72 -PoleVault/v_PoleVault_g07_c03 67 -FloorGymnastics/v_FloorGymnastics_g02_c04 29 -Typing/v_Typing_g02_c06 94 -UnevenBars/v_UnevenBars_g05_c04 95 -Biking/v_Biking_g05_c01 10 -BenchPress/v_BenchPress_g02_c03 9 -BrushingTeeth/v_BrushingTeeth_g01_c03 19 -HulaHoop/v_HulaHoop_g01_c03 42 -Diving/v_Diving_g04_c06 25 -TennisSwing/v_TennisSwing_g02_c02 91 -SalsaSpin/v_SalsaSpin_g03_c04 76 -WallPushups/v_WallPushups_g02_c03 98 -HeadMassage/v_HeadMassage_g02_c01 38 -FloorGymnastics/v_FloorGymnastics_g06_c07 29 -Mixing/v_Mixing_g05_c06 53 -FrontCrawl/v_FrontCrawl_g07_c07 31 -HorseRace/v_HorseRace_g06_c02 40 -IceDancing/v_IceDancing_g03_c04 43 -FrisbeeCatch/v_FrisbeeCatch_g04_c03 30 -BodyWeightSquats/v_BodyWeightSquats_g04_c04 14 -ThrowDiscus/v_ThrowDiscus_g06_c03 92 -FrontCrawl/v_FrontCrawl_g03_c03 31 -Fencing/v_Fencing_g07_c03 27 -ParallelBars/v_ParallelBars_g06_c05 56 -Skijet/v_Skijet_g06_c02 81 -PlayingCello/v_PlayingCello_g02_c02 58 -CricketShot/v_CricketShot_g02_c01 23 -Basketball/v_Basketball_g01_c02 7 -FrisbeeCatch/v_FrisbeeCatch_g07_c04 30 -PlayingDhol/v_PlayingDhol_g05_c03 60 -Bowling/v_Bowling_g03_c07 15 -SoccerJuggling/v_SoccerJuggling_g07_c06 83 -HorseRiding/v_HorseRiding_g07_c01 41 -BreastStroke/v_BreastStroke_g07_c02 18 -StillRings/v_StillRings_g01_c02 85 -SoccerJuggling/v_SoccerJuggling_g04_c04 83 -IceDancing/v_IceDancing_g05_c03 43 -Diving/v_Diving_g07_c02 25 -HandstandWalking/v_HandstandWalking_g07_c03 37 -CricketShot/v_CricketShot_g01_c04 23 -Fencing/v_Fencing_g05_c05 27 -CliffDiving/v_CliffDiving_g06_c07 21 -HeadMassage/v_HeadMassage_g02_c05 38 -Knitting/v_Knitting_g05_c01 49 -HulaHoop/v_HulaHoop_g02_c01 42 -Skiing/v_Skiing_g06_c07 80 -Drumming/v_Drumming_g05_c03 26 -Knitting/v_Knitting_g04_c02 49 -CricketShot/v_CricketShot_g06_c01 23 -PlayingTabla/v_PlayingTabla_g02_c02 65 -PlayingSitar/v_PlayingSitar_g04_c01 64 -Diving/v_Diving_g06_c07 25 -Fencing/v_Fencing_g07_c01 27 -SkateBoarding/v_SkateBoarding_g07_c05 79 -Shotput/v_Shotput_g01_c04 78 -BalanceBeam/v_BalanceBeam_g06_c01 4 -RockClimbingIndoor/v_RockClimbingIndoor_g03_c01 73 -WalkingWithDog/v_WalkingWithDog_g02_c02 97 -Nunchucks/v_Nunchucks_g01_c04 55 -CricketShot/v_CricketShot_g07_c01 23 -Haircut/v_Haircut_g07_c02 33 -HulaHoop/v_HulaHoop_g07_c04 42 -HammerThrow/v_HammerThrow_g05_c03 35 -PlayingTabla/v_PlayingTabla_g05_c04 65 -HorseRiding/v_HorseRiding_g04_c07 41 -LongJump/v_LongJump_g07_c02 50 -PlayingTabla/v_PlayingTabla_g04_c06 65 -FloorGymnastics/v_FloorGymnastics_g02_c02 29 -SumoWrestling/v_SumoWrestling_g01_c02 86 -Skijet/v_Skijet_g04_c01 81 -BoxingPunchingBag/v_BoxingPunchingBag_g05_c05 16 -CliffDiving/v_CliffDiving_g05_c07 21 diff --git a/examples/LRCN_activity_recognition/ucf101_split1_trainVideos.txt b/examples/LRCN_activity_recognition/ucf101_split1_trainVideos.txt deleted file mode 100644 index 9158885e5..000000000 --- a/examples/LRCN_activity_recognition/ucf101_split1_trainVideos.txt +++ /dev/null @@ -1,9537 +0,0 @@ -TableTennisShot/v_TableTennisShot_g19_c03 89 -MilitaryParade/v_MilitaryParade_g09_c06 52 -RopeClimbing/v_RopeClimbing_g16_c01 74 -HandstandPushups/v_HandStandPushups_g09_c01 36 -CliffDiving/v_CliffDiving_g21_c02 21 -Knitting/v_Knitting_g17_c05 49 -ShavingBeard/v_ShavingBeard_g08_c03 77 -BoxingSpeedBag/v_BoxingSpeedBag_g23_c04 17 -BabyCrawling/v_BabyCrawling_g20_c01 3 -Knitting/v_Knitting_g25_c07 49 -PlayingDhol/v_PlayingDhol_g16_c03 60 -HeadMassage/v_HeadMassage_g24_c01 38 -PlayingDaf/v_PlayingDaf_g12_c02 59 -JugglingBalls/v_JugglingBalls_g12_c03 45 -ParallelBars/v_ParallelBars_g24_c02 56 -Nunchucks/v_Nunchucks_g24_c05 55 -WallPushups/v_WallPushups_g21_c06 98 -ShavingBeard/v_ShavingBeard_g21_c05 77 -SalsaSpin/v_SalsaSpin_g19_c02 76 -HandstandWalking/v_HandstandWalking_g10_c03 37 -Skiing/v_Skiing_g18_c01 80 -PlayingDhol/v_PlayingDhol_g15_c04 60 -TrampolineJumping/v_TrampolineJumping_g21_c03 93 -Skiing/v_Skiing_g13_c05 80 -FrontCrawl/v_FrontCrawl_g17_c04 31 -LongJump/v_LongJump_g08_c02 50 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c03 73 -BrushingTeeth/v_BrushingTeeth_g23_c02 19 -Knitting/v_Knitting_g15_c07 49 -Swing/v_Swing_g23_c05 88 -BasketballDunk/v_BasketballDunk_g10_c04 8 -Skiing/v_Skiing_g09_c05 80 -PullUps/v_PullUps_g09_c03 69 -BrushingTeeth/v_BrushingTeeth_g14_c01 19 -BandMarching/v_BandMarching_g08_c02 5 -Kayaking/v_Kayaking_g25_c01 48 -Nunchucks/v_Nunchucks_g21_c02 55 -JumpRope/v_JumpRope_g16_c03 47 -BaseballPitch/v_BaseballPitch_g18_c06 6 -PizzaTossing/v_PizzaTossing_g24_c02 57 -ThrowDiscus/v_ThrowDiscus_g17_c02 92 -JugglingBalls/v_JugglingBalls_g09_c03 45 -HandstandWalking/v_HandstandWalking_g11_c01 37 -IceDancing/v_IceDancing_g24_c05 43 -Bowling/v_Bowling_g11_c05 15 -HorseRiding/v_HorseRiding_g11_c03 41 -HandstandPushups/v_HandStandPushups_g20_c01 36 -TableTennisShot/v_TableTennisShot_g10_c03 89 -CliffDiving/v_CliffDiving_g22_c04 21 -HammerThrow/v_HammerThrow_g09_c07 35 -Rowing/v_Rowing_g22_c03 75 -Haircut/v_Haircut_g08_c05 33 -PlayingFlute/v_PlayingFlute_g13_c04 61 -HeadMassage/v_HeadMassage_g17_c03 38 -CricketShot/v_CricketShot_g19_c02 23 -Biking/v_Biking_g10_c04 10 -ParallelBars/v_ParallelBars_g08_c02 56 -PushUps/v_PushUps_g21_c03 71 -PlayingCello/v_PlayingCello_g24_c04 58 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c01 0 -WalkingWithDog/v_WalkingWithDog_g22_c01 97 -TennisSwing/v_TennisSwing_g12_c02 91 -PizzaTossing/v_PizzaTossing_g23_c02 57 -SkyDiving/v_SkyDiving_g14_c04 82 -ApplyLipstick/v_ApplyLipstick_g15_c02 1 -ParallelBars/v_ParallelBars_g11_c06 56 -SumoWrestling/v_SumoWrestling_g18_c03 86 -JumpRope/v_JumpRope_g25_c03 47 -ThrowDiscus/v_ThrowDiscus_g25_c01 92 -HeadMassage/v_HeadMassage_g24_c02 38 -UnevenBars/v_UnevenBars_g13_c04 95 -Rowing/v_Rowing_g09_c01 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g11_c02 0 -Punch/v_Punch_g23_c03 70 -FrontCrawl/v_FrontCrawl_g17_c02 31 -VolleyballSpiking/v_VolleyballSpiking_g10_c02 96 -WritingOnBoard/v_WritingOnBoard_g21_c01 99 -PizzaTossing/v_PizzaTossing_g19_c04 57 -PlayingSitar/v_PlayingSitar_g08_c07 64 -FrisbeeCatch/v_FrisbeeCatch_g19_c04 30 -BoxingSpeedBag/v_BoxingSpeedBag_g19_c02 17 -CricketShot/v_CricketShot_g09_c02 23 -Lunges/v_Lunges_g15_c02 51 -Typing/v_Typing_g14_c03 94 -ApplyEyeMakeup/v_ApplyEyeMakeup_g11_c04 0 -YoYo/v_YoYo_g09_c04 100 -BoxingSpeedBag/v_BoxingSpeedBag_g12_c02 17 -PullUps/v_PullUps_g22_c01 69 -Hammering/v_Hammering_g19_c03 34 -WritingOnBoard/v_WritingOnBoard_g11_c06 99 -HandstandPushups/v_HandStandPushups_g09_c04 36 -FrontCrawl/v_FrontCrawl_g25_c04 31 -FloorGymnastics/v_FloorGymnastics_g08_c02 29 -Nunchucks/v_Nunchucks_g20_c04 55 -SoccerPenalty/v_SoccerPenalty_g22_c02 84 -ApplyEyeMakeup/v_ApplyEyeMakeup_g14_c01 0 -IceDancing/v_IceDancing_g12_c03 43 -Punch/v_Punch_g24_c07 70 -PlayingGuitar/v_PlayingGuitar_g14_c02 62 -StillRings/v_StillRings_g09_c02 85 -CricketShot/v_CricketShot_g11_c04 23 -Kayaking/v_Kayaking_g12_c01 48 -Basketball/v_Basketball_g22_c07 7 -HorseRace/v_HorseRace_g11_c03 40 -Rafting/v_Rafting_g13_c05 72 -CuttingInKitchen/v_CuttingInKitchen_g08_c02 24 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c05 73 -Knitting/v_Knitting_g09_c05 49 -Knitting/v_Knitting_g25_c05 49 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c01 0 -ApplyLipstick/v_ApplyLipstick_g08_c04 1 -JumpRope/v_JumpRope_g13_c03 47 -CuttingInKitchen/v_CuttingInKitchen_g21_c04 24 -StillRings/v_StillRings_g08_c04 85 -HammerThrow/v_HammerThrow_g19_c05 35 -BoxingPunchingBag/v_BoxingPunchingBag_g13_c01 16 -ShavingBeard/v_ShavingBeard_g10_c01 77 -Basketball/v_Basketball_g08_c02 7 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c01 0 -CricketBowling/v_CricketBowling_g25_c05 22 -TaiChi/v_TaiChi_g09_c01 90 -YoYo/v_YoYo_g10_c03 100 -PlayingSitar/v_PlayingSitar_g22_c05 64 -LongJump/v_LongJump_g19_c01 50 -ApplyEyeMakeup/v_ApplyEyeMakeup_g18_c03 0 -WallPushups/v_WallPushups_g09_c04 98 -PizzaTossing/v_PizzaTossing_g24_c03 57 -BreastStroke/v_BreastStroke_g22_c01 18 -BabyCrawling/v_BabyCrawling_g16_c03 3 -WalkingWithDog/v_WalkingWithDog_g08_c03 97 -FrisbeeCatch/v_FrisbeeCatch_g20_c02 30 -BalanceBeam/v_BalanceBeam_g13_c01 4 -Knitting/v_Knitting_g12_c02 49 -ParallelBars/v_ParallelBars_g13_c03 56 -PlayingSitar/v_PlayingSitar_g13_c03 64 -Mixing/v_Mixing_g14_c07 53 -BandMarching/v_BandMarching_g09_c01 5 -HeadMassage/v_HeadMassage_g10_c02 38 -PlayingFlute/v_PlayingFlute_g21_c05 61 -PlayingSitar/v_PlayingSitar_g23_c05 64 -PommelHorse/v_PommelHorse_g17_c03 68 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c05 16 -IceDancing/v_IceDancing_g10_c03 43 -SkateBoarding/v_SkateBoarding_g10_c03 79 -Mixing/v_Mixing_g23_c03 53 -PullUps/v_PullUps_g20_c04 69 -BaseballPitch/v_BaseballPitch_g13_c03 6 -Bowling/v_Bowling_g08_c01 15 -JavelinThrow/v_JavelinThrow_g21_c04 44 -ShavingBeard/v_ShavingBeard_g18_c06 77 -BalanceBeam/v_BalanceBeam_g13_c02 4 -BalanceBeam/v_BalanceBeam_g08_c01 4 -JugglingBalls/v_JugglingBalls_g23_c03 45 -GolfSwing/v_GolfSwing_g19_c03 32 -Haircut/v_Haircut_g20_c03 33 -YoYo/v_YoYo_g10_c05 100 -BasketballDunk/v_BasketballDunk_g15_c02 8 -PommelHorse/v_PommelHorse_g14_c03 68 -HorseRiding/v_HorseRiding_g16_c05 41 -BandMarching/v_BandMarching_g21_c03 5 -BlowDryHair/v_BlowDryHair_g22_c01 12 -BrushingTeeth/v_BrushingTeeth_g21_c01 19 -TennisSwing/v_TennisSwing_g11_c04 91 -Drumming/v_Drumming_g09_c02 26 -BodyWeightSquats/v_BodyWeightSquats_g09_c03 14 -Archery/v_Archery_g18_c03 2 -Skijet/v_Skijet_g20_c01 81 -MoppingFloor/v_MoppingFloor_g14_c03 54 -PlayingDaf/v_PlayingDaf_g21_c05 59 -PlayingDhol/v_PlayingDhol_g25_c03 60 -StillRings/v_StillRings_g16_c04 85 -Shotput/v_Shotput_g11_c05 78 -Haircut/v_Haircut_g08_c04 33 -Lunges/v_Lunges_g08_c01 51 -PlayingDhol/v_PlayingDhol_g17_c05 60 -Fencing/v_Fencing_g12_c02 27 -Surfing/v_Surfing_g12_c05 87 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c01 73 -SkyDiving/v_SkyDiving_g22_c02 82 -Archery/v_Archery_g16_c03 2 -Swing/v_Swing_g16_c05 88 -CricketBowling/v_CricketBowling_g10_c01 22 -PlayingDaf/v_PlayingDaf_g20_c03 59 -CricketShot/v_CricketShot_g24_c04 23 -SumoWrestling/v_SumoWrestling_g16_c02 86 -SumoWrestling/v_SumoWrestling_g21_c03 86 -BaseballPitch/v_BaseballPitch_g15_c01 6 -CricketShot/v_CricketShot_g10_c05 23 -Skijet/v_Skijet_g23_c02 81 -TennisSwing/v_TennisSwing_g15_c04 91 -Punch/v_Punch_g25_c06 70 -TableTennisShot/v_TableTennisShot_g16_c03 89 -StillRings/v_StillRings_g12_c02 85 -CleanAndJerk/v_CleanAndJerk_g23_c02 20 -Kayaking/v_Kayaking_g12_c03 48 -PullUps/v_PullUps_g18_c04 69 -CricketShot/v_CricketShot_g17_c04 23 -Nunchucks/v_Nunchucks_g08_c03 55 -BlowDryHair/v_BlowDryHair_g25_c02 12 -HorseRace/v_HorseRace_g21_c02 40 -Surfing/v_Surfing_g13_c03 87 -HeadMassage/v_HeadMassage_g13_c03 38 -Typing/v_Typing_g24_c04 94 -BoxingSpeedBag/v_BoxingSpeedBag_g24_c02 17 -CliffDiving/v_CliffDiving_g16_c04 21 -ThrowDiscus/v_ThrowDiscus_g22_c04 92 -CricketBowling/v_CricketBowling_g17_c01 22 -BlowDryHair/v_BlowDryHair_g14_c04 12 -BenchPress/v_BenchPress_g20_c06 9 -SkyDiving/v_SkyDiving_g20_c03 82 -TaiChi/v_TaiChi_g20_c04 90 -PlayingGuitar/v_PlayingGuitar_g14_c05 62 -BreastStroke/v_BreastStroke_g24_c03 18 -TableTennisShot/v_TableTennisShot_g22_c01 89 -JavelinThrow/v_JavelinThrow_g09_c02 44 -Haircut/v_Haircut_g21_c03 33 -FloorGymnastics/v_FloorGymnastics_g09_c04 29 -HighJump/v_HighJump_g25_c04 39 -ThrowDiscus/v_ThrowDiscus_g20_c01 92 -ThrowDiscus/v_ThrowDiscus_g15_c03 92 -SoccerPenalty/v_SoccerPenalty_g24_c03 84 -SoccerPenalty/v_SoccerPenalty_g24_c05 84 -TableTennisShot/v_TableTennisShot_g15_c07 89 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c01 16 -Bowling/v_Bowling_g14_c02 15 -TrampolineJumping/v_TrampolineJumping_g11_c02 93 -Billiards/v_Billiards_g12_c01 11 -JavelinThrow/v_JavelinThrow_g08_c04 44 -HorseRiding/v_HorseRiding_g18_c05 41 -PullUps/v_PullUps_g16_c04 69 -ApplyLipstick/v_ApplyLipstick_g08_c01 1 -PlayingViolin/v_PlayingViolin_g14_c03 66 -ThrowDiscus/v_ThrowDiscus_g16_c03 92 -JumpRope/v_JumpRope_g21_c04 47 -MilitaryParade/v_MilitaryParade_g20_c04 52 -HandstandWalking/v_HandstandWalking_g20_c04 37 -Archery/v_Archery_g24_c01 2 -FrontCrawl/v_FrontCrawl_g14_c04 31 -Skijet/v_Skijet_g19_c02 81 -GolfSwing/v_GolfSwing_g08_c04 32 -HulaHoop/v_HulaHoop_g23_c01 42 -TableTennisShot/v_TableTennisShot_g14_c05 89 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c05 73 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c02 16 -ShavingBeard/v_ShavingBeard_g23_c01 77 -Haircut/v_Haircut_g23_c06 33 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c02 73 -FrontCrawl/v_FrontCrawl_g24_c06 31 -WritingOnBoard/v_WritingOnBoard_g15_c04 99 -HorseRiding/v_HorseRiding_g09_c05 41 -PizzaTossing/v_PizzaTossing_g12_c04 57 -Rafting/v_Rafting_g17_c02 72 -Drumming/v_Drumming_g14_c02 26 -HorseRiding/v_HorseRiding_g25_c02 41 -Basketball/v_Basketball_g11_c03 7 -PlayingGuitar/v_PlayingGuitar_g19_c01 62 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c03 73 -PlayingViolin/v_PlayingViolin_g20_c03 66 -RopeClimbing/v_RopeClimbing_g19_c07 74 -PoleVault/v_PoleVault_g11_c04 67 -HulaHoop/v_HulaHoop_g17_c05 42 -Bowling/v_Bowling_g24_c06 15 -PlayingGuitar/v_PlayingGuitar_g16_c01 62 -ShavingBeard/v_ShavingBeard_g08_c07 77 -PlayingGuitar/v_PlayingGuitar_g23_c06 62 -Hammering/v_Hammering_g20_c04 34 -HulaHoop/v_HulaHoop_g17_c02 42 -FrontCrawl/v_FrontCrawl_g08_c03 31 -Fencing/v_Fencing_g12_c04 27 -BandMarching/v_BandMarching_g13_c05 5 -SumoWrestling/v_SumoWrestling_g10_c01 86 -PlayingDaf/v_PlayingDaf_g22_c07 59 -BandMarching/v_BandMarching_g19_c02 5 -HammerThrow/v_HammerThrow_g12_c05 35 -Fencing/v_Fencing_g10_c02 27 -MoppingFloor/v_MoppingFloor_g20_c04 54 -ThrowDiscus/v_ThrowDiscus_g10_c04 92 -Drumming/v_Drumming_g24_c07 26 -BasketballDunk/v_BasketballDunk_g09_c03 8 -CricketShot/v_CricketShot_g12_c05 23 -Typing/v_Typing_g16_c03 94 -PlayingSitar/v_PlayingSitar_g08_c06 64 -Bowling/v_Bowling_g19_c01 15 -Fencing/v_Fencing_g09_c01 27 -Hammering/v_Hammering_g17_c06 34 -Rowing/v_Rowing_g25_c04 75 -Nunchucks/v_Nunchucks_g23_c01 55 -GolfSwing/v_GolfSwing_g25_c03 32 -RopeClimbing/v_RopeClimbing_g15_c05 74 -BenchPress/v_BenchPress_g18_c02 9 -Lunges/v_Lunges_g10_c03 51 -PommelHorse/v_PommelHorse_g18_c01 68 -PlayingDhol/v_PlayingDhol_g16_c05 60 -IceDancing/v_IceDancing_g15_c02 43 -PushUps/v_PushUps_g16_c03 71 -BreastStroke/v_BreastStroke_g25_c04 18 -HulaHoop/v_HulaHoop_g16_c05 42 -SoccerJuggling/v_SoccerJuggling_g17_c03 83 -Billiards/v_Billiards_g10_c01 11 -Bowling/v_Bowling_g14_c01 15 -BabyCrawling/v_BabyCrawling_g19_c05 3 -HandstandWalking/v_HandstandWalking_g17_c04 37 -RopeClimbing/v_RopeClimbing_g12_c04 74 -Bowling/v_Bowling_g11_c06 15 -PlayingSitar/v_PlayingSitar_g18_c01 64 -PlayingDhol/v_PlayingDhol_g08_c02 60 -Billiards/v_Billiards_g19_c01 11 -Skijet/v_Skijet_g17_c04 81 -WritingOnBoard/v_WritingOnBoard_g15_c02 99 -SoccerJuggling/v_SoccerJuggling_g13_c04 83 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c04 17 -HorseRiding/v_HorseRiding_g23_c01 41 -PlayingSitar/v_PlayingSitar_g18_c07 64 -FrisbeeCatch/v_FrisbeeCatch_g22_c06 30 -IceDancing/v_IceDancing_g14_c05 43 -Billiards/v_Billiards_g08_c02 11 -WritingOnBoard/v_WritingOnBoard_g13_c02 99 -FloorGymnastics/v_FloorGymnastics_g17_c04 29 -HandstandPushups/v_HandStandPushups_g25_c05 36 -Billiards/v_Billiards_g25_c07 11 -BenchPress/v_BenchPress_g20_c05 9 -PlayingGuitar/v_PlayingGuitar_g21_c03 62 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c03 16 -StillRings/v_StillRings_g22_c04 85 -UnevenBars/v_UnevenBars_g17_c01 95 -SkateBoarding/v_SkateBoarding_g22_c03 79 -Bowling/v_Bowling_g10_c04 15 -Rowing/v_Rowing_g14_c04 75 -Rowing/v_Rowing_g13_c04 75 -Rowing/v_Rowing_g18_c01 75 -HorseRace/v_HorseRace_g14_c03 40 -SkyDiving/v_SkyDiving_g09_c01 82 -PoleVault/v_PoleVault_g25_c02 67 -Kayaking/v_Kayaking_g22_c03 48 -SalsaSpin/v_SalsaSpin_g10_c04 76 -PlayingViolin/v_PlayingViolin_g17_c01 66 -Bowling/v_Bowling_g08_c03 15 -Knitting/v_Knitting_g24_c04 49 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c07 73 -Skiing/v_Skiing_g08_c05 80 -JumpRope/v_JumpRope_g25_c05 47 -Punch/v_Punch_g25_c03 70 -Rowing/v_Rowing_g10_c04 75 -HandstandWalking/v_HandstandWalking_g25_c01 37 -Billiards/v_Billiards_g19_c05 11 -CricketBowling/v_CricketBowling_g25_c06 22 -SkyDiving/v_SkyDiving_g17_c01 82 -Swing/v_Swing_g15_c07 88 -Punch/v_Punch_g12_c06 70 -Typing/v_Typing_g10_c02 94 -UnevenBars/v_UnevenBars_g10_c01 95 -MilitaryParade/v_MilitaryParade_g19_c02 52 -BasketballDunk/v_BasketballDunk_g13_c04 8 -FloorGymnastics/v_FloorGymnastics_g20_c02 29 -BalanceBeam/v_BalanceBeam_g22_c04 4 -CricketShot/v_CricketShot_g10_c07 23 -WallPushups/v_WallPushups_g25_c02 98 -WalkingWithDog/v_WalkingWithDog_g15_c04 97 -JumpingJack/v_JumpingJack_g25_c01 46 -BabyCrawling/v_BabyCrawling_g15_c05 3 -UnevenBars/v_UnevenBars_g20_c01 95 -TaiChi/v_TaiChi_g11_c01 90 -PlayingDaf/v_PlayingDaf_g25_c04 59 -CliffDiving/v_CliffDiving_g16_c01 21 -FloorGymnastics/v_FloorGymnastics_g12_c03 29 -RockClimbingIndoor/v_RockClimbingIndoor_g18_c02 73 -PlayingDhol/v_PlayingDhol_g20_c04 60 -Shotput/v_Shotput_g09_c03 78 -BodyWeightSquats/v_BodyWeightSquats_g14_c04 14 -Typing/v_Typing_g18_c04 94 -ThrowDiscus/v_ThrowDiscus_g25_c05 92 -BenchPress/v_BenchPress_g09_c07 9 -Surfing/v_Surfing_g12_c06 87 -LongJump/v_LongJump_g12_c01 50 -Swing/v_Swing_g11_c06 88 -Nunchucks/v_Nunchucks_g24_c01 55 -TaiChi/v_TaiChi_g15_c03 90 -Kayaking/v_Kayaking_g22_c01 48 -Surfing/v_Surfing_g18_c02 87 -Billiards/v_Billiards_g09_c05 11 -PoleVault/v_PoleVault_g24_c03 67 -FrontCrawl/v_FrontCrawl_g09_c06 31 -TableTennisShot/v_TableTennisShot_g19_c02 89 -ShavingBeard/v_ShavingBeard_g08_c04 77 -BlowDryHair/v_BlowDryHair_g20_c04 12 -WallPushups/v_WallPushups_g22_c04 98 -Typing/v_Typing_g14_c02 94 -BandMarching/v_BandMarching_g15_c02 5 -BreastStroke/v_BreastStroke_g20_c01 18 -BaseballPitch/v_BaseballPitch_g18_c02 6 -JugglingBalls/v_JugglingBalls_g08_c01 45 -HulaHoop/v_HulaHoop_g15_c05 42 -PlayingPiano/v_PlayingPiano_g12_c01 63 -Billiards/v_Billiards_g09_c04 11 -BandMarching/v_BandMarching_g14_c02 5 -Surfing/v_Surfing_g15_c06 87 -BandMarching/v_BandMarching_g19_c07 5 -BrushingTeeth/v_BrushingTeeth_g12_c05 19 -Kayaking/v_Kayaking_g16_c01 48 -ShavingBeard/v_ShavingBeard_g13_c05 77 -Skiing/v_Skiing_g12_c02 80 -Skijet/v_Skijet_g23_c04 81 -PlayingTabla/v_PlayingTabla_g12_c01 65 -PlayingTabla/v_PlayingTabla_g09_c03 65 -Lunges/v_Lunges_g09_c03 51 -Bowling/v_Bowling_g17_c01 15 -PlayingPiano/v_PlayingPiano_g25_c04 63 -PizzaTossing/v_PizzaTossing_g13_c04 57 -Shotput/v_Shotput_g17_c05 78 -WallPushups/v_WallPushups_g21_c02 98 -BaseballPitch/v_BaseballPitch_g18_c04 6 -Billiards/v_Billiards_g16_c03 11 -PullUps/v_PullUps_g21_c04 69 -BenchPress/v_BenchPress_g22_c04 9 -Haircut/v_Haircut_g15_c03 33 -Skiing/v_Skiing_g25_c03 80 -JumpRope/v_JumpRope_g09_c01 47 -PlayingSitar/v_PlayingSitar_g17_c02 64 -PommelHorse/v_PommelHorse_g14_c02 68 -TableTennisShot/v_TableTennisShot_g23_c04 89 -SoccerPenalty/v_SoccerPenalty_g21_c03 84 -Surfing/v_Surfing_g11_c03 87 -FrisbeeCatch/v_FrisbeeCatch_g14_c01 30 -HorseRiding/v_HorseRiding_g17_c05 41 -Biking/v_Biking_g14_c01 10 -HandstandPushups/v_HandStandPushups_g13_c03 36 -BabyCrawling/v_BabyCrawling_g18_c02 3 -Shotput/v_Shotput_g21_c03 78 -TennisSwing/v_TennisSwing_g24_c04 91 -PullUps/v_PullUps_g19_c01 69 -BreastStroke/v_BreastStroke_g16_c02 18 -WallPushups/v_WallPushups_g23_c01 98 -BandMarching/v_BandMarching_g24_c01 5 -SalsaSpin/v_SalsaSpin_g16_c03 76 -Typing/v_Typing_g12_c03 94 -CuttingInKitchen/v_CuttingInKitchen_g19_c01 24 -PlayingTabla/v_PlayingTabla_g13_c02 65 -Haircut/v_Haircut_g12_c01 33 -Surfing/v_Surfing_g20_c04 87 -PlayingCello/v_PlayingCello_g09_c02 58 -SoccerJuggling/v_SoccerJuggling_g12_c05 83 -PlayingPiano/v_PlayingPiano_g21_c02 63 -HandstandWalking/v_HandstandWalking_g21_c03 37 -UnevenBars/v_UnevenBars_g16_c02 95 -Fencing/v_Fencing_g12_c03 27 -Archery/v_Archery_g19_c03 2 -MilitaryParade/v_MilitaryParade_g15_c07 52 -CliffDiving/v_CliffDiving_g09_c04 21 -FloorGymnastics/v_FloorGymnastics_g10_c02 29 -UnevenBars/v_UnevenBars_g22_c04 95 -CuttingInKitchen/v_CuttingInKitchen_g13_c04 24 -PlayingTabla/v_PlayingTabla_g23_c02 65 -Lunges/v_Lunges_g10_c01 51 -Typing/v_Typing_g08_c01 94 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c03 16 -JugglingBalls/v_JugglingBalls_g22_c05 45 -BandMarching/v_BandMarching_g09_c03 5 -PlayingFlute/v_PlayingFlute_g10_c01 61 -Kayaking/v_Kayaking_g20_c02 48 -Surfing/v_Surfing_g13_c01 87 -PlayingDaf/v_PlayingDaf_g19_c02 59 -ApplyLipstick/v_ApplyLipstick_g16_c01 1 -PoleVault/v_PoleVault_g19_c04 67 -Punch/v_Punch_g15_c05 70 -PlayingPiano/v_PlayingPiano_g22_c03 63 -BrushingTeeth/v_BrushingTeeth_g08_c01 19 -PlayingViolin/v_PlayingViolin_g17_c04 66 -Rowing/v_Rowing_g16_c02 75 -Haircut/v_Haircut_g10_c07 33 -SumoWrestling/v_SumoWrestling_g16_c03 86 -JumpRope/v_JumpRope_g17_c01 47 -UnevenBars/v_UnevenBars_g16_c04 95 -WritingOnBoard/v_WritingOnBoard_g17_c04 99 -JumpRope/v_JumpRope_g09_c07 47 -UnevenBars/v_UnevenBars_g12_c02 95 -FloorGymnastics/v_FloorGymnastics_g24_c01 29 -HorseRiding/v_HorseRiding_g24_c07 41 -Billiards/v_Billiards_g19_c03 11 -TableTennisShot/v_TableTennisShot_g17_c03 89 -PlayingFlute/v_PlayingFlute_g11_c04 61 -Bowling/v_Bowling_g23_c02 15 -JugglingBalls/v_JugglingBalls_g25_c02 45 -BenchPress/v_BenchPress_g17_c01 9 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c03 17 -Diving/v_Diving_g15_c02 25 -HandstandPushups/v_HandStandPushups_g20_c06 36 -HulaHoop/v_HulaHoop_g16_c02 42 -Lunges/v_Lunges_g12_c03 51 -GolfSwing/v_GolfSwing_g18_c03 32 -PommelHorse/v_PommelHorse_g22_c02 68 -Drumming/v_Drumming_g13_c04 26 -IceDancing/v_IceDancing_g10_c01 43 -PoleVault/v_PoleVault_g14_c06 67 -Archery/v_Archery_g09_c03 2 -Surfing/v_Surfing_g23_c03 87 -CleanAndJerk/v_CleanAndJerk_g11_c04 20 -ShavingBeard/v_ShavingBeard_g12_c03 77 -FrisbeeCatch/v_FrisbeeCatch_g13_c03 30 -VolleyballSpiking/v_VolleyballSpiking_g25_c02 96 -BabyCrawling/v_BabyCrawling_g20_c05 3 -BaseballPitch/v_BaseballPitch_g22_c07 6 -ThrowDiscus/v_ThrowDiscus_g17_c05 92 -Fencing/v_Fencing_g10_c03 27 -HorseRiding/v_HorseRiding_g21_c05 41 -Rafting/v_Rafting_g23_c04 72 -SkyDiving/v_SkyDiving_g16_c02 82 -Archery/v_Archery_g15_c07 2 -GolfSwing/v_GolfSwing_g11_c01 32 -LongJump/v_LongJump_g09_c06 50 -PoleVault/v_PoleVault_g23_c07 67 -WalkingWithDog/v_WalkingWithDog_g09_c04 97 -Mixing/v_Mixing_g18_c03 53 -MoppingFloor/v_MoppingFloor_g23_c03 54 -PlayingSitar/v_PlayingSitar_g10_c07 64 -HandstandWalking/v_HandstandWalking_g16_c03 37 -GolfSwing/v_GolfSwing_g21_c04 32 -BenchPress/v_BenchPress_g24_c02 9 -SkyDiving/v_SkyDiving_g15_c05 82 -JavelinThrow/v_JavelinThrow_g16_c01 44 -PullUps/v_PullUps_g08_c02 69 -SumoWrestling/v_SumoWrestling_g24_c01 86 -PlayingCello/v_PlayingCello_g10_c07 58 -JumpRope/v_JumpRope_g25_c06 47 -HandstandWalking/v_HandstandWalking_g13_c03 37 -JumpRope/v_JumpRope_g20_c04 47 -JumpRope/v_JumpRope_g25_c02 47 -StillRings/v_StillRings_g25_c04 85 -WallPushups/v_WallPushups_g14_c02 98 -PizzaTossing/v_PizzaTossing_g21_c03 57 -GolfSwing/v_GolfSwing_g23_c05 32 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c02 28 -BalanceBeam/v_BalanceBeam_g15_c03 4 -Drumming/v_Drumming_g13_c02 26 -CuttingInKitchen/v_CuttingInKitchen_g09_c02 24 -Skijet/v_Skijet_g21_c03 81 -Nunchucks/v_Nunchucks_g17_c02 55 -Punch/v_Punch_g14_c07 70 -BabyCrawling/v_BabyCrawling_g08_c03 3 -LongJump/v_LongJump_g11_c02 50 -IceDancing/v_IceDancing_g09_c04 43 -CliffDiving/v_CliffDiving_g15_c03 21 -TableTennisShot/v_TableTennisShot_g14_c04 89 -YoYo/v_YoYo_g14_c02 100 -Nunchucks/v_Nunchucks_g13_c05 55 -PlayingDhol/v_PlayingDhol_g09_c01 60 -Billiards/v_Billiards_g15_c06 11 -PlayingCello/v_PlayingCello_g13_c07 58 -HulaHoop/v_HulaHoop_g25_c05 42 -Haircut/v_Haircut_g15_c01 33 -CleanAndJerk/v_CleanAndJerk_g23_c04 20 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c02 0 -PommelHorse/v_PommelHorse_g12_c07 68 -TennisSwing/v_TennisSwing_g15_c05 91 -PlayingFlute/v_PlayingFlute_g12_c01 61 -LongJump/v_LongJump_g08_c05 50 -MilitaryParade/v_MilitaryParade_g23_c04 52 -BlowingCandles/v_BlowingCandles_g10_c04 13 -LongJump/v_LongJump_g19_c03 50 -CuttingInKitchen/v_CuttingInKitchen_g17_c01 24 -PlayingPiano/v_PlayingPiano_g14_c02 63 -PlayingPiano/v_PlayingPiano_g22_c02 63 -SoccerJuggling/v_SoccerJuggling_g23_c04 83 -SkateBoarding/v_SkateBoarding_g21_c03 79 -HorseRiding/v_HorseRiding_g25_c04 41 -SalsaSpin/v_SalsaSpin_g12_c04 76 -SumoWrestling/v_SumoWrestling_g13_c02 86 -CricketBowling/v_CricketBowling_g25_c04 22 -SalsaSpin/v_SalsaSpin_g09_c06 76 -IceDancing/v_IceDancing_g25_c04 43 -Surfing/v_Surfing_g17_c01 87 -Punch/v_Punch_g23_c07 70 -WallPushups/v_WallPushups_g09_c01 98 -LongJump/v_LongJump_g16_c05 50 -JavelinThrow/v_JavelinThrow_g13_c02 44 -BasketballDunk/v_BasketballDunk_g24_c01 8 -YoYo/v_YoYo_g14_c03 100 -PlayingTabla/v_PlayingTabla_g18_c03 65 -YoYo/v_YoYo_g15_c03 100 -TableTennisShot/v_TableTennisShot_g21_c01 89 -MoppingFloor/v_MoppingFloor_g24_c03 54 -BalanceBeam/v_BalanceBeam_g14_c01 4 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c07 0 -PlayingPiano/v_PlayingPiano_g08_c02 63 -Diving/v_Diving_g12_c02 25 -CricketShot/v_CricketShot_g13_c07 23 -ShavingBeard/v_ShavingBeard_g10_c07 77 -PlayingGuitar/v_PlayingGuitar_g22_c02 62 -CricketBowling/v_CricketBowling_g12_c04 22 -CricketBowling/v_CricketBowling_g25_c01 22 -PlayingCello/v_PlayingCello_g10_c02 58 -JumpRope/v_JumpRope_g20_c02 47 -FrontCrawl/v_FrontCrawl_g23_c06 31 -HighJump/v_HighJump_g15_c02 39 -PommelHorse/v_PommelHorse_g13_c07 68 -CricketShot/v_CricketShot_g23_c01 23 -TrampolineJumping/v_TrampolineJumping_g16_c05 93 -HorseRace/v_HorseRace_g11_c02 40 -SoccerJuggling/v_SoccerJuggling_g11_c02 83 -Drumming/v_Drumming_g13_c07 26 -PoleVault/v_PoleVault_g24_c05 67 -CleanAndJerk/v_CleanAndJerk_g17_c01 20 -FieldHockeyPenalty/v_FieldHockeyPenalty_g17_c02 28 -BlowDryHair/v_BlowDryHair_g23_c01 12 -HulaHoop/v_HulaHoop_g21_c04 42 -Haircut/v_Haircut_g10_c06 33 -Kayaking/v_Kayaking_g16_c02 48 -BandMarching/v_BandMarching_g15_c01 5 -Basketball/v_Basketball_g10_c02 7 -FrontCrawl/v_FrontCrawl_g24_c02 31 -HulaHoop/v_HulaHoop_g24_c01 42 -HammerThrow/v_HammerThrow_g22_c02 35 -Nunchucks/v_Nunchucks_g25_c01 55 -Mixing/v_Mixing_g19_c01 53 -JugglingBalls/v_JugglingBalls_g11_c05 45 -UnevenBars/v_UnevenBars_g23_c04 95 -BlowingCandles/v_BlowingCandles_g21_c02 13 -IceDancing/v_IceDancing_g16_c05 43 -Kayaking/v_Kayaking_g13_c02 48 -WallPushups/v_WallPushups_g13_c04 98 -ApplyLipstick/v_ApplyLipstick_g17_c04 1 -Skiing/v_Skiing_g15_c04 80 -PlayingGuitar/v_PlayingGuitar_g14_c04 62 -BoxingPunchingBag/v_BoxingPunchingBag_g13_c02 16 -Basketball/v_Basketball_g17_c02 7 -Bowling/v_Bowling_g16_c04 15 -PlayingFlute/v_PlayingFlute_g20_c02 61 -HandstandPushups/v_HandStandPushups_g15_c06 36 -CliffDiving/v_CliffDiving_g11_c03 21 -Nunchucks/v_Nunchucks_g12_c05 55 -PlayingSitar/v_PlayingSitar_g20_c03 64 -Hammering/v_Hammering_g15_c04 34 -TableTennisShot/v_TableTennisShot_g24_c04 89 -TennisSwing/v_TennisSwing_g13_c01 91 -FrontCrawl/v_FrontCrawl_g17_c07 31 -TaiChi/v_TaiChi_g13_c02 90 -MilitaryParade/v_MilitaryParade_g13_c02 52 -PlayingDaf/v_PlayingDaf_g23_c05 59 -PlayingCello/v_PlayingCello_g16_c02 58 -Knitting/v_Knitting_g11_c03 49 -BasketballDunk/v_BasketballDunk_g13_c01 8 -Skiing/v_Skiing_g15_c05 80 -BenchPress/v_BenchPress_g14_c07 9 -PullUps/v_PullUps_g11_c03 69 -FloorGymnastics/v_FloorGymnastics_g14_c04 29 -HandstandPushups/v_HandStandPushups_g08_c01 36 -VolleyballSpiking/v_VolleyballSpiking_g16_c02 96 -VolleyballSpiking/v_VolleyballSpiking_g16_c03 96 -Billiards/v_Billiards_g22_c04 11 -BodyWeightSquats/v_BodyWeightSquats_g15_c03 14 -IceDancing/v_IceDancing_g08_c03 43 -BodyWeightSquats/v_BodyWeightSquats_g12_c01 14 -Diving/v_Diving_g21_c02 25 -PushUps/v_PushUps_g17_c02 71 -JumpingJack/v_JumpingJack_g11_c04 46 -PlayingTabla/v_PlayingTabla_g10_c04 65 -CricketShot/v_CricketShot_g25_c03 23 -MilitaryParade/v_MilitaryParade_g09_c02 52 -HulaHoop/v_HulaHoop_g18_c02 42 -HammerThrow/v_HammerThrow_g11_c05 35 -PoleVault/v_PoleVault_g21_c07 67 -Billiards/v_Billiards_g22_c03 11 -SalsaSpin/v_SalsaSpin_g12_c01 76 -CricketBowling/v_CricketBowling_g20_c04 22 -IceDancing/v_IceDancing_g20_c05 43 -Typing/v_Typing_g11_c06 94 -SkateBoarding/v_SkateBoarding_g23_c02 79 -PlayingGuitar/v_PlayingGuitar_g13_c07 62 -BenchPress/v_BenchPress_g20_c01 9 -SumoWrestling/v_SumoWrestling_g14_c01 86 -HammerThrow/v_HammerThrow_g21_c05 35 -PoleVault/v_PoleVault_g10_c07 67 -FrontCrawl/v_FrontCrawl_g24_c05 31 -BaseballPitch/v_BaseballPitch_g25_c07 6 -Nunchucks/v_Nunchucks_g18_c05 55 -PlayingFlute/v_PlayingFlute_g22_c01 61 -PlayingDaf/v_PlayingDaf_g08_c05 59 -Shotput/v_Shotput_g22_c02 78 -Shotput/v_Shotput_g25_c05 78 -Bowling/v_Bowling_g15_c05 15 -BenchPress/v_BenchPress_g16_c04 9 -Knitting/v_Knitting_g11_c05 49 -LongJump/v_LongJump_g16_c01 50 -JumpingJack/v_JumpingJack_g09_c06 46 -ApplyLipstick/v_ApplyLipstick_g19_c04 1 -YoYo/v_YoYo_g08_c05 100 -TaiChi/v_TaiChi_g08_c01 90 -HorseRace/v_HorseRace_g20_c04 40 -PullUps/v_PullUps_g11_c02 69 -BabyCrawling/v_BabyCrawling_g21_c04 3 -FrontCrawl/v_FrontCrawl_g19_c03 31 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c04 0 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c02 17 -CricketShot/v_CricketShot_g15_c01 23 -PlayingTabla/v_PlayingTabla_g12_c04 65 -TableTennisShot/v_TableTennisShot_g16_c07 89 -SalsaSpin/v_SalsaSpin_g11_c04 76 -Shotput/v_Shotput_g14_c02 78 -PlayingDhol/v_PlayingDhol_g10_c05 60 -BreastStroke/v_BreastStroke_g18_c04 18 -HulaHoop/v_HulaHoop_g12_c01 42 -Surfing/v_Surfing_g23_c04 87 -BoxingSpeedBag/v_BoxingSpeedBag_g20_c05 17 -Punch/v_Punch_g10_c04 70 -HandstandWalking/v_HandstandWalking_g23_c01 37 -CricketBowling/v_CricketBowling_g09_c01 22 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c01 0 -Bowling/v_Bowling_g24_c03 15 -BenchPress/v_BenchPress_g23_c05 9 -JumpRope/v_JumpRope_g18_c06 47 -CricketShot/v_CricketShot_g22_c04 23 -FrontCrawl/v_FrontCrawl_g12_c04 31 -PlayingSitar/v_PlayingSitar_g24_c06 64 -Diving/v_Diving_g11_c04 25 -StillRings/v_StillRings_g09_c03 85 -CliffDiving/v_CliffDiving_g23_c01 21 -HammerThrow/v_HammerThrow_g14_c06 35 -PlayingDaf/v_PlayingDaf_g15_c02 59 -HighJump/v_HighJump_g19_c02 39 -PoleVault/v_PoleVault_g13_c02 67 -PlayingPiano/v_PlayingPiano_g25_c03 63 -SalsaSpin/v_SalsaSpin_g11_c01 76 -Bowling/v_Bowling_g23_c04 15 -Diving/v_Diving_g18_c02 25 -ThrowDiscus/v_ThrowDiscus_g10_c03 92 -Skiing/v_Skiing_g24_c06 80 -UnevenBars/v_UnevenBars_g21_c02 95 -BaseballPitch/v_BaseballPitch_g25_c04 6 -VolleyballSpiking/v_VolleyballSpiking_g14_c02 96 -ThrowDiscus/v_ThrowDiscus_g12_c05 92 -Biking/v_Biking_g12_c02 10 -Nunchucks/v_Nunchucks_g11_c03 55 -FieldHockeyPenalty/v_FieldHockeyPenalty_g23_c03 28 -SoccerPenalty/v_SoccerPenalty_g09_c01 84 -WalkingWithDog/v_WalkingWithDog_g19_c02 97 -ApplyEyeMakeup/v_ApplyEyeMakeup_g19_c02 0 -BoxingPunchingBag/v_BoxingPunchingBag_g10_c02 16 -RopeClimbing/v_RopeClimbing_g20_c04 74 -Haircut/v_Haircut_g24_c04 33 -PlayingSitar/v_PlayingSitar_g15_c02 64 -PlayingGuitar/v_PlayingGuitar_g22_c04 62 -BrushingTeeth/v_BrushingTeeth_g12_c03 19 -PlayingTabla/v_PlayingTabla_g11_c02 65 -TrampolineJumping/v_TrampolineJumping_g17_c01 93 -WalkingWithDog/v_WalkingWithDog_g10_c02 97 -Biking/v_Biking_g17_c04 10 -BaseballPitch/v_BaseballPitch_g15_c02 6 -StillRings/v_StillRings_g22_c01 85 -PlayingTabla/v_PlayingTabla_g10_c02 65 -Biking/v_Biking_g08_c03 10 -FrisbeeCatch/v_FrisbeeCatch_g17_c05 30 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c04 16 -Bowling/v_Bowling_g22_c06 15 -BreastStroke/v_BreastStroke_g09_c04 18 -FloorGymnastics/v_FloorGymnastics_g19_c03 29 -PlayingPiano/v_PlayingPiano_g12_c04 63 -JumpRope/v_JumpRope_g18_c04 47 -RockClimbingIndoor/v_RockClimbingIndoor_g18_c03 73 -FrontCrawl/v_FrontCrawl_g14_c01 31 -UnevenBars/v_UnevenBars_g18_c03 95 -BaseballPitch/v_BaseballPitch_g09_c04 6 -Archery/v_Archery_g20_c03 2 -HorseRiding/v_HorseRiding_g21_c01 41 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c03 16 -HeadMassage/v_HeadMassage_g19_c01 38 -BlowDryHair/v_BlowDryHair_g08_c03 12 -HorseRiding/v_HorseRiding_g19_c07 41 -PlayingCello/v_PlayingCello_g22_c06 58 -BlowDryHair/v_BlowDryHair_g12_c05 12 -GolfSwing/v_GolfSwing_g10_c01 32 -Surfing/v_Surfing_g12_c02 87 -BlowDryHair/v_BlowDryHair_g09_c02 12 -YoYo/v_YoYo_g22_c02 100 -StillRings/v_StillRings_g21_c03 85 -ShavingBeard/v_ShavingBeard_g23_c06 77 -PullUps/v_PullUps_g20_c01 69 -PlayingTabla/v_PlayingTabla_g14_c02 65 -SumoWrestling/v_SumoWrestling_g18_c07 86 -BlowingCandles/v_BlowingCandles_g12_c01 13 -SkateBoarding/v_SkateBoarding_g08_c04 79 -CleanAndJerk/v_CleanAndJerk_g24_c03 20 -ShavingBeard/v_ShavingBeard_g16_c06 77 -PushUps/v_PushUps_g10_c01 71 -TableTennisShot/v_TableTennisShot_g20_c05 89 -Knitting/v_Knitting_g16_c04 49 -Knitting/v_Knitting_g23_c04 49 -MilitaryParade/v_MilitaryParade_g08_c01 52 -BlowingCandles/v_BlowingCandles_g21_c03 13 -WallPushups/v_WallPushups_g21_c07 98 -PommelHorse/v_PommelHorse_g20_c06 68 -PlayingGuitar/v_PlayingGuitar_g12_c05 62 -JumpRope/v_JumpRope_g22_c04 47 -VolleyballSpiking/v_VolleyballSpiking_g11_c01 96 -HandstandWalking/v_HandstandWalking_g19_c02 37 -Knitting/v_Knitting_g12_c04 49 -Biking/v_Biking_g16_c05 10 -TennisSwing/v_TennisSwing_g12_c05 91 -TrampolineJumping/v_TrampolineJumping_g08_c03 93 -TennisSwing/v_TennisSwing_g21_c02 91 -YoYo/v_YoYo_g17_c05 100 -SkyDiving/v_SkyDiving_g08_c03 82 -LongJump/v_LongJump_g08_c01 50 -Drumming/v_Drumming_g17_c04 26 -HighJump/v_HighJump_g20_c02 39 -WalkingWithDog/v_WalkingWithDog_g08_c01 97 -ApplyLipstick/v_ApplyLipstick_g25_c04 1 -TaiChi/v_TaiChi_g10_c03 90 -TrampolineJumping/v_TrampolineJumping_g09_c01 93 -JugglingBalls/v_JugglingBalls_g15_c04 45 -JumpingJack/v_JumpingJack_g24_c04 46 -TaiChi/v_TaiChi_g19_c03 90 -BodyWeightSquats/v_BodyWeightSquats_g22_c04 14 -SumoWrestling/v_SumoWrestling_g18_c02 86 -FieldHockeyPenalty/v_FieldHockeyPenalty_g24_c04 28 -BabyCrawling/v_BabyCrawling_g20_c07 3 -Surfing/v_Surfing_g25_c03 87 -Fencing/v_Fencing_g24_c01 27 -PlayingDhol/v_PlayingDhol_g09_c05 60 -BandMarching/v_BandMarching_g19_c04 5 -RopeClimbing/v_RopeClimbing_g15_c02 74 -PlayingSitar/v_PlayingSitar_g09_c06 64 -Shotput/v_Shotput_g09_c07 78 -RockClimbingIndoor/v_RockClimbingIndoor_g15_c04 73 -PlayingDaf/v_PlayingDaf_g13_c01 59 -HighJump/v_HighJump_g16_c04 39 -PlayingSitar/v_PlayingSitar_g18_c04 64 -Skijet/v_Skijet_g20_c02 81 -HandstandWalking/v_HandstandWalking_g18_c06 37 -FrisbeeCatch/v_FrisbeeCatch_g14_c05 30 -ApplyLipstick/v_ApplyLipstick_g14_c03 1 -Billiards/v_Billiards_g15_c04 11 -ThrowDiscus/v_ThrowDiscus_g17_c03 92 -UnevenBars/v_UnevenBars_g13_c02 95 -BlowingCandles/v_BlowingCandles_g24_c01 13 -LongJump/v_LongJump_g10_c05 50 -CricketBowling/v_CricketBowling_g21_c01 22 -HammerThrow/v_HammerThrow_g15_c02 35 -Basketball/v_Basketball_g25_c03 7 -Mixing/v_Mixing_g09_c07 53 -PlayingSitar/v_PlayingSitar_g20_c02 64 -SoccerJuggling/v_SoccerJuggling_g18_c04 83 -JavelinThrow/v_JavelinThrow_g11_c02 44 -HorseRace/v_HorseRace_g16_c01 40 -CricketShot/v_CricketShot_g13_c04 23 -Diving/v_Diving_g16_c05 25 -BaseballPitch/v_BaseballPitch_g19_c02 6 -CliffDiving/v_CliffDiving_g10_c06 21 -PommelHorse/v_PommelHorse_g08_c04 68 -PullUps/v_PullUps_g23_c01 69 -BandMarching/v_BandMarching_g25_c02 5 -PlayingCello/v_PlayingCello_g24_c05 58 -VolleyballSpiking/v_VolleyballSpiking_g12_c03 96 -PlayingSitar/v_PlayingSitar_g10_c02 64 -WritingOnBoard/v_WritingOnBoard_g10_c06 99 -ApplyLipstick/v_ApplyLipstick_g24_c02 1 -Diving/v_Diving_g15_c04 25 -FloorGymnastics/v_FloorGymnastics_g24_c03 29 -BrushingTeeth/v_BrushingTeeth_g16_c04 19 -PoleVault/v_PoleVault_g11_c01 67 -IceDancing/v_IceDancing_g15_c01 43 -RopeClimbing/v_RopeClimbing_g24_c04 74 -BoxingPunchingBag/v_BoxingPunchingBag_g17_c04 16 -WallPushups/v_WallPushups_g23_c03 98 -CliffDiving/v_CliffDiving_g10_c05 21 -BalanceBeam/v_BalanceBeam_g12_c01 4 -Hammering/v_Hammering_g14_c07 34 -BaseballPitch/v_BaseballPitch_g09_c03 6 -FloorGymnastics/v_FloorGymnastics_g09_c07 29 -ApplyLipstick/v_ApplyLipstick_g21_c03 1 -HeadMassage/v_HeadMassage_g16_c01 38 -Kayaking/v_Kayaking_g19_c03 48 -PlayingFlute/v_PlayingFlute_g14_c02 61 -CricketBowling/v_CricketBowling_g16_c07 22 -GolfSwing/v_GolfSwing_g22_c04 32 -RockClimbingIndoor/v_RockClimbingIndoor_g09_c02 73 -Archery/v_Archery_g19_c04 2 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c04 17 -PlayingPiano/v_PlayingPiano_g25_c01 63 -MoppingFloor/v_MoppingFloor_g21_c01 54 -Kayaking/v_Kayaking_g22_c05 48 -FrisbeeCatch/v_FrisbeeCatch_g10_c06 30 -Kayaking/v_Kayaking_g17_c03 48 -VolleyballSpiking/v_VolleyballSpiking_g10_c04 96 -PlayingTabla/v_PlayingTabla_g20_c01 65 -FrisbeeCatch/v_FrisbeeCatch_g15_c04 30 -PlayingFlute/v_PlayingFlute_g25_c03 61 -JumpingJack/v_JumpingJack_g20_c01 46 -LongJump/v_LongJump_g20_c02 50 -RockClimbingIndoor/v_RockClimbingIndoor_g14_c04 73 -CuttingInKitchen/v_CuttingInKitchen_g19_c02 24 -YoYo/v_YoYo_g13_c03 100 -Lunges/v_Lunges_g13_c01 51 -Diving/v_Diving_g12_c06 25 -BabyCrawling/v_BabyCrawling_g24_c01 3 -TableTennisShot/v_TableTennisShot_g25_c04 89 -ParallelBars/v_ParallelBars_g18_c01 56 -SkateBoarding/v_SkateBoarding_g25_c04 79 -WallPushups/v_WallPushups_g15_c02 98 -BaseballPitch/v_BaseballPitch_g08_c02 6 -Swing/v_Swing_g24_c03 88 -PoleVault/v_PoleVault_g17_c07 67 -BlowingCandles/v_BlowingCandles_g20_c02 13 -Rowing/v_Rowing_g25_c03 75 -PommelHorse/v_PommelHorse_g13_c01 68 -Rowing/v_Rowing_g16_c03 75 -RopeClimbing/v_RopeClimbing_g22_c02 74 -BaseballPitch/v_BaseballPitch_g08_c03 6 -BasketballDunk/v_BasketballDunk_g14_c03 8 -CuttingInKitchen/v_CuttingInKitchen_g18_c04 24 -Lunges/v_Lunges_g22_c03 51 -IceDancing/v_IceDancing_g17_c05 43 -Shotput/v_Shotput_g12_c06 78 -RopeClimbing/v_RopeClimbing_g10_c02 74 -Surfing/v_Surfing_g23_c02 87 -ThrowDiscus/v_ThrowDiscus_g19_c01 92 -HandstandPushups/v_HandStandPushups_g22_c02 36 -HighJump/v_HighJump_g23_c02 39 -PlayingFlute/v_PlayingFlute_g19_c01 61 -WritingOnBoard/v_WritingOnBoard_g10_c01 99 -PlayingCello/v_PlayingCello_g20_c05 58 -ThrowDiscus/v_ThrowDiscus_g11_c02 92 -SoccerJuggling/v_SoccerJuggling_g10_c04 83 -WritingOnBoard/v_WritingOnBoard_g23_c05 99 -Biking/v_Biking_g09_c01 10 -ParallelBars/v_ParallelBars_g09_c03 56 -PushUps/v_PushUps_g11_c04 71 -PlayingDhol/v_PlayingDhol_g17_c03 60 -Bowling/v_Bowling_g19_c07 15 -SkyDiving/v_SkyDiving_g09_c03 82 -PlayingSitar/v_PlayingSitar_g11_c06 64 -Hammering/v_Hammering_g10_c07 34 -WritingOnBoard/v_WritingOnBoard_g19_c04 99 -PlayingSitar/v_PlayingSitar_g16_c06 64 -ApplyEyeMakeup/v_ApplyEyeMakeup_g22_c01 0 -BasketballDunk/v_BasketballDunk_g20_c04 8 -TableTennisShot/v_TableTennisShot_g15_c04 89 -Fencing/v_Fencing_g14_c03 27 -Basketball/v_Basketball_g21_c06 7 -BaseballPitch/v_BaseballPitch_g13_c02 6 -MoppingFloor/v_MoppingFloor_g22_c02 54 -ShavingBeard/v_ShavingBeard_g08_c02 77 -Shotput/v_Shotput_g09_c05 78 -Kayaking/v_Kayaking_g17_c06 48 -PlayingGuitar/v_PlayingGuitar_g15_c06 62 -BlowingCandles/v_BlowingCandles_g08_c04 13 -CuttingInKitchen/v_CuttingInKitchen_g14_c03 24 -Punch/v_Punch_g16_c04 70 -PlayingViolin/v_PlayingViolin_g11_c04 66 -PlayingDhol/v_PlayingDhol_g12_c04 60 -CuttingInKitchen/v_CuttingInKitchen_g25_c02 24 -CleanAndJerk/v_CleanAndJerk_g20_c04 20 -CleanAndJerk/v_CleanAndJerk_g08_c03 20 -BaseballPitch/v_BaseballPitch_g22_c06 6 -JugglingBalls/v_JugglingBalls_g08_c05 45 -FrontCrawl/v_FrontCrawl_g18_c03 31 -HorseRace/v_HorseRace_g17_c02 40 -Bowling/v_Bowling_g15_c02 15 -Billiards/v_Billiards_g17_c05 11 -WritingOnBoard/v_WritingOnBoard_g20_c06 99 -Basketball/v_Basketball_g18_c02 7 -PommelHorse/v_PommelHorse_g13_c04 68 -GolfSwing/v_GolfSwing_g17_c02 32 -Biking/v_Biking_g11_c01 10 -BaseballPitch/v_BaseballPitch_g23_c06 6 -Diving/v_Diving_g13_c06 25 -WallPushups/v_WallPushups_g25_c04 98 -BasketballDunk/v_BasketballDunk_g18_c06 8 -FrisbeeCatch/v_FrisbeeCatch_g22_c01 30 -CricketShot/v_CricketShot_g11_c02 23 -CleanAndJerk/v_CleanAndJerk_g08_c02 20 -Rafting/v_Rafting_g16_c07 72 -RopeClimbing/v_RopeClimbing_g08_c03 74 -SalsaSpin/v_SalsaSpin_g17_c04 76 -Basketball/v_Basketball_g09_c02 7 -TennisSwing/v_TennisSwing_g13_c05 91 -BlowDryHair/v_BlowDryHair_g12_c04 12 -JumpRope/v_JumpRope_g23_c04 47 -Punch/v_Punch_g18_c07 70 -BasketballDunk/v_BasketballDunk_g13_c03 8 -PlayingDhol/v_PlayingDhol_g18_c06 60 -RopeClimbing/v_RopeClimbing_g16_c02 74 -HorseRiding/v_HorseRiding_g24_c03 41 -JavelinThrow/v_JavelinThrow_g09_c01 44 -PlayingPiano/v_PlayingPiano_g14_c04 63 -Billiards/v_Billiards_g25_c05 11 -SalsaSpin/v_SalsaSpin_g21_c04 76 -Basketball/v_Basketball_g21_c03 7 -Haircut/v_Haircut_g13_c02 33 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c02 73 -SumoWrestling/v_SumoWrestling_g09_c01 86 -ShavingBeard/v_ShavingBeard_g25_c05 77 -JumpRope/v_JumpRope_g14_c02 47 -UnevenBars/v_UnevenBars_g21_c03 95 -HeadMassage/v_HeadMassage_g19_c05 38 -ApplyLipstick/v_ApplyLipstick_g23_c03 1 -HighJump/v_HighJump_g13_c01 39 -JugglingBalls/v_JugglingBalls_g20_c01 45 -BoxingSpeedBag/v_BoxingSpeedBag_g19_c01 17 -SalsaSpin/v_SalsaSpin_g15_c01 76 -Billiards/v_Billiards_g15_c07 11 -Skiing/v_Skiing_g19_c03 80 -GolfSwing/v_GolfSwing_g22_c03 32 -Diving/v_Diving_g21_c04 25 -StillRings/v_StillRings_g17_c03 85 -PlayingGuitar/v_PlayingGuitar_g17_c06 62 -PlayingCello/v_PlayingCello_g12_c03 58 -WallPushups/v_WallPushups_g15_c03 98 -HorseRiding/v_HorseRiding_g14_c01 41 -FrisbeeCatch/v_FrisbeeCatch_g18_c04 30 -Basketball/v_Basketball_g18_c04 7 -Swing/v_Swing_g17_c01 88 -WritingOnBoard/v_WritingOnBoard_g11_c03 99 -Diving/v_Diving_g17_c01 25 -Shotput/v_Shotput_g10_c05 78 -Billiards/v_Billiards_g12_c03 11 -PlayingTabla/v_PlayingTabla_g22_c04 65 -TableTennisShot/v_TableTennisShot_g22_c05 89 -Skijet/v_Skijet_g10_c03 81 -LongJump/v_LongJump_g14_c01 50 -YoYo/v_YoYo_g15_c04 100 -HandstandWalking/v_HandstandWalking_g08_c04 37 -MilitaryParade/v_MilitaryParade_g15_c04 52 -ParallelBars/v_ParallelBars_g20_c01 56 -PlayingCello/v_PlayingCello_g14_c01 58 -FloorGymnastics/v_FloorGymnastics_g23_c04 29 -WallPushups/v_WallPushups_g11_c05 98 -StillRings/v_StillRings_g12_c04 85 -HorseRiding/v_HorseRiding_g24_c05 41 -RopeClimbing/v_RopeClimbing_g14_c05 74 -IceDancing/v_IceDancing_g24_c06 43 -ApplyLipstick/v_ApplyLipstick_g14_c04 1 -Mixing/v_Mixing_g13_c02 53 -Mixing/v_Mixing_g09_c02 53 -Mixing/v_Mixing_g15_c03 53 -TennisSwing/v_TennisSwing_g23_c01 91 -BaseballPitch/v_BaseballPitch_g10_c03 6 -Hammering/v_Hammering_g21_c05 34 -Lunges/v_Lunges_g19_c02 51 -HorseRace/v_HorseRace_g09_c01 40 -Knitting/v_Knitting_g18_c03 49 -PlayingTabla/v_PlayingTabla_g13_c03 65 -Rowing/v_Rowing_g11_c04 75 -Lunges/v_Lunges_g20_c04 51 -FrontCrawl/v_FrontCrawl_g10_c05 31 -Archery/v_Archery_g09_c07 2 -BalanceBeam/v_BalanceBeam_g11_c02 4 -BabyCrawling/v_BabyCrawling_g10_c02 3 -HighJump/v_HighJump_g08_c03 39 -CliffDiving/v_CliffDiving_g09_c01 21 -Punch/v_Punch_g17_c06 70 -Bowling/v_Bowling_g08_c06 15 -ThrowDiscus/v_ThrowDiscus_g23_c04 92 -Shotput/v_Shotput_g22_c04 78 -Punch/v_Punch_g09_c06 70 -CliffDiving/v_CliffDiving_g18_c07 21 -CliffDiving/v_CliffDiving_g11_c05 21 -SkyDiving/v_SkyDiving_g18_c06 82 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c02 28 -JavelinThrow/v_JavelinThrow_g09_c04 44 -Kayaking/v_Kayaking_g20_c05 48 -Kayaking/v_Kayaking_g15_c01 48 -MilitaryParade/v_MilitaryParade_g25_c07 52 -PoleVault/v_PoleVault_g24_c06 67 -JugglingBalls/v_JugglingBalls_g20_c04 45 -Typing/v_Typing_g11_c07 94 -SoccerPenalty/v_SoccerPenalty_g13_c05 84 -Drumming/v_Drumming_g08_c05 26 -BlowDryHair/v_BlowDryHair_g19_c03 12 -MilitaryParade/v_MilitaryParade_g24_c02 52 -BodyWeightSquats/v_BodyWeightSquats_g11_c04 14 -ThrowDiscus/v_ThrowDiscus_g24_c05 92 -PlayingSitar/v_PlayingSitar_g14_c02 64 -Biking/v_Biking_g13_c04 10 -HorseRiding/v_HorseRiding_g08_c04 41 -IceDancing/v_IceDancing_g19_c04 43 -MoppingFloor/v_MoppingFloor_g17_c05 54 -PommelHorse/v_PommelHorse_g11_c01 68 -PommelHorse/v_PommelHorse_g24_c04 68 -SkateBoarding/v_SkateBoarding_g14_c01 79 -Shotput/v_Shotput_g19_c01 78 -HighJump/v_HighJump_g12_c01 39 -FieldHockeyPenalty/v_FieldHockeyPenalty_g09_c04 28 -Skiing/v_Skiing_g16_c02 80 -HandstandPushups/v_HandStandPushups_g12_c03 36 -BabyCrawling/v_BabyCrawling_g16_c01 3 -BasketballDunk/v_BasketballDunk_g22_c03 8 -Rowing/v_Rowing_g12_c04 75 -PlayingSitar/v_PlayingSitar_g11_c03 64 -Punch/v_Punch_g18_c06 70 -PlayingPiano/v_PlayingPiano_g11_c04 63 -BrushingTeeth/v_BrushingTeeth_g25_c04 19 -Nunchucks/v_Nunchucks_g15_c04 55 -ShavingBeard/v_ShavingBeard_g24_c05 77 -WalkingWithDog/v_WalkingWithDog_g12_c02 97 -JugglingBalls/v_JugglingBalls_g13_c01 45 -PlayingDaf/v_PlayingDaf_g23_c03 59 -BodyWeightSquats/v_BodyWeightSquats_g13_c04 14 -JumpingJack/v_JumpingJack_g21_c03 46 -Skiing/v_Skiing_g15_c02 80 -HighJump/v_HighJump_g16_c02 39 -HandstandWalking/v_HandstandWalking_g11_c02 37 -PlayingGuitar/v_PlayingGuitar_g13_c05 62 -JumpRope/v_JumpRope_g15_c03 47 -WritingOnBoard/v_WritingOnBoard_g24_c07 99 -TableTennisShot/v_TableTennisShot_g08_c01 89 -Shotput/v_Shotput_g18_c04 78 -WallPushups/v_WallPushups_g20_c05 98 -BaseballPitch/v_BaseballPitch_g24_c03 6 -Nunchucks/v_Nunchucks_g11_c04 55 -PlayingDhol/v_PlayingDhol_g08_c01 60 -CleanAndJerk/v_CleanAndJerk_g12_c01 20 -PommelHorse/v_PommelHorse_g17_c06 68 -GolfSwing/v_GolfSwing_g11_c06 32 -SoccerJuggling/v_SoccerJuggling_g20_c02 83 -Skijet/v_Skijet_g25_c01 81 -CuttingInKitchen/v_CuttingInKitchen_g08_c04 24 -HorseRiding/v_HorseRiding_g22_c03 41 -Biking/v_Biking_g10_c05 10 -HighJump/v_HighJump_g25_c05 39 -SalsaSpin/v_SalsaSpin_g08_c02 76 -PlayingDaf/v_PlayingDaf_g25_c06 59 -BodyWeightSquats/v_BodyWeightSquats_g20_c05 14 -PushUps/v_PushUps_g12_c03 71 -TaiChi/v_TaiChi_g08_c03 90 -PlayingDhol/v_PlayingDhol_g10_c04 60 -Punch/v_Punch_g11_c07 70 -Diving/v_Diving_g24_c03 25 -RopeClimbing/v_RopeClimbing_g13_c06 74 -JumpRope/v_JumpRope_g21_c07 47 -Lunges/v_Lunges_g09_c01 51 -JumpRope/v_JumpRope_g08_c03 47 -Swing/v_Swing_g20_c06 88 -VolleyballSpiking/v_VolleyballSpiking_g24_c04 96 -Bowling/v_Bowling_g17_c04 15 -Swing/v_Swing_g11_c03 88 -RopeClimbing/v_RopeClimbing_g10_c01 74 -PizzaTossing/v_PizzaTossing_g23_c07 57 -PlayingDhol/v_PlayingDhol_g09_c06 60 -Rowing/v_Rowing_g17_c04 75 -CuttingInKitchen/v_CuttingInKitchen_g16_c03 24 -Kayaking/v_Kayaking_g15_c04 48 -SoccerJuggling/v_SoccerJuggling_g22_c01 83 -Basketball/v_Basketball_g20_c02 7 -Skiing/v_Skiing_g16_c03 80 -HighJump/v_HighJump_g09_c04 39 -Biking/v_Biking_g14_c02 10 -FrontCrawl/v_FrontCrawl_g20_c02 31 -SoccerJuggling/v_SoccerJuggling_g19_c05 83 -SoccerPenalty/v_SoccerPenalty_g23_c01 84 -WallPushups/v_WallPushups_g11_c04 98 -BabyCrawling/v_BabyCrawling_g10_c03 3 -BrushingTeeth/v_BrushingTeeth_g09_c04 19 -WritingOnBoard/v_WritingOnBoard_g10_c05 99 -FieldHockeyPenalty/v_FieldHockeyPenalty_g11_c03 28 -ParallelBars/v_ParallelBars_g16_c04 56 -PlayingSitar/v_PlayingSitar_g12_c02 64 -JugglingBalls/v_JugglingBalls_g10_c02 45 -MilitaryParade/v_MilitaryParade_g19_c01 52 -Basketball/v_Basketball_g14_c02 7 -ApplyEyeMakeup/v_ApplyEyeMakeup_g16_c03 0 -ApplyLipstick/v_ApplyLipstick_g19_c01 1 -JumpingJack/v_JumpingJack_g23_c04 46 -JumpRope/v_JumpRope_g11_c02 47 -CricketBowling/v_CricketBowling_g22_c07 22 -Knitting/v_Knitting_g09_c03 49 -FloorGymnastics/v_FloorGymnastics_g22_c04 29 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c03 16 -TaiChi/v_TaiChi_g23_c04 90 -SkyDiving/v_SkyDiving_g25_c01 82 -ShavingBeard/v_ShavingBeard_g13_c06 77 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c07 16 -CleanAndJerk/v_CleanAndJerk_g24_c01 20 -HorseRace/v_HorseRace_g10_c02 40 -IceDancing/v_IceDancing_g14_c01 43 -FrontCrawl/v_FrontCrawl_g17_c03 31 -WallPushups/v_WallPushups_g14_c05 98 -SkyDiving/v_SkyDiving_g23_c04 82 -Hammering/v_Hammering_g15_c06 34 -WritingOnBoard/v_WritingOnBoard_g21_c04 99 -PlayingDhol/v_PlayingDhol_g17_c02 60 -JumpRope/v_JumpRope_g11_c07 47 -JumpRope/v_JumpRope_g10_c02 47 -Billiards/v_Billiards_g24_c01 11 -PushUps/v_PushUps_g23_c01 71 -JavelinThrow/v_JavelinThrow_g13_c01 44 -SoccerJuggling/v_SoccerJuggling_g21_c03 83 -PushUps/v_PushUps_g09_c02 71 -RopeClimbing/v_RopeClimbing_g24_c01 74 -BandMarching/v_BandMarching_g14_c04 5 -SoccerJuggling/v_SoccerJuggling_g20_c03 83 -BenchPress/v_BenchPress_g19_c03 9 -CricketBowling/v_CricketBowling_g19_c02 22 -BasketballDunk/v_BasketballDunk_g20_c01 8 -Knitting/v_Knitting_g20_c02 49 -TrampolineJumping/v_TrampolineJumping_g14_c02 93 -MoppingFloor/v_MoppingFloor_g23_c02 54 -HeadMassage/v_HeadMassage_g22_c03 38 -BlowingCandles/v_BlowingCandles_g17_c03 13 -JumpingJack/v_JumpingJack_g08_c04 46 -BoxingSpeedBag/v_BoxingSpeedBag_g08_c02 17 -PlayingDaf/v_PlayingDaf_g21_c04 59 -ApplyLipstick/v_ApplyLipstick_g16_c04 1 -BodyWeightSquats/v_BodyWeightSquats_g17_c01 14 -SkateBoarding/v_SkateBoarding_g09_c01 79 -SoccerPenalty/v_SoccerPenalty_g11_c02 84 -Rowing/v_Rowing_g12_c02 75 -PizzaTossing/v_PizzaTossing_g11_c05 57 -PlayingDhol/v_PlayingDhol_g19_c06 60 -PoleVault/v_PoleVault_g23_c01 67 -YoYo/v_YoYo_g20_c04 100 -HighJump/v_HighJump_g24_c02 39 -PlayingViolin/v_PlayingViolin_g22_c03 66 -Archery/v_Archery_g22_c03 2 -BabyCrawling/v_BabyCrawling_g11_c04 3 -MoppingFloor/v_MoppingFloor_g18_c04 54 -PlayingPiano/v_PlayingPiano_g20_c04 63 -Lunges/v_Lunges_g25_c01 51 -BenchPress/v_BenchPress_g12_c06 9 -Drumming/v_Drumming_g13_c01 26 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c02 73 -CliffDiving/v_CliffDiving_g18_c03 21 -HandstandWalking/v_HandstandWalking_g11_c04 37 -LongJump/v_LongJump_g16_c04 50 -BaseballPitch/v_BaseballPitch_g16_c04 6 -BlowDryHair/v_BlowDryHair_g13_c01 12 -BoxingSpeedBag/v_BoxingSpeedBag_g10_c01 17 -PlayingFlute/v_PlayingFlute_g12_c04 61 -ShavingBeard/v_ShavingBeard_g18_c02 77 -Kayaking/v_Kayaking_g22_c06 48 -JumpingJack/v_JumpingJack_g22_c02 46 -HandstandPushups/v_HandStandPushups_g13_c02 36 -SumoWrestling/v_SumoWrestling_g22_c04 86 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c04 73 -SoccerJuggling/v_SoccerJuggling_g21_c01 83 -Hammering/v_Hammering_g22_c02 34 -FrontCrawl/v_FrontCrawl_g18_c02 31 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c07 73 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c07 73 -Biking/v_Biking_g20_c01 10 -ApplyEyeMakeup/v_ApplyEyeMakeup_g11_c05 0 -SalsaSpin/v_SalsaSpin_g08_c01 76 -GolfSwing/v_GolfSwing_g24_c05 32 -Skijet/v_Skijet_g25_c03 81 -PlayingCello/v_PlayingCello_g21_c02 58 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c06 0 -PlayingSitar/v_PlayingSitar_g24_c07 64 -StillRings/v_StillRings_g24_c01 85 -Punch/v_Punch_g23_c06 70 -SalsaSpin/v_SalsaSpin_g10_c05 76 -RopeClimbing/v_RopeClimbing_g20_c02 74 -SoccerPenalty/v_SoccerPenalty_g14_c06 84 -FrisbeeCatch/v_FrisbeeCatch_g16_c06 30 -BalanceBeam/v_BalanceBeam_g14_c04 4 -WalkingWithDog/v_WalkingWithDog_g09_c02 97 -TennisSwing/v_TennisSwing_g14_c01 91 -Swing/v_Swing_g23_c03 88 -TennisSwing/v_TennisSwing_g14_c07 91 -Drumming/v_Drumming_g10_c04 26 -Punch/v_Punch_g21_c01 70 -PlayingDhol/v_PlayingDhol_g10_c02 60 -Bowling/v_Bowling_g18_c05 15 -LongJump/v_LongJump_g21_c03 50 -PlayingDhol/v_PlayingDhol_g19_c07 60 -SumoWrestling/v_SumoWrestling_g19_c03 86 -RopeClimbing/v_RopeClimbing_g15_c03 74 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c03 0 -FieldHockeyPenalty/v_FieldHockeyPenalty_g22_c03 28 -PizzaTossing/v_PizzaTossing_g15_c03 57 -RopeClimbing/v_RopeClimbing_g13_c03 74 -SoccerJuggling/v_SoccerJuggling_g16_c03 83 -CricketShot/v_CricketShot_g11_c06 23 -JumpRope/v_JumpRope_g21_c03 47 -PlayingCello/v_PlayingCello_g08_c04 58 -PlayingDaf/v_PlayingDaf_g11_c06 59 -BrushingTeeth/v_BrushingTeeth_g16_c02 19 -SalsaSpin/v_SalsaSpin_g15_c05 76 -Hammering/v_Hammering_g12_c03 34 -HandstandPushups/v_HandStandPushups_g17_c05 36 -Punch/v_Punch_g10_c02 70 -PushUps/v_PushUps_g15_c04 71 -TableTennisShot/v_TableTennisShot_g14_c02 89 -TableTennisShot/v_TableTennisShot_g25_c03 89 -HorseRiding/v_HorseRiding_g25_c05 41 -SalsaSpin/v_SalsaSpin_g10_c02 76 -FloorGymnastics/v_FloorGymnastics_g15_c03 29 -SkateBoarding/v_SkateBoarding_g22_c02 79 -VolleyballSpiking/v_VolleyballSpiking_g22_c03 96 -Diving/v_Diving_g09_c01 25 -Punch/v_Punch_g20_c02 70 -SoccerJuggling/v_SoccerJuggling_g15_c04 83 -Hammering/v_Hammering_g22_c05 34 -JumpRope/v_JumpRope_g21_c05 47 -Skijet/v_Skijet_g19_c04 81 -SumoWrestling/v_SumoWrestling_g14_c04 86 -YoYo/v_YoYo_g25_c01 100 -Fencing/v_Fencing_g13_c03 27 -BalanceBeam/v_BalanceBeam_g12_c04 4 -FieldHockeyPenalty/v_FieldHockeyPenalty_g16_c02 28 -RopeClimbing/v_RopeClimbing_g09_c03 74 -Hammering/v_Hammering_g22_c01 34 -Basketball/v_Basketball_g24_c04 7 -WritingOnBoard/v_WritingOnBoard_g11_c05 99 -CliffDiving/v_CliffDiving_g22_c01 21 -Basketball/v_Basketball_g23_c06 7 -BabyCrawling/v_BabyCrawling_g20_c04 3 -CliffDiving/v_CliffDiving_g15_c02 21 -Fencing/v_Fencing_g22_c03 27 -JumpingJack/v_JumpingJack_g16_c01 46 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c01 16 -Drumming/v_Drumming_g19_c04 26 -RockClimbingIndoor/v_RockClimbingIndoor_g15_c01 73 -TableTennisShot/v_TableTennisShot_g09_c03 89 -PlayingViolin/v_PlayingViolin_g24_c03 66 -YoYo/v_YoYo_g11_c01 100 -Shotput/v_Shotput_g17_c04 78 -SoccerPenalty/v_SoccerPenalty_g15_c06 84 -UnevenBars/v_UnevenBars_g20_c03 95 -PushUps/v_PushUps_g15_c02 71 -PlayingViolin/v_PlayingViolin_g22_c04 66 -JumpingJack/v_JumpingJack_g14_c01 46 -GolfSwing/v_GolfSwing_g12_c02 32 -Basketball/v_Basketball_g17_c03 7 -FrontCrawl/v_FrontCrawl_g16_c04 31 -BodyWeightSquats/v_BodyWeightSquats_g25_c04 14 -HorseRiding/v_HorseRiding_g20_c01 41 -BoxingSpeedBag/v_BoxingSpeedBag_g19_c04 17 -PoleVault/v_PoleVault_g20_c01 67 -PushUps/v_PushUps_g11_c01 71 -BrushingTeeth/v_BrushingTeeth_g24_c04 19 -CuttingInKitchen/v_CuttingInKitchen_g10_c01 24 -BenchPress/v_BenchPress_g24_c07 9 -PlayingFlute/v_PlayingFlute_g18_c03 61 -HorseRace/v_HorseRace_g16_c05 40 -BasketballDunk/v_BasketballDunk_g21_c02 8 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c05 0 -PlayingDhol/v_PlayingDhol_g25_c01 60 -TableTennisShot/v_TableTennisShot_g22_c07 89 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c01 28 -Swing/v_Swing_g20_c03 88 -PullUps/v_PullUps_g10_c02 69 -WritingOnBoard/v_WritingOnBoard_g16_c01 99 -Punch/v_Punch_g13_c01 70 -Surfing/v_Surfing_g16_c04 87 -PlayingSitar/v_PlayingSitar_g16_c05 64 -Diving/v_Diving_g20_c05 25 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c02 17 -HandstandPushups/v_HandStandPushups_g20_c05 36 -Lunges/v_Lunges_g14_c03 51 -PlayingPiano/v_PlayingPiano_g15_c03 63 -WalkingWithDog/v_WalkingWithDog_g10_c03 97 -Knitting/v_Knitting_g25_c01 49 -Lunges/v_Lunges_g23_c01 51 -CleanAndJerk/v_CleanAndJerk_g17_c03 20 -Basketball/v_Basketball_g15_c07 7 -LongJump/v_LongJump_g10_c02 50 -CliffDiving/v_CliffDiving_g23_c03 21 -Punch/v_Punch_g13_c06 70 -SoccerJuggling/v_SoccerJuggling_g20_c04 83 -Fencing/v_Fencing_g19_c01 27 -ShavingBeard/v_ShavingBeard_g23_c07 77 -WalkingWithDog/v_WalkingWithDog_g17_c01 97 -Typing/v_Typing_g17_c01 94 -Shotput/v_Shotput_g24_c01 78 -BodyWeightSquats/v_BodyWeightSquats_g21_c04 14 -Skiing/v_Skiing_g11_c04 80 -Drumming/v_Drumming_g19_c02 26 -BalanceBeam/v_BalanceBeam_g19_c04 4 -FieldHockeyPenalty/v_FieldHockeyPenalty_g13_c02 28 -Punch/v_Punch_g11_c04 70 -MoppingFloor/v_MoppingFloor_g10_c02 54 -CleanAndJerk/v_CleanAndJerk_g12_c06 20 -Mixing/v_Mixing_g11_c02 53 -BabyCrawling/v_BabyCrawling_g23_c04 3 -PoleVault/v_PoleVault_g21_c04 67 -Swing/v_Swing_g11_c02 88 -Rafting/v_Rafting_g13_c02 72 -PlayingFlute/v_PlayingFlute_g08_c05 61 -JugglingBalls/v_JugglingBalls_g14_c01 45 -BabyCrawling/v_BabyCrawling_g18_c06 3 -ThrowDiscus/v_ThrowDiscus_g09_c02 92 -BenchPress/v_BenchPress_g08_c01 9 -StillRings/v_StillRings_g18_c01 85 -ParallelBars/v_ParallelBars_g09_c06 56 -TennisSwing/v_TennisSwing_g12_c04 91 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c04 28 -CricketShot/v_CricketShot_g24_c02 23 -HorseRace/v_HorseRace_g10_c04 40 -ShavingBeard/v_ShavingBeard_g10_c03 77 -IceDancing/v_IceDancing_g23_c02 43 -FrisbeeCatch/v_FrisbeeCatch_g22_c03 30 -Billiards/v_Billiards_g15_c02 11 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c05 16 -PlayingDaf/v_PlayingDaf_g13_c03 59 -SkateBoarding/v_SkateBoarding_g10_c02 79 -BlowDryHair/v_BlowDryHair_g10_c05 12 -Billiards/v_Billiards_g13_c01 11 -HammerThrow/v_HammerThrow_g15_c01 35 -FrisbeeCatch/v_FrisbeeCatch_g20_c05 30 -PlayingSitar/v_PlayingSitar_g20_c06 64 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c05 0 -Knitting/v_Knitting_g12_c03 49 -Diving/v_Diving_g10_c05 25 -IceDancing/v_IceDancing_g22_c01 43 -BlowDryHair/v_BlowDryHair_g08_c01 12 -FrisbeeCatch/v_FrisbeeCatch_g14_c03 30 -Rafting/v_Rafting_g24_c02 72 -BenchPress/v_BenchPress_g17_c06 9 -Skiing/v_Skiing_g20_c03 80 -HorseRiding/v_HorseRiding_g22_c01 41 -HandstandPushups/v_HandStandPushups_g17_c04 36 -PoleVault/v_PoleVault_g18_c07 67 -BabyCrawling/v_BabyCrawling_g25_c06 3 -JugglingBalls/v_JugglingBalls_g11_c02 45 -PlayingDhol/v_PlayingDhol_g18_c01 60 -PullUps/v_PullUps_g25_c03 69 -FloorGymnastics/v_FloorGymnastics_g19_c01 29 -Bowling/v_Bowling_g20_c05 15 -Biking/v_Biking_g21_c04 10 -Billiards/v_Billiards_g08_c05 11 -BrushingTeeth/v_BrushingTeeth_g14_c05 19 -Rowing/v_Rowing_g13_c03 75 -Rowing/v_Rowing_g22_c02 75 -FloorGymnastics/v_FloorGymnastics_g13_c01 29 -RopeClimbing/v_RopeClimbing_g17_c01 74 -SkyDiving/v_SkyDiving_g19_c01 82 -LongJump/v_LongJump_g09_c01 50 -Knitting/v_Knitting_g19_c03 49 -BalanceBeam/v_BalanceBeam_g17_c04 4 -PlayingFlute/v_PlayingFlute_g08_c04 61 -PommelHorse/v_PommelHorse_g17_c05 68 -BlowingCandles/v_BlowingCandles_g14_c03 13 -FrontCrawl/v_FrontCrawl_g24_c03 31 -HammerThrow/v_HammerThrow_g21_c01 35 -LongJump/v_LongJump_g18_c04 50 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c05 0 -BandMarching/v_BandMarching_g16_c03 5 -BabyCrawling/v_BabyCrawling_g12_c05 3 -PlayingGuitar/v_PlayingGuitar_g15_c05 62 -YoYo/v_YoYo_g19_c05 100 -Bowling/v_Bowling_g21_c06 15 -WallPushups/v_WallPushups_g09_c02 98 -TennisSwing/v_TennisSwing_g12_c06 91 -JavelinThrow/v_JavelinThrow_g25_c01 44 -Lunges/v_Lunges_g19_c04 51 -BlowDryHair/v_BlowDryHair_g20_c02 12 -CliffDiving/v_CliffDiving_g10_c01 21 -Diving/v_Diving_g10_c03 25 -MoppingFloor/v_MoppingFloor_g24_c04 54 -CuttingInKitchen/v_CuttingInKitchen_g08_c01 24 -FrontCrawl/v_FrontCrawl_g20_c07 31 -BabyCrawling/v_BabyCrawling_g14_c01 3 -ShavingBeard/v_ShavingBeard_g10_c04 77 -SkyDiving/v_SkyDiving_g24_c03 82 -TennisSwing/v_TennisSwing_g16_c06 91 -Nunchucks/v_Nunchucks_g13_c07 55 -PlayingCello/v_PlayingCello_g17_c05 58 -BreastStroke/v_BreastStroke_g14_c01 18 -Rafting/v_Rafting_g19_c04 72 -BlowingCandles/v_BlowingCandles_g15_c03 13 -PlayingCello/v_PlayingCello_g20_c06 58 -BlowDryHair/v_BlowDryHair_g23_c05 12 -PlayingCello/v_PlayingCello_g08_c05 58 -PlayingTabla/v_PlayingTabla_g14_c01 65 -HammerThrow/v_HammerThrow_g25_c03 35 -CricketShot/v_CricketShot_g09_c04 23 -ApplyEyeMakeup/v_ApplyEyeMakeup_g14_c02 0 -FrontCrawl/v_FrontCrawl_g25_c01 31 -PlayingSitar/v_PlayingSitar_g15_c01 64 -Rafting/v_Rafting_g22_c04 72 -BasketballDunk/v_BasketballDunk_g25_c02 8 -PullUps/v_PullUps_g15_c01 69 -PlayingGuitar/v_PlayingGuitar_g10_c07 62 -PlayingViolin/v_PlayingViolin_g13_c01 66 -PullUps/v_PullUps_g22_c04 69 -Fencing/v_Fencing_g13_c02 27 -PommelHorse/v_PommelHorse_g17_c04 68 -MoppingFloor/v_MoppingFloor_g10_c03 54 -BasketballDunk/v_BasketballDunk_g12_c03 8 -Haircut/v_Haircut_g09_c03 33 -PizzaTossing/v_PizzaTossing_g20_c01 57 -Billiards/v_Billiards_g21_c01 11 -PlayingDaf/v_PlayingDaf_g18_c05 59 -BabyCrawling/v_BabyCrawling_g16_c04 3 -PlayingDaf/v_PlayingDaf_g24_c02 59 -SoccerJuggling/v_SoccerJuggling_g22_c03 83 -Biking/v_Biking_g17_c02 10 -Shotput/v_Shotput_g18_c03 78 -JavelinThrow/v_JavelinThrow_g11_c03 44 -Diving/v_Diving_g11_c02 25 -Rowing/v_Rowing_g22_c04 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c01 0 -WritingOnBoard/v_WritingOnBoard_g15_c05 99 -Basketball/v_Basketball_g15_c05 7 -PushUps/v_PushUps_g24_c03 71 -PlayingDaf/v_PlayingDaf_g18_c03 59 -Kayaking/v_Kayaking_g23_c03 48 -Swing/v_Swing_g09_c05 88 -PlayingTabla/v_PlayingTabla_g23_c04 65 -BalanceBeam/v_BalanceBeam_g20_c01 4 -TableTennisShot/v_TableTennisShot_g20_c07 89 -Kayaking/v_Kayaking_g21_c03 48 -PlayingCello/v_PlayingCello_g18_c01 58 -Rafting/v_Rafting_g11_c01 72 -HeadMassage/v_HeadMassage_g24_c03 38 -Shotput/v_Shotput_g17_c03 78 -StillRings/v_StillRings_g16_c02 85 -FloorGymnastics/v_FloorGymnastics_g13_c02 29 -BlowingCandles/v_BlowingCandles_g13_c04 13 -Kayaking/v_Kayaking_g23_c02 48 -PlayingDaf/v_PlayingDaf_g12_c05 59 -Drumming/v_Drumming_g16_c07 26 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c07 0 -ShavingBeard/v_ShavingBeard_g19_c05 77 -Bowling/v_Bowling_g22_c05 15 -FrontCrawl/v_FrontCrawl_g11_c02 31 -Shotput/v_Shotput_g17_c01 78 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c01 16 -GolfSwing/v_GolfSwing_g25_c05 32 -RockClimbingIndoor/v_RockClimbingIndoor_g15_c03 73 -FrisbeeCatch/v_FrisbeeCatch_g08_c04 30 -SkyDiving/v_SkyDiving_g12_c03 82 -HammerThrow/v_HammerThrow_g22_c06 35 -CleanAndJerk/v_CleanAndJerk_g10_c03 20 -PoleVault/v_PoleVault_g10_c01 67 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c06 17 -CleanAndJerk/v_CleanAndJerk_g21_c01 20 -WallPushups/v_WallPushups_g09_c03 98 -JavelinThrow/v_JavelinThrow_g13_c03 44 -HeadMassage/v_HeadMassage_g18_c07 38 -SkateBoarding/v_SkateBoarding_g18_c01 79 -HandstandWalking/v_HandstandWalking_g09_c01 37 -HorseRace/v_HorseRace_g21_c03 40 -CliffDiving/v_CliffDiving_g16_c02 21 -JumpingJack/v_JumpingJack_g22_c03 46 -PizzaTossing/v_PizzaTossing_g17_c04 57 -ThrowDiscus/v_ThrowDiscus_g08_c01 92 -PullUps/v_PullUps_g17_c01 69 -BaseballPitch/v_BaseballPitch_g19_c04 6 -TennisSwing/v_TennisSwing_g16_c03 91 -ParallelBars/v_ParallelBars_g23_c01 56 -CricketShot/v_CricketShot_g14_c02 23 -BlowDryHair/v_BlowDryHair_g11_c07 12 -Rafting/v_Rafting_g13_c03 72 -CricketShot/v_CricketShot_g12_c04 23 -HorseRace/v_HorseRace_g08_c05 40 -Skijet/v_Skijet_g16_c04 81 -CricketBowling/v_CricketBowling_g20_c01 22 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c07 73 -Drumming/v_Drumming_g23_c01 26 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c02 16 -CuttingInKitchen/v_CuttingInKitchen_g22_c02 24 -LongJump/v_LongJump_g17_c03 50 -CricketShot/v_CricketShot_g20_c06 23 -RopeClimbing/v_RopeClimbing_g25_c02 74 -CleanAndJerk/v_CleanAndJerk_g16_c03 20 -Skiing/v_Skiing_g14_c02 80 -FrisbeeCatch/v_FrisbeeCatch_g20_c03 30 -BandMarching/v_BandMarching_g24_c03 5 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c07 73 -HandstandPushups/v_HandStandPushups_g18_c07 36 -ApplyLipstick/v_ApplyLipstick_g19_c02 1 -FrisbeeCatch/v_FrisbeeCatch_g17_c02 30 -BenchPress/v_BenchPress_g13_c06 9 -MilitaryParade/v_MilitaryParade_g20_c02 52 -FieldHockeyPenalty/v_FieldHockeyPenalty_g17_c04 28 -HammerThrow/v_HammerThrow_g11_c03 35 -BrushingTeeth/v_BrushingTeeth_g11_c01 19 -FrontCrawl/v_FrontCrawl_g22_c04 31 -Kayaking/v_Kayaking_g10_c05 48 -HammerThrow/v_HammerThrow_g22_c04 35 -BenchPress/v_BenchPress_g17_c03 9 -PoleVault/v_PoleVault_g12_c05 67 -SkateBoarding/v_SkateBoarding_g17_c03 79 -MoppingFloor/v_MoppingFloor_g18_c02 54 -Haircut/v_Haircut_g25_c02 33 -Billiards/v_Billiards_g19_c04 11 -BabyCrawling/v_BabyCrawling_g18_c04 3 -Shotput/v_Shotput_g22_c01 78 -TableTennisShot/v_TableTennisShot_g22_c06 89 -Rafting/v_Rafting_g17_c05 72 -Diving/v_Diving_g12_c01 25 -Nunchucks/v_Nunchucks_g09_c05 55 -Archery/v_Archery_g11_c02 2 -BasketballDunk/v_BasketballDunk_g19_c04 8 -BalanceBeam/v_BalanceBeam_g14_c03 4 -Drumming/v_Drumming_g18_c04 26 -BasketballDunk/v_BasketballDunk_g14_c02 8 -JumpingJack/v_JumpingJack_g10_c05 46 -UnevenBars/v_UnevenBars_g13_c01 95 -Lunges/v_Lunges_g16_c04 51 -Hammering/v_Hammering_g10_c02 34 -RopeClimbing/v_RopeClimbing_g11_c04 74 -BaseballPitch/v_BaseballPitch_g21_c02 6 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c04 0 -BreastStroke/v_BreastStroke_g10_c02 18 -PizzaTossing/v_PizzaTossing_g17_c01 57 -Kayaking/v_Kayaking_g20_c01 48 -PlayingCello/v_PlayingCello_g19_c03 58 -ShavingBeard/v_ShavingBeard_g17_c01 77 -CleanAndJerk/v_CleanAndJerk_g09_c04 20 -TableTennisShot/v_TableTennisShot_g15_c05 89 -PlayingDhol/v_PlayingDhol_g10_c03 60 -PoleVault/v_PoleVault_g14_c02 67 -Skiing/v_Skiing_g24_c02 80 -BoxingPunchingBag/v_BoxingPunchingBag_g11_c05 16 -Mixing/v_Mixing_g13_c03 53 -StillRings/v_StillRings_g22_c03 85 -Nunchucks/v_Nunchucks_g23_c05 55 -SoccerJuggling/v_SoccerJuggling_g23_c02 83 -Archery/v_Archery_g10_c01 2 -SoccerPenalty/v_SoccerPenalty_g20_c04 84 -PlayingGuitar/v_PlayingGuitar_g13_c02 62 -ThrowDiscus/v_ThrowDiscus_g15_c05 92 -PlayingFlute/v_PlayingFlute_g25_c04 61 -CliffDiving/v_CliffDiving_g12_c07 21 -HulaHoop/v_HulaHoop_g13_c05 42 -HandstandWalking/v_HandstandWalking_g13_c01 37 -Swing/v_Swing_g09_c01 88 -FrisbeeCatch/v_FrisbeeCatch_g25_c01 30 -RopeClimbing/v_RopeClimbing_g13_c07 74 -Rafting/v_Rafting_g09_c02 72 -FieldHockeyPenalty/v_FieldHockeyPenalty_g08_c02 28 -PoleVault/v_PoleVault_g17_c03 67 -ThrowDiscus/v_ThrowDiscus_g12_c01 92 -BreastStroke/v_BreastStroke_g12_c01 18 -PlayingTabla/v_PlayingTabla_g22_c01 65 -HandstandPushups/v_HandStandPushups_g22_c05 36 -FrontCrawl/v_FrontCrawl_g19_c01 31 -Archery/v_Archery_g10_c07 2 -HeadMassage/v_HeadMassage_g21_c02 38 -PoleVault/v_PoleVault_g14_c03 67 -Nunchucks/v_Nunchucks_g22_c02 55 -Basketball/v_Basketball_g10_c03 7 -BlowingCandles/v_BlowingCandles_g22_c01 13 -BaseballPitch/v_BaseballPitch_g20_c02 6 -PlayingTabla/v_PlayingTabla_g20_c03 65 -BoxingSpeedBag/v_BoxingSpeedBag_g19_c03 17 -SkateBoarding/v_SkateBoarding_g19_c05 79 -ThrowDiscus/v_ThrowDiscus_g17_c01 92 -BreastStroke/v_BreastStroke_g12_c03 18 -ApplyLipstick/v_ApplyLipstick_g11_c01 1 -Kayaking/v_Kayaking_g11_c07 48 -RopeClimbing/v_RopeClimbing_g13_c01 74 -PlayingDaf/v_PlayingDaf_g11_c04 59 -Bowling/v_Bowling_g19_c02 15 -Kayaking/v_Kayaking_g21_c01 48 -PlayingSitar/v_PlayingSitar_g24_c04 64 -TennisSwing/v_TennisSwing_g08_c02 91 -ShavingBeard/v_ShavingBeard_g22_c02 77 -BrushingTeeth/v_BrushingTeeth_g19_c05 19 -CricketBowling/v_CricketBowling_g14_c04 22 -PlayingCello/v_PlayingCello_g12_c06 58 -BenchPress/v_BenchPress_g13_c05 9 -BodyWeightSquats/v_BodyWeightSquats_g25_c02 14 -MilitaryParade/v_MilitaryParade_g22_c02 52 -PlayingDhol/v_PlayingDhol_g13_c02 60 -BrushingTeeth/v_BrushingTeeth_g23_c03 19 -Archery/v_Archery_g19_c02 2 -SkyDiving/v_SkyDiving_g12_c04 82 -BreastStroke/v_BreastStroke_g15_c01 18 -Punch/v_Punch_g21_c04 70 -HeadMassage/v_HeadMassage_g12_c01 38 -BlowDryHair/v_BlowDryHair_g23_c07 12 -LongJump/v_LongJump_g08_c04 50 -JugglingBalls/v_JugglingBalls_g18_c04 45 -BenchPress/v_BenchPress_g24_c01 9 -WritingOnBoard/v_WritingOnBoard_g10_c03 99 -Surfing/v_Surfing_g21_c01 87 -Billiards/v_Billiards_g18_c05 11 -BabyCrawling/v_BabyCrawling_g22_c05 3 -Mixing/v_Mixing_g09_c03 53 -GolfSwing/v_GolfSwing_g13_c02 32 -PlayingDaf/v_PlayingDaf_g22_c01 59 -BlowDryHair/v_BlowDryHair_g23_c04 12 -YoYo/v_YoYo_g23_c05 100 -SoccerJuggling/v_SoccerJuggling_g14_c04 83 -Haircut/v_Haircut_g11_c01 33 -WallPushups/v_WallPushups_g12_c01 98 -ApplyLipstick/v_ApplyLipstick_g18_c03 1 -BoxingPunchingBag/v_BoxingPunchingBag_g17_c03 16 -BenchPress/v_BenchPress_g14_c04 9 -JugglingBalls/v_JugglingBalls_g08_c03 45 -Diving/v_Diving_g09_c07 25 -ParallelBars/v_ParallelBars_g12_c04 56 -TennisSwing/v_TennisSwing_g11_c06 91 -Swing/v_Swing_g15_c03 88 -StillRings/v_StillRings_g13_c01 85 -IceDancing/v_IceDancing_g21_c03 43 -Surfing/v_Surfing_g22_c03 87 -TrampolineJumping/v_TrampolineJumping_g09_c04 93 -MoppingFloor/v_MoppingFloor_g12_c03 54 -Archery/v_Archery_g25_c07 2 -JumpingJack/v_JumpingJack_g23_c03 46 -GolfSwing/v_GolfSwing_g14_c04 32 -Biking/v_Biking_g20_c03 10 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c05 28 -PlayingCello/v_PlayingCello_g21_c05 58 -BlowingCandles/v_BlowingCandles_g12_c04 13 -Hammering/v_Hammering_g14_c05 34 -SkateBoarding/v_SkateBoarding_g22_c04 79 -HorseRiding/v_HorseRiding_g25_c01 41 -Diving/v_Diving_g23_c02 25 -Skiing/v_Skiing_g20_c06 80 -JumpingJack/v_JumpingJack_g10_c01 46 -CricketShot/v_CricketShot_g23_c03 23 -BasketballDunk/v_BasketballDunk_g10_c02 8 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c03 16 -MilitaryParade/v_MilitaryParade_g10_c01 52 -Nunchucks/v_Nunchucks_g25_c02 55 -SalsaSpin/v_SalsaSpin_g09_c05 76 -Fencing/v_Fencing_g11_c05 27 -PlayingFlute/v_PlayingFlute_g19_c04 61 -FrisbeeCatch/v_FrisbeeCatch_g18_c01 30 -SoccerJuggling/v_SoccerJuggling_g20_c05 83 -HorseRiding/v_HorseRiding_g17_c02 41 -HighJump/v_HighJump_g22_c05 39 -Haircut/v_Haircut_g18_c05 33 -MilitaryParade/v_MilitaryParade_g25_c01 52 -Rowing/v_Rowing_g14_c02 75 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c06 16 -BabyCrawling/v_BabyCrawling_g13_c05 3 -Biking/v_Biking_g17_c06 10 -Archery/v_Archery_g14_c03 2 -CleanAndJerk/v_CleanAndJerk_g22_c04 20 -SoccerPenalty/v_SoccerPenalty_g25_c03 84 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c04 16 -Bowling/v_Bowling_g25_c05 15 -ShavingBeard/v_ShavingBeard_g24_c02 77 -Rowing/v_Rowing_g12_c06 75 -GolfSwing/v_GolfSwing_g16_c03 32 -Punch/v_Punch_g08_c02 70 -GolfSwing/v_GolfSwing_g23_c01 32 -VolleyballSpiking/v_VolleyballSpiking_g23_c03 96 -IceDancing/v_IceDancing_g21_c05 43 -JavelinThrow/v_JavelinThrow_g08_c02 44 -LongJump/v_LongJump_g10_c06 50 -Haircut/v_Haircut_g09_c02 33 -Archery/v_Archery_g24_c06 2 -WritingOnBoard/v_WritingOnBoard_g12_c02 99 -TennisSwing/v_TennisSwing_g10_c03 91 -BodyWeightSquats/v_BodyWeightSquats_g23_c03 14 -FrontCrawl/v_FrontCrawl_g09_c04 31 -CleanAndJerk/v_CleanAndJerk_g25_c02 20 -PushUps/v_PushUps_g17_c03 71 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c03 73 -Lunges/v_Lunges_g22_c01 51 -IceDancing/v_IceDancing_g21_c04 43 -HammerThrow/v_HammerThrow_g23_c07 35 -PlayingSitar/v_PlayingSitar_g19_c02 64 -PlayingSitar/v_PlayingSitar_g17_c03 64 -SoccerPenalty/v_SoccerPenalty_g12_c05 84 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c05 28 -Punch/v_Punch_g17_c04 70 -HandstandPushups/v_HandStandPushups_g18_c05 36 -Rowing/v_Rowing_g23_c01 75 -Shotput/v_Shotput_g11_c01 78 -JumpingJack/v_JumpingJack_g15_c02 46 -SalsaSpin/v_SalsaSpin_g21_c02 76 -Hammering/v_Hammering_g17_c02 34 -PlayingCello/v_PlayingCello_g09_c05 58 -ApplyLipstick/v_ApplyLipstick_g23_c01 1 -Billiards/v_Billiards_g12_c02 11 -BrushingTeeth/v_BrushingTeeth_g11_c02 19 -Shotput/v_Shotput_g19_c03 78 -JumpingJack/v_JumpingJack_g19_c02 46 -Typing/v_Typing_g14_c04 94 -Drumming/v_Drumming_g21_c01 26 -SumoWrestling/v_SumoWrestling_g16_c01 86 -Punch/v_Punch_g13_c05 70 -RockClimbingIndoor/v_RockClimbingIndoor_g18_c01 73 -HandstandPushups/v_HandStandPushups_g16_c04 36 -TrampolineJumping/v_TrampolineJumping_g18_c03 93 -SkyDiving/v_SkyDiving_g17_c02 82 -Hammering/v_Hammering_g23_c02 34 -TableTennisShot/v_TableTennisShot_g20_c04 89 -MilitaryParade/v_MilitaryParade_g16_c03 52 -HorseRace/v_HorseRace_g08_c03 40 -Bowling/v_Bowling_g24_c01 15 -RopeClimbing/v_RopeClimbing_g23_c02 74 -Skijet/v_Skijet_g23_c03 81 -UnevenBars/v_UnevenBars_g18_c04 95 -Swing/v_Swing_g19_c04 88 -BabyCrawling/v_BabyCrawling_g19_c03 3 -ShavingBeard/v_ShavingBeard_g25_c04 77 -HeadMassage/v_HeadMassage_g14_c04 38 -SkyDiving/v_SkyDiving_g20_c05 82 -SoccerJuggling/v_SoccerJuggling_g17_c02 83 -FrisbeeCatch/v_FrisbeeCatch_g12_c03 30 -PoleVault/v_PoleVault_g19_c05 67 -HorseRace/v_HorseRace_g13_c05 40 -PlayingFlute/v_PlayingFlute_g15_c02 61 -BodyWeightSquats/v_BodyWeightSquats_g20_c06 14 -Fencing/v_Fencing_g22_c02 27 -BabyCrawling/v_BabyCrawling_g25_c04 3 -BaseballPitch/v_BaseballPitch_g24_c05 6 -RopeClimbing/v_RopeClimbing_g08_c01 74 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c04 17 -PommelHorse/v_PommelHorse_g19_c05 68 -BasketballDunk/v_BasketballDunk_g15_c04 8 -Rafting/v_Rafting_g19_c01 72 -FrisbeeCatch/v_FrisbeeCatch_g09_c02 30 -ThrowDiscus/v_ThrowDiscus_g25_c02 92 -CricketShot/v_CricketShot_g14_c07 23 -SumoWrestling/v_SumoWrestling_g24_c02 86 -Surfing/v_Surfing_g19_c03 87 -PlayingGuitar/v_PlayingGuitar_g17_c03 62 -PlayingSitar/v_PlayingSitar_g21_c04 64 -JugglingBalls/v_JugglingBalls_g09_c04 45 -PommelHorse/v_PommelHorse_g08_c02 68 -HandstandWalking/v_HandstandWalking_g17_c01 37 -SoccerPenalty/v_SoccerPenalty_g14_c01 84 -BandMarching/v_BandMarching_g13_c03 5 -BrushingTeeth/v_BrushingTeeth_g21_c04 19 -FrontCrawl/v_FrontCrawl_g13_c02 31 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c07 16 -ShavingBeard/v_ShavingBeard_g13_c02 77 -BlowDryHair/v_BlowDryHair_g17_c03 12 -PoleVault/v_PoleVault_g15_c03 67 -GolfSwing/v_GolfSwing_g21_c06 32 -ParallelBars/v_ParallelBars_g11_c01 56 -Basketball/v_Basketball_g22_c02 7 -Bowling/v_Bowling_g21_c05 15 -PoleVault/v_PoleVault_g12_c01 67 -PommelHorse/v_PommelHorse_g09_c01 68 -Mixing/v_Mixing_g17_c01 53 -HighJump/v_HighJump_g17_c02 39 -CliffDiving/v_CliffDiving_g18_c05 21 -BabyCrawling/v_BabyCrawling_g24_c04 3 -YoYo/v_YoYo_g09_c05 100 -SumoWrestling/v_SumoWrestling_g12_c02 86 -PlayingCello/v_PlayingCello_g25_c04 58 -UnevenBars/v_UnevenBars_g16_c01 95 -Mixing/v_Mixing_g12_c03 53 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c02 73 -PlayingGuitar/v_PlayingGuitar_g18_c07 62 -BaseballPitch/v_BaseballPitch_g09_c06 6 -Rowing/v_Rowing_g12_c07 75 -JugglingBalls/v_JugglingBalls_g14_c03 45 -CleanAndJerk/v_CleanAndJerk_g24_c04 20 -SoccerJuggling/v_SoccerJuggling_g14_c06 83 -BreastStroke/v_BreastStroke_g19_c03 18 -FrisbeeCatch/v_FrisbeeCatch_g12_c01 30 -Swing/v_Swing_g24_c01 88 -HeadMassage/v_HeadMassage_g12_c04 38 -TrampolineJumping/v_TrampolineJumping_g18_c02 93 -Kayaking/v_Kayaking_g11_c02 48 -Nunchucks/v_Nunchucks_g13_c01 55 -FieldHockeyPenalty/v_FieldHockeyPenalty_g21_c01 28 -Bowling/v_Bowling_g15_c06 15 -Hammering/v_Hammering_g09_c06 34 -FrisbeeCatch/v_FrisbeeCatch_g15_c03 30 -Nunchucks/v_Nunchucks_g20_c03 55 -CliffDiving/v_CliffDiving_g16_c03 21 -Biking/v_Biking_g20_c06 10 -Bowling/v_Bowling_g17_c02 15 -JavelinThrow/v_JavelinThrow_g15_c03 44 -PlayingDaf/v_PlayingDaf_g19_c06 59 -PullUps/v_PullUps_g12_c03 69 -SkateBoarding/v_SkateBoarding_g25_c05 79 -PullUps/v_PullUps_g25_c02 69 -HighJump/v_HighJump_g21_c03 39 -Biking/v_Biking_g22_c05 10 -CricketShot/v_CricketShot_g17_c01 23 -Haircut/v_Haircut_g08_c01 33 -FrontCrawl/v_FrontCrawl_g21_c02 31 -StillRings/v_StillRings_g10_c01 85 -TrampolineJumping/v_TrampolineJumping_g12_c01 93 -CricketBowling/v_CricketBowling_g17_c03 22 -BandMarching/v_BandMarching_g16_c04 5 -BaseballPitch/v_BaseballPitch_g22_c04 6 -JumpRope/v_JumpRope_g23_c05 47 -JavelinThrow/v_JavelinThrow_g23_c04 44 -HandstandPushups/v_HandStandPushups_g24_c03 36 -BodyWeightSquats/v_BodyWeightSquats_g15_c04 14 -Surfing/v_Surfing_g24_c02 87 -PizzaTossing/v_PizzaTossing_g16_c03 57 -PommelHorse/v_PommelHorse_g10_c04 68 -HammerThrow/v_HammerThrow_g25_c05 35 -PommelHorse/v_PommelHorse_g24_c01 68 -Rafting/v_Rafting_g14_c04 72 -PlayingPiano/v_PlayingPiano_g19_c01 63 -CricketShot/v_CricketShot_g24_c06 23 -HighJump/v_HighJump_g22_c03 39 -FieldHockeyPenalty/v_FieldHockeyPenalty_g23_c04 28 -StillRings/v_StillRings_g18_c02 85 -TennisSwing/v_TennisSwing_g21_c03 91 -HammerThrow/v_HammerThrow_g20_c04 35 -WritingOnBoard/v_WritingOnBoard_g18_c03 99 -BenchPress/v_BenchPress_g17_c05 9 -BrushingTeeth/v_BrushingTeeth_g10_c03 19 -MoppingFloor/v_MoppingFloor_g15_c04 54 -JumpingJack/v_JumpingJack_g21_c04 46 -TableTennisShot/v_TableTennisShot_g15_c06 89 -ShavingBeard/v_ShavingBeard_g18_c01 77 -BlowDryHair/v_BlowDryHair_g10_c02 12 -PoleVault/v_PoleVault_g22_c02 67 -Mixing/v_Mixing_g09_c04 53 -SoccerJuggling/v_SoccerJuggling_g14_c01 83 -VolleyballSpiking/v_VolleyballSpiking_g13_c05 96 -CricketBowling/v_CricketBowling_g23_c03 22 -BabyCrawling/v_BabyCrawling_g10_c01 3 -PlayingGuitar/v_PlayingGuitar_g10_c03 62 -PushUps/v_PushUps_g19_c03 71 -CricketBowling/v_CricketBowling_g09_c04 22 -Kayaking/v_Kayaking_g15_c03 48 -JavelinThrow/v_JavelinThrow_g08_c01 44 -BodyWeightSquats/v_BodyWeightSquats_g21_c01 14 -Swing/v_Swing_g08_c05 88 -Mixing/v_Mixing_g19_c02 53 -Lunges/v_Lunges_g20_c02 51 -JumpingJack/v_JumpingJack_g25_c07 46 -HandstandPushups/v_HandStandPushups_g18_c01 36 -BlowingCandles/v_BlowingCandles_g12_c02 13 -PlayingGuitar/v_PlayingGuitar_g14_c01 62 -BandMarching/v_BandMarching_g11_c06 5 -BandMarching/v_BandMarching_g17_c04 5 -PlayingDhol/v_PlayingDhol_g21_c04 60 -Skijet/v_Skijet_g10_c02 81 -BalanceBeam/v_BalanceBeam_g21_c03 4 -FrontCrawl/v_FrontCrawl_g23_c07 31 -ShavingBeard/v_ShavingBeard_g23_c03 77 -PlayingDhol/v_PlayingDhol_g23_c06 60 -FloorGymnastics/v_FloorGymnastics_g13_c04 29 -Kayaking/v_Kayaking_g24_c05 48 -Mixing/v_Mixing_g17_c03 53 -Lunges/v_Lunges_g19_c01 51 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c06 73 -TaiChi/v_TaiChi_g25_c03 90 -SkateBoarding/v_SkateBoarding_g15_c02 79 -HammerThrow/v_HammerThrow_g17_c05 35 -Haircut/v_Haircut_g19_c01 33 -BaseballPitch/v_BaseballPitch_g12_c04 6 -HandstandWalking/v_HandstandWalking_g24_c04 37 -Surfing/v_Surfing_g13_c02 87 -CuttingInKitchen/v_CuttingInKitchen_g16_c02 24 -FloorGymnastics/v_FloorGymnastics_g24_c04 29 -Punch/v_Punch_g12_c01 70 -PommelHorse/v_PommelHorse_g24_c03 68 -BrushingTeeth/v_BrushingTeeth_g25_c03 19 -BabyCrawling/v_BabyCrawling_g22_c04 3 -BoxingSpeedBag/v_BoxingSpeedBag_g16_c02 17 -Biking/v_Biking_g18_c01 10 -PlayingDhol/v_PlayingDhol_g19_c04 60 -JugglingBalls/v_JugglingBalls_g24_c04 45 -GolfSwing/v_GolfSwing_g14_c03 32 -WalkingWithDog/v_WalkingWithDog_g14_c03 97 -BodyWeightSquats/v_BodyWeightSquats_g15_c01 14 -PlayingCello/v_PlayingCello_g22_c01 58 -JumpRope/v_JumpRope_g09_c04 47 -CricketShot/v_CricketShot_g16_c01 23 -Basketball/v_Basketball_g13_c03 7 -HighJump/v_HighJump_g14_c02 39 -Bowling/v_Bowling_g20_c01 15 -WallPushups/v_WallPushups_g17_c05 98 -BlowingCandles/v_BlowingCandles_g22_c02 13 -Nunchucks/v_Nunchucks_g09_c04 55 -Shotput/v_Shotput_g18_c02 78 -LongJump/v_LongJump_g14_c02 50 -MoppingFloor/v_MoppingFloor_g22_c01 54 -BasketballDunk/v_BasketballDunk_g16_c05 8 -SoccerJuggling/v_SoccerJuggling_g16_c05 83 -BaseballPitch/v_BaseballPitch_g14_c02 6 -JumpRope/v_JumpRope_g24_c05 47 -CuttingInKitchen/v_CuttingInKitchen_g12_c03 24 -BalanceBeam/v_BalanceBeam_g08_c04 4 -BabyCrawling/v_BabyCrawling_g13_c02 3 -CliffDiving/v_CliffDiving_g09_c02 21 -Archery/v_Archery_g22_c02 2 -Nunchucks/v_Nunchucks_g19_c04 55 -PlayingGuitar/v_PlayingGuitar_g15_c02 62 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c07 16 -Rafting/v_Rafting_g18_c01 72 -Drumming/v_Drumming_g11_c06 26 -BlowingCandles/v_BlowingCandles_g12_c03 13 -PlayingFlute/v_PlayingFlute_g24_c05 61 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c01 73 -BaseballPitch/v_BaseballPitch_g17_c04 6 -Diving/v_Diving_g15_c01 25 -TaiChi/v_TaiChi_g21_c04 90 -HorseRiding/v_HorseRiding_g25_c06 41 -Knitting/v_Knitting_g17_c06 49 -HandstandPushups/v_HandStandPushups_g22_c04 36 -Rowing/v_Rowing_g15_c02 75 -MoppingFloor/v_MoppingFloor_g22_c04 54 -FrisbeeCatch/v_FrisbeeCatch_g20_c04 30 -Shotput/v_Shotput_g11_c04 78 -BaseballPitch/v_BaseballPitch_g11_c01 6 -Swing/v_Swing_g21_c01 88 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c04 73 -Knitting/v_Knitting_g25_c06 49 -BlowingCandles/v_BlowingCandles_g21_c04 13 -SoccerPenalty/v_SoccerPenalty_g19_c01 84 -PlayingViolin/v_PlayingViolin_g24_c04 66 -BrushingTeeth/v_BrushingTeeth_g11_c03 19 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c04 17 -PlayingDaf/v_PlayingDaf_g15_c04 59 -TaiChi/v_TaiChi_g09_c02 90 -WalkingWithDog/v_WalkingWithDog_g09_c01 97 -Hammering/v_Hammering_g14_c04 34 -Lunges/v_Lunges_g10_c04 51 -Rowing/v_Rowing_g17_c03 75 -SalsaSpin/v_SalsaSpin_g15_c04 76 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c01 16 -UnevenBars/v_UnevenBars_g11_c03 95 -Haircut/v_Haircut_g09_c06 33 -ApplyLipstick/v_ApplyLipstick_g20_c02 1 -HighJump/v_HighJump_g24_c04 39 -HeadMassage/v_HeadMassage_g20_c04 38 -BrushingTeeth/v_BrushingTeeth_g23_c05 19 -Typing/v_Typing_g11_c02 94 -PlayingTabla/v_PlayingTabla_g17_c01 65 -JavelinThrow/v_JavelinThrow_g12_c02 44 -HeadMassage/v_HeadMassage_g12_c05 38 -LongJump/v_LongJump_g11_c05 50 -YoYo/v_YoYo_g16_c04 100 -SkyDiving/v_SkyDiving_g15_c04 82 -BabyCrawling/v_BabyCrawling_g20_c06 3 -SoccerJuggling/v_SoccerJuggling_g19_c01 83 -PullUps/v_PullUps_g16_c01 69 -PlayingSitar/v_PlayingSitar_g12_c04 64 -HeadMassage/v_HeadMassage_g08_c05 38 -Haircut/v_Haircut_g15_c02 33 -CuttingInKitchen/v_CuttingInKitchen_g25_c06 24 -Lunges/v_Lunges_g21_c02 51 -BrushingTeeth/v_BrushingTeeth_g15_c01 19 -WritingOnBoard/v_WritingOnBoard_g21_c06 99 -PommelHorse/v_PommelHorse_g24_c02 68 -Typing/v_Typing_g08_c04 94 -BabyCrawling/v_BabyCrawling_g09_c04 3 -Billiards/v_Billiards_g17_c03 11 -Punch/v_Punch_g12_c02 70 -TableTennisShot/v_TableTennisShot_g13_c03 89 -TableTennisShot/v_TableTennisShot_g24_c06 89 -Mixing/v_Mixing_g20_c02 53 -FieldHockeyPenalty/v_FieldHockeyPenalty_g22_c04 28 -BandMarching/v_BandMarching_g16_c05 5 -LongJump/v_LongJump_g15_c05 50 -HulaHoop/v_HulaHoop_g09_c03 42 -Skijet/v_Skijet_g08_c02 81 -ApplyLipstick/v_ApplyLipstick_g08_c02 1 -ShavingBeard/v_ShavingBeard_g20_c07 77 -SoccerPenalty/v_SoccerPenalty_g09_c03 84 -PlayingDhol/v_PlayingDhol_g14_c01 60 -Typing/v_Typing_g14_c01 94 -CuttingInKitchen/v_CuttingInKitchen_g09_c04 24 -PlayingGuitar/v_PlayingGuitar_g10_c01 62 -StillRings/v_StillRings_g20_c04 85 -PlayingDaf/v_PlayingDaf_g10_c03 59 -HandstandPushups/v_HandStandPushups_g11_c01 36 -SoccerJuggling/v_SoccerJuggling_g25_c02 83 -UnevenBars/v_UnevenBars_g08_c04 95 -SoccerPenalty/v_SoccerPenalty_g21_c04 84 -TennisSwing/v_TennisSwing_g16_c07 91 -YoYo/v_YoYo_g21_c06 100 -Fencing/v_Fencing_g18_c01 27 -CricketShot/v_CricketShot_g18_c03 23 -CuttingInKitchen/v_CuttingInKitchen_g25_c04 24 -Typing/v_Typing_g22_c02 94 -Biking/v_Biking_g13_c03 10 -TennisSwing/v_TennisSwing_g09_c06 91 -HandstandWalking/v_HandstandWalking_g19_c04 37 -JumpRope/v_JumpRope_g19_c02 47 -Drumming/v_Drumming_g09_c04 26 -HorseRiding/v_HorseRiding_g22_c02 41 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c04 73 -Biking/v_Biking_g13_c02 10 -BenchPress/v_BenchPress_g25_c01 9 -Basketball/v_Basketball_g14_c04 7 -Punch/v_Punch_g25_c04 70 -Rowing/v_Rowing_g15_c07 75 -Nunchucks/v_Nunchucks_g17_c03 55 -Haircut/v_Haircut_g21_c04 33 -PullUps/v_PullUps_g11_c01 69 -IceDancing/v_IceDancing_g25_c01 43 -WalkingWithDog/v_WalkingWithDog_g25_c03 97 -WallPushups/v_WallPushups_g13_c05 98 -HorseRiding/v_HorseRiding_g09_c02 41 -WalkingWithDog/v_WalkingWithDog_g09_c05 97 -WallPushups/v_WallPushups_g16_c06 98 -FrontCrawl/v_FrontCrawl_g15_c04 31 -BabyCrawling/v_BabyCrawling_g19_c04 3 -SumoWrestling/v_SumoWrestling_g12_c04 86 -CricketBowling/v_CricketBowling_g22_c01 22 -Shotput/v_Shotput_g16_c03 78 -SkyDiving/v_SkyDiving_g18_c05 82 -RopeClimbing/v_RopeClimbing_g08_c02 74 -BodyWeightSquats/v_BodyWeightSquats_g19_c02 14 -UnevenBars/v_UnevenBars_g19_c04 95 -BlowingCandles/v_BlowingCandles_g11_c01 13 -GolfSwing/v_GolfSwing_g15_c02 32 -SalsaSpin/v_SalsaSpin_g20_c05 76 -ThrowDiscus/v_ThrowDiscus_g20_c04 92 -Basketball/v_Basketball_g11_c02 7 -ShavingBeard/v_ShavingBeard_g12_c05 77 -BoxingSpeedBag/v_BoxingSpeedBag_g22_c03 17 -PoleVault/v_PoleVault_g18_c03 67 -Diving/v_Diving_g08_c04 25 -HorseRiding/v_HorseRiding_g10_c02 41 -Biking/v_Biking_g22_c04 10 -JumpRope/v_JumpRope_g17_c05 47 -Fencing/v_Fencing_g17_c03 27 -BodyWeightSquats/v_BodyWeightSquats_g10_c05 14 -WallPushups/v_WallPushups_g10_c02 98 -PlayingViolin/v_PlayingViolin_g17_c03 66 -SoccerJuggling/v_SoccerJuggling_g15_c02 83 -BaseballPitch/v_BaseballPitch_g12_c01 6 -ShavingBeard/v_ShavingBeard_g15_c05 77 -CuttingInKitchen/v_CuttingInKitchen_g23_c02 24 -BreastStroke/v_BreastStroke_g24_c04 18 -IceDancing/v_IceDancing_g08_c05 43 -HeadMassage/v_HeadMassage_g19_c02 38 -Bowling/v_Bowling_g15_c04 15 -CricketBowling/v_CricketBowling_g11_c01 22 -BreastStroke/v_BreastStroke_g09_c01 18 -Fencing/v_Fencing_g21_c02 27 -LongJump/v_LongJump_g10_c07 50 -HorseRace/v_HorseRace_g25_c02 40 -Nunchucks/v_Nunchucks_g22_c03 55 -Drumming/v_Drumming_g24_c03 26 -PizzaTossing/v_PizzaTossing_g23_c04 57 -WallPushups/v_WallPushups_g24_c01 98 -JugglingBalls/v_JugglingBalls_g20_c03 45 -CleanAndJerk/v_CleanAndJerk_g15_c01 20 -SoccerJuggling/v_SoccerJuggling_g13_c05 83 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c01 17 -Punch/v_Punch_g12_c03 70 -BasketballDunk/v_BasketballDunk_g08_c04 8 -Drumming/v_Drumming_g23_c06 26 -LongJump/v_LongJump_g13_c01 50 -Haircut/v_Haircut_g25_c01 33 -SalsaSpin/v_SalsaSpin_g24_c03 76 -Archery/v_Archery_g16_c02 2 -UnevenBars/v_UnevenBars_g15_c04 95 -Billiards/v_Billiards_g12_c05 11 -Haircut/v_Haircut_g20_c06 33 -JumpRope/v_JumpRope_g14_c04 47 -PlayingDhol/v_PlayingDhol_g25_c06 60 -RopeClimbing/v_RopeClimbing_g22_c04 74 -HeadMassage/v_HeadMassage_g11_c01 38 -BalanceBeam/v_BalanceBeam_g20_c03 4 -PizzaTossing/v_PizzaTossing_g24_c06 57 -StillRings/v_StillRings_g25_c05 85 -LongJump/v_LongJump_g19_c06 50 -Shotput/v_Shotput_g17_c02 78 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c01 0 -PlayingViolin/v_PlayingViolin_g25_c03 66 -UnevenBars/v_UnevenBars_g20_c04 95 -HorseRiding/v_HorseRiding_g15_c04 41 -BrushingTeeth/v_BrushingTeeth_g12_c06 19 -Fencing/v_Fencing_g24_c02 27 -Basketball/v_Basketball_g15_c01 7 -Lunges/v_Lunges_g19_c06 51 -BrushingTeeth/v_BrushingTeeth_g22_c05 19 -FieldHockeyPenalty/v_FieldHockeyPenalty_g19_c04 28 -CricketShot/v_CricketShot_g08_c06 23 -BreastStroke/v_BreastStroke_g20_c03 18 -CleanAndJerk/v_CleanAndJerk_g21_c03 20 -PlayingViolin/v_PlayingViolin_g12_c02 66 -Rowing/v_Rowing_g23_c05 75 -CricketShot/v_CricketShot_g10_c04 23 -HorseRiding/v_HorseRiding_g16_c01 41 -BandMarching/v_BandMarching_g11_c03 5 -Billiards/v_Billiards_g14_c02 11 -IceDancing/v_IceDancing_g11_c02 43 -TrampolineJumping/v_TrampolineJumping_g10_c03 93 -Hammering/v_Hammering_g25_c01 34 -PlayingCello/v_PlayingCello_g21_c01 58 -WallPushups/v_WallPushups_g19_c03 98 -TrampolineJumping/v_TrampolineJumping_g13_c04 93 -TrampolineJumping/v_TrampolineJumping_g15_c01 93 -SalsaSpin/v_SalsaSpin_g16_c05 76 -CleanAndJerk/v_CleanAndJerk_g20_c03 20 -JavelinThrow/v_JavelinThrow_g22_c03 44 -PizzaTossing/v_PizzaTossing_g18_c03 57 -JumpingJack/v_JumpingJack_g17_c02 46 -HighJump/v_HighJump_g10_c03 39 -RopeClimbing/v_RopeClimbing_g22_c03 74 -PlayingDhol/v_PlayingDhol_g14_c06 60 -Typing/v_Typing_g19_c03 94 -BodyWeightSquats/v_BodyWeightSquats_g09_c02 14 -ParallelBars/v_ParallelBars_g16_c02 56 -ThrowDiscus/v_ThrowDiscus_g23_c01 92 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c04 73 -PlayingCello/v_PlayingCello_g08_c01 58 -BasketballDunk/v_BasketballDunk_g12_c01 8 -BreastStroke/v_BreastStroke_g18_c02 18 -BrushingTeeth/v_BrushingTeeth_g11_c04 19 -GolfSwing/v_GolfSwing_g14_c02 32 -GolfSwing/v_GolfSwing_g16_c02 32 -PlayingFlute/v_PlayingFlute_g24_c01 61 -Kayaking/v_Kayaking_g13_c03 48 -GolfSwing/v_GolfSwing_g10_c02 32 -MilitaryParade/v_MilitaryParade_g08_c02 52 -HammerThrow/v_HammerThrow_g22_c05 35 -Haircut/v_Haircut_g08_c06 33 -BlowDryHair/v_BlowDryHair_g12_c02 12 -TaiChi/v_TaiChi_g08_c02 90 -Drumming/v_Drumming_g17_c06 26 -BlowingCandles/v_BlowingCandles_g20_c04 13 -Kayaking/v_Kayaking_g25_c03 48 -HandstandPushups/v_HandStandPushups_g11_c06 36 -PlayingGuitar/v_PlayingGuitar_g20_c04 62 -PlayingPiano/v_PlayingPiano_g24_c04 63 -HighJump/v_HighJump_g10_c04 39 -TableTennisShot/v_TableTennisShot_g23_c02 89 -CricketShot/v_CricketShot_g09_c03 23 -Kayaking/v_Kayaking_g15_c06 48 -ShavingBeard/v_ShavingBeard_g20_c05 77 -FrontCrawl/v_FrontCrawl_g20_c01 31 -BasketballDunk/v_BasketballDunk_g11_c01 8 -CuttingInKitchen/v_CuttingInKitchen_g23_c01 24 -FrontCrawl/v_FrontCrawl_g21_c04 31 -WritingOnBoard/v_WritingOnBoard_g24_c01 99 -PlayingTabla/v_PlayingTabla_g22_c02 65 -PlayingDhol/v_PlayingDhol_g12_c05 60 -ApplyLipstick/v_ApplyLipstick_g21_c01 1 -WritingOnBoard/v_WritingOnBoard_g16_c07 99 -JumpingJack/v_JumpingJack_g19_c06 46 -WalkingWithDog/v_WalkingWithDog_g25_c02 97 -YoYo/v_YoYo_g25_c05 100 -CliffDiving/v_CliffDiving_g09_c05 21 -BrushingTeeth/v_BrushingTeeth_g14_c03 19 -HeadMassage/v_HeadMassage_g23_c01 38 -PlayingDhol/v_PlayingDhol_g19_c03 60 -YoYo/v_YoYo_g12_c04 100 -PlayingPiano/v_PlayingPiano_g14_c03 63 -Shotput/v_Shotput_g15_c03 78 -VolleyballSpiking/v_VolleyballSpiking_g09_c05 96 -SumoWrestling/v_SumoWrestling_g11_c04 86 -Skiing/v_Skiing_g11_c03 80 -GolfSwing/v_GolfSwing_g17_c04 32 -BoxingSpeedBag/v_BoxingSpeedBag_g18_c04 17 -TrampolineJumping/v_TrampolineJumping_g22_c02 93 -BreastStroke/v_BreastStroke_g16_c03 18 -TrampolineJumping/v_TrampolineJumping_g22_c01 93 -PlayingDhol/v_PlayingDhol_g09_c03 60 -PommelHorse/v_PommelHorse_g12_c05 68 -HorseRiding/v_HorseRiding_g20_c03 41 -HighJump/v_HighJump_g12_c04 39 -HandstandPushups/v_HandStandPushups_g12_c06 36 -PlayingFlute/v_PlayingFlute_g23_c06 61 -PlayingSitar/v_PlayingSitar_g19_c05 64 -Surfing/v_Surfing_g15_c02 87 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c07 28 -WalkingWithDog/v_WalkingWithDog_g17_c03 97 -BaseballPitch/v_BaseballPitch_g16_c02 6 -JavelinThrow/v_JavelinThrow_g20_c03 44 -Skiing/v_Skiing_g20_c05 80 -TableTennisShot/v_TableTennisShot_g18_c04 89 -CleanAndJerk/v_CleanAndJerk_g25_c04 20 -WallPushups/v_WallPushups_g11_c01 98 -Punch/v_Punch_g08_c06 70 -BreastStroke/v_BreastStroke_g22_c03 18 -YoYo/v_YoYo_g09_c06 100 -Drumming/v_Drumming_g22_c02 26 -PlayingDhol/v_PlayingDhol_g20_c01 60 -ApplyLipstick/v_ApplyLipstick_g13_c04 1 -BandMarching/v_BandMarching_g22_c01 5 -Knitting/v_Knitting_g15_c01 49 -Kayaking/v_Kayaking_g25_c02 48 -Diving/v_Diving_g23_c01 25 -TennisSwing/v_TennisSwing_g09_c07 91 -ApplyLipstick/v_ApplyLipstick_g15_c01 1 -TrampolineJumping/v_TrampolineJumping_g19_c02 93 -Punch/v_Punch_g12_c07 70 -FloorGymnastics/v_FloorGymnastics_g20_c04 29 -Billiards/v_Billiards_g23_c02 11 -Archery/v_Archery_g12_c01 2 -HorseRace/v_HorseRace_g09_c03 40 -PlayingCello/v_PlayingCello_g20_c04 58 -BoxingSpeedBag/v_BoxingSpeedBag_g21_c02 17 -Bowling/v_Bowling_g11_c02 15 -TaiChi/v_TaiChi_g17_c01 90 -WallPushups/v_WallPushups_g18_c02 98 -SkyDiving/v_SkyDiving_g23_c02 82 -BabyCrawling/v_BabyCrawling_g09_c05 3 -JavelinThrow/v_JavelinThrow_g20_c04 44 -JavelinThrow/v_JavelinThrow_g11_c05 44 -HandstandWalking/v_HandstandWalking_g10_c02 37 -PlayingFlute/v_PlayingFlute_g24_c03 61 -HorseRace/v_HorseRace_g18_c05 40 -Punch/v_Punch_g10_c01 70 -ApplyEyeMakeup/v_ApplyEyeMakeup_g10_c02 0 -Billiards/v_Billiards_g14_c01 11 -Knitting/v_Knitting_g15_c04 49 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c07 16 -GolfSwing/v_GolfSwing_g23_c04 32 -RockClimbingIndoor/v_RockClimbingIndoor_g11_c01 73 -PlayingCello/v_PlayingCello_g10_c04 58 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c01 16 -HammerThrow/v_HammerThrow_g15_c04 35 -Bowling/v_Bowling_g22_c03 15 -PlayingGuitar/v_PlayingGuitar_g15_c01 62 -Swing/v_Swing_g16_c02 88 -HandstandWalking/v_HandstandWalking_g21_c02 37 -BoxingSpeedBag/v_BoxingSpeedBag_g16_c01 17 -SkateBoarding/v_SkateBoarding_g10_c01 79 -BlowDryHair/v_BlowDryHair_g08_c07 12 -HammerThrow/v_HammerThrow_g23_c03 35 -Rowing/v_Rowing_g12_c05 75 -Lunges/v_Lunges_g21_c05 51 -PlayingDaf/v_PlayingDaf_g16_c02 59 -BasketballDunk/v_BasketballDunk_g08_c03 8 -PullUps/v_PullUps_g14_c01 69 -CricketBowling/v_CricketBowling_g15_c04 22 -SoccerPenalty/v_SoccerPenalty_g15_c07 84 -Billiards/v_Billiards_g13_c02 11 -Drumming/v_Drumming_g19_c05 26 -CricketBowling/v_CricketBowling_g12_c02 22 -Rowing/v_Rowing_g08_c04 75 -HulaHoop/v_HulaHoop_g17_c04 42 -PullUps/v_PullUps_g15_c02 69 -Mixing/v_Mixing_g15_c04 53 -Hammering/v_Hammering_g24_c07 34 -Drumming/v_Drumming_g21_c02 26 -JumpRope/v_JumpRope_g13_c04 47 -YoYo/v_YoYo_g12_c03 100 -Swing/v_Swing_g10_c02 88 -UnevenBars/v_UnevenBars_g23_c02 95 -VolleyballSpiking/v_VolleyballSpiking_g21_c03 96 -GolfSwing/v_GolfSwing_g20_c07 32 -PlayingSitar/v_PlayingSitar_g17_c07 64 -BasketballDunk/v_BasketballDunk_g12_c02 8 -Nunchucks/v_Nunchucks_g24_c04 55 -Kayaking/v_Kayaking_g24_c04 48 -TrampolineJumping/v_TrampolineJumping_g12_c03 93 -PlayingDhol/v_PlayingDhol_g10_c01 60 -HighJump/v_HighJump_g22_c04 39 -HammerThrow/v_HammerThrow_g18_c04 35 -GolfSwing/v_GolfSwing_g25_c01 32 -CricketShot/v_CricketShot_g22_c05 23 -CricketBowling/v_CricketBowling_g21_c06 22 -HulaHoop/v_HulaHoop_g13_c03 42 -SoccerPenalty/v_SoccerPenalty_g12_c02 84 -Punch/v_Punch_g24_c02 70 -CuttingInKitchen/v_CuttingInKitchen_g24_c02 24 -WallPushups/v_WallPushups_g24_c03 98 -PizzaTossing/v_PizzaTossing_g24_c05 57 -PlayingPiano/v_PlayingPiano_g10_c04 63 -WritingOnBoard/v_WritingOnBoard_g15_c01 99 -Nunchucks/v_Nunchucks_g17_c06 55 -Lunges/v_Lunges_g24_c03 51 -SoccerPenalty/v_SoccerPenalty_g10_c01 84 -HorseRace/v_HorseRace_g20_c03 40 -BasketballDunk/v_BasketballDunk_g09_c05 8 -PlayingFlute/v_PlayingFlute_g11_c03 61 -JugglingBalls/v_JugglingBalls_g16_c02 45 -PommelHorse/v_PommelHorse_g22_c07 68 -SkateBoarding/v_SkateBoarding_g15_c05 79 -Rowing/v_Rowing_g10_c07 75 -HandstandWalking/v_HandstandWalking_g15_c01 37 -WallPushups/v_WallPushups_g20_c01 98 -CuttingInKitchen/v_CuttingInKitchen_g23_c03 24 -UnevenBars/v_UnevenBars_g09_c04 95 -SalsaSpin/v_SalsaSpin_g15_c02 76 -HorseRiding/v_HorseRiding_g23_c02 41 -WalkingWithDog/v_WalkingWithDog_g08_c02 97 -SkyDiving/v_SkyDiving_g10_c03 82 -TaiChi/v_TaiChi_g12_c01 90 -CleanAndJerk/v_CleanAndJerk_g13_c02 20 -CricketShot/v_CricketShot_g14_c05 23 -Skijet/v_Skijet_g18_c01 81 -SkyDiving/v_SkyDiving_g10_c01 82 -SkyDiving/v_SkyDiving_g13_c04 82 -JavelinThrow/v_JavelinThrow_g18_c01 44 -Billiards/v_Billiards_g11_c01 11 -YoYo/v_YoYo_g24_c04 100 -Billiards/v_Billiards_g09_c03 11 -FrisbeeCatch/v_FrisbeeCatch_g23_c04 30 -BasketballDunk/v_BasketballDunk_g16_c06 8 -PlayingDaf/v_PlayingDaf_g12_c01 59 -CliffDiving/v_CliffDiving_g09_c03 21 -HorseRace/v_HorseRace_g13_c02 40 -TennisSwing/v_TennisSwing_g16_c01 91 -CleanAndJerk/v_CleanAndJerk_g19_c01 20 -ThrowDiscus/v_ThrowDiscus_g18_c06 92 -HorseRace/v_HorseRace_g22_c02 40 -FloorGymnastics/v_FloorGymnastics_g19_c02 29 -JumpRope/v_JumpRope_g14_c01 47 -RopeClimbing/v_RopeClimbing_g23_c03 74 -BreastStroke/v_BreastStroke_g08_c04 18 -PlayingCello/v_PlayingCello_g20_c02 58 -PlayingViolin/v_PlayingViolin_g14_c01 66 -HulaHoop/v_HulaHoop_g09_c05 42 -PizzaTossing/v_PizzaTossing_g17_c02 57 -Rafting/v_Rafting_g23_c01 72 -ApplyEyeMakeup/v_ApplyEyeMakeup_g19_c01 0 -PlayingFlute/v_PlayingFlute_g16_c01 61 -BrushingTeeth/v_BrushingTeeth_g19_c04 19 -Nunchucks/v_Nunchucks_g17_c05 55 -FieldHockeyPenalty/v_FieldHockeyPenalty_g16_c04 28 -Surfing/v_Surfing_g09_c01 87 -Haircut/v_Haircut_g19_c04 33 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c01 73 -HandstandPushups/v_HandStandPushups_g21_c06 36 -SumoWrestling/v_SumoWrestling_g12_c01 86 -LongJump/v_LongJump_g09_c03 50 -BlowDryHair/v_BlowDryHair_g19_c04 12 -FloorGymnastics/v_FloorGymnastics_g11_c02 29 -Knitting/v_Knitting_g09_c04 49 -FrontCrawl/v_FrontCrawl_g17_c06 31 -PlayingPiano/v_PlayingPiano_g09_c01 63 -JumpRope/v_JumpRope_g22_c02 47 -Billiards/v_Billiards_g22_c02 11 -Punch/v_Punch_g16_c07 70 -ShavingBeard/v_ShavingBeard_g21_c04 77 -HammerThrow/v_HammerThrow_g11_c02 35 -Billiards/v_Billiards_g20_c04 11 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c03 73 -JavelinThrow/v_JavelinThrow_g14_c02 44 -Archery/v_Archery_g24_c02 2 -BlowingCandles/v_BlowingCandles_g11_c02 13 -Hammering/v_Hammering_g22_c03 34 -FrontCrawl/v_FrontCrawl_g13_c04 31 -YoYo/v_YoYo_g21_c03 100 -MoppingFloor/v_MoppingFloor_g25_c01 54 -PoleVault/v_PoleVault_g16_c01 67 -BlowingCandles/v_BlowingCandles_g10_c03 13 -ApplyLipstick/v_ApplyLipstick_g11_c04 1 -StillRings/v_StillRings_g10_c04 85 -CricketShot/v_CricketShot_g24_c03 23 -PommelHorse/v_PommelHorse_g16_c01 68 -TableTennisShot/v_TableTennisShot_g22_c02 89 -ThrowDiscus/v_ThrowDiscus_g22_c03 92 -MilitaryParade/v_MilitaryParade_g17_c03 52 -Mixing/v_Mixing_g21_c03 53 -PizzaTossing/v_PizzaTossing_g11_c04 57 -Diving/v_Diving_g16_c02 25 -SoccerPenalty/v_SoccerPenalty_g16_c02 84 -Haircut/v_Haircut_g22_c06 33 -YoYo/v_YoYo_g11_c03 100 -Archery/v_Archery_g17_c01 2 -PlayingDhol/v_PlayingDhol_g10_c07 60 -HighJump/v_HighJump_g14_c03 39 -JavelinThrow/v_JavelinThrow_g15_c06 44 -SoccerJuggling/v_SoccerJuggling_g14_c05 83 -IceDancing/v_IceDancing_g24_c07 43 -Drumming/v_Drumming_g19_c03 26 -Kayaking/v_Kayaking_g10_c03 48 -MilitaryParade/v_MilitaryParade_g25_c06 52 -ApplyLipstick/v_ApplyLipstick_g18_c02 1 -CricketBowling/v_CricketBowling_g09_c05 22 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c06 73 -CricketBowling/v_CricketBowling_g10_c02 22 -CuttingInKitchen/v_CuttingInKitchen_g22_c04 24 -PlayingCello/v_PlayingCello_g24_c07 58 -JavelinThrow/v_JavelinThrow_g11_c04 44 -BoxingSpeedBag/v_BoxingSpeedBag_g08_c03 17 -PlayingGuitar/v_PlayingGuitar_g12_c02 62 -SkateBoarding/v_SkateBoarding_g19_c04 79 -JumpRope/v_JumpRope_g22_c06 47 -RockClimbingIndoor/v_RockClimbingIndoor_g11_c04 73 -PlayingSitar/v_PlayingSitar_g20_c05 64 -WalkingWithDog/v_WalkingWithDog_g23_c04 97 -BalanceBeam/v_BalanceBeam_g16_c04 4 -PlayingDaf/v_PlayingDaf_g21_c02 59 -Surfing/v_Surfing_g19_c01 87 -Surfing/v_Surfing_g08_c05 87 -HandstandPushups/v_HandStandPushups_g10_c03 36 -Billiards/v_Billiards_g11_c07 11 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c06 28 -JumpingJack/v_JumpingJack_g13_c01 46 -PoleVault/v_PoleVault_g09_c04 67 -TennisSwing/v_TennisSwing_g10_c07 91 -Knitting/v_Knitting_g18_c01 49 -BrushingTeeth/v_BrushingTeeth_g18_c02 19 -Shotput/v_Shotput_g19_c02 78 -PoleVault/v_PoleVault_g08_c01 67 -Nunchucks/v_Nunchucks_g10_c01 55 -Bowling/v_Bowling_g22_c07 15 -PlayingFlute/v_PlayingFlute_g22_c02 61 -JumpRope/v_JumpRope_g24_c06 47 -Billiards/v_Billiards_g19_c07 11 -Punch/v_Punch_g21_c07 70 -HammerThrow/v_HammerThrow_g19_c01 35 -IceDancing/v_IceDancing_g08_c06 43 -ThrowDiscus/v_ThrowDiscus_g08_c04 92 -Knitting/v_Knitting_g09_c01 49 -PlayingGuitar/v_PlayingGuitar_g13_c03 62 -BlowDryHair/v_BlowDryHair_g10_c01 12 -PlayingSitar/v_PlayingSitar_g11_c01 64 -PlayingViolin/v_PlayingViolin_g14_c02 66 -PoleVault/v_PoleVault_g22_c03 67 -Fencing/v_Fencing_g08_c03 27 -Diving/v_Diving_g14_c01 25 -Diving/v_Diving_g11_c03 25 -BabyCrawling/v_BabyCrawling_g25_c02 3 -PommelHorse/v_PommelHorse_g19_c06 68 -Basketball/v_Basketball_g12_c01 7 -JumpingJack/v_JumpingJack_g21_c02 46 -Lunges/v_Lunges_g11_c05 51 -VolleyballSpiking/v_VolleyballSpiking_g11_c03 96 -PoleVault/v_PoleVault_g17_c01 67 -StillRings/v_StillRings_g25_c07 85 -Diving/v_Diving_g20_c04 25 -PlayingPiano/v_PlayingPiano_g19_c02 63 -FrontCrawl/v_FrontCrawl_g08_c05 31 -HorseRiding/v_HorseRiding_g22_c05 41 -TaiChi/v_TaiChi_g16_c01 90 -UnevenBars/v_UnevenBars_g15_c02 95 -BlowingCandles/v_BlowingCandles_g20_c01 13 -Nunchucks/v_Nunchucks_g21_c05 55 -CricketBowling/v_CricketBowling_g21_c03 22 -Punch/v_Punch_g22_c07 70 -BandMarching/v_BandMarching_g17_c01 5 -BodyWeightSquats/v_BodyWeightSquats_g22_c02 14 -HeadMassage/v_HeadMassage_g14_c03 38 -SkateBoarding/v_SkateBoarding_g21_c01 79 -Lunges/v_Lunges_g14_c07 51 -PlayingViolin/v_PlayingViolin_g23_c01 66 -TennisSwing/v_TennisSwing_g14_c04 91 -Drumming/v_Drumming_g14_c06 26 -BodyWeightSquats/v_BodyWeightSquats_g16_c02 14 -GolfSwing/v_GolfSwing_g10_c03 32 -Surfing/v_Surfing_g21_c03 87 -IceDancing/v_IceDancing_g09_c03 43 -MoppingFloor/v_MoppingFloor_g17_c02 54 -PlayingPiano/v_PlayingPiano_g12_c03 63 -HandstandWalking/v_HandstandWalking_g24_c02 37 -BodyWeightSquats/v_BodyWeightSquats_g10_c01 14 -PlayingDhol/v_PlayingDhol_g17_c07 60 -ApplyLipstick/v_ApplyLipstick_g16_c02 1 -Archery/v_Archery_g09_c01 2 -PommelHorse/v_PommelHorse_g16_c04 68 -LongJump/v_LongJump_g20_c03 50 -CricketBowling/v_CricketBowling_g22_c03 22 -Basketball/v_Basketball_g09_c04 7 -Haircut/v_Haircut_g22_c04 33 -PullUps/v_PullUps_g17_c03 69 -HeadMassage/v_HeadMassage_g10_c01 38 -JumpRope/v_JumpRope_g19_c04 47 -Skiing/v_Skiing_g24_c01 80 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c04 0 -TennisSwing/v_TennisSwing_g19_c03 91 -Punch/v_Punch_g25_c07 70 -GolfSwing/v_GolfSwing_g23_c02 32 -BalanceBeam/v_BalanceBeam_g09_c02 4 -SoccerPenalty/v_SoccerPenalty_g22_c05 84 -PlayingDaf/v_PlayingDaf_g19_c05 59 -PlayingTabla/v_PlayingTabla_g25_c01 65 -Punch/v_Punch_g14_c01 70 -JumpRope/v_JumpRope_g09_c03 47 -StillRings/v_StillRings_g23_c04 85 -SkateBoarding/v_SkateBoarding_g24_c04 79 -PullUps/v_PullUps_g12_c04 69 -SoccerJuggling/v_SoccerJuggling_g16_c04 83 -CleanAndJerk/v_CleanAndJerk_g14_c05 20 -HorseRiding/v_HorseRiding_g14_c05 41 -PlayingDaf/v_PlayingDaf_g16_c01 59 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c04 16 -Billiards/v_Billiards_g13_c03 11 -PlayingTabla/v_PlayingTabla_g13_c01 65 -ApplyEyeMakeup/v_ApplyEyeMakeup_g17_c02 0 -JumpRope/v_JumpRope_g18_c03 47 -PlayingDhol/v_PlayingDhol_g14_c04 60 -SoccerJuggling/v_SoccerJuggling_g14_c03 83 -Rowing/v_Rowing_g15_c03 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g19_c03 0 -ShavingBeard/v_ShavingBeard_g24_c01 77 -TrampolineJumping/v_TrampolineJumping_g11_c03 93 -BalanceBeam/v_BalanceBeam_g15_c02 4 -Skijet/v_Skijet_g22_c02 81 -JumpRope/v_JumpRope_g09_c02 47 -GolfSwing/v_GolfSwing_g17_c01 32 -ShavingBeard/v_ShavingBeard_g18_c07 77 -CleanAndJerk/v_CleanAndJerk_g20_c01 20 -FrontCrawl/v_FrontCrawl_g21_c01 31 -BenchPress/v_BenchPress_g17_c07 9 -IceDancing/v_IceDancing_g20_c03 43 -TrampolineJumping/v_TrampolineJumping_g16_c02 93 -PlayingDhol/v_PlayingDhol_g23_c04 60 -WritingOnBoard/v_WritingOnBoard_g09_c04 99 -SalsaSpin/v_SalsaSpin_g23_c04 76 -PoleVault/v_PoleVault_g10_c04 67 -BrushingTeeth/v_BrushingTeeth_g20_c01 19 -StillRings/v_StillRings_g22_c02 85 -Hammering/v_Hammering_g18_c04 34 -TrampolineJumping/v_TrampolineJumping_g14_c01 93 -CricketBowling/v_CricketBowling_g15_c05 22 -HandstandWalking/v_HandstandWalking_g24_c05 37 -Diving/v_Diving_g22_c06 25 -PlayingCello/v_PlayingCello_g15_c02 58 -HammerThrow/v_HammerThrow_g08_c06 35 -CricketShot/v_CricketShot_g24_c07 23 -RockClimbingIndoor/v_RockClimbingIndoor_g18_c04 73 -ApplyLipstick/v_ApplyLipstick_g17_c01 1 -PlayingCello/v_PlayingCello_g20_c03 58 -JavelinThrow/v_JavelinThrow_g16_c06 44 -Lunges/v_Lunges_g23_c05 51 -BlowDryHair/v_BlowDryHair_g14_c02 12 -Skijet/v_Skijet_g11_c03 81 -TrampolineJumping/v_TrampolineJumping_g21_c02 93 -Basketball/v_Basketball_g11_c04 7 -ParallelBars/v_ParallelBars_g12_c02 56 -IceDancing/v_IceDancing_g21_c06 43 -CricketBowling/v_CricketBowling_g09_c06 22 -WalkingWithDog/v_WalkingWithDog_g20_c01 97 -CliffDiving/v_CliffDiving_g14_c06 21 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c07 16 -BaseballPitch/v_BaseballPitch_g25_c01 6 -Lunges/v_Lunges_g17_c02 51 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c01 17 -Billiards/v_Billiards_g11_c02 11 -Mixing/v_Mixing_g25_c04 53 -GolfSwing/v_GolfSwing_g22_c02 32 -GolfSwing/v_GolfSwing_g21_c05 32 -PlayingDhol/v_PlayingDhol_g21_c05 60 -BaseballPitch/v_BaseballPitch_g13_c07 6 -HandstandPushups/v_HandStandPushups_g25_c07 36 -Billiards/v_Billiards_g11_c03 11 -TennisSwing/v_TennisSwing_g23_c03 91 -Knitting/v_Knitting_g11_c04 49 -Skijet/v_Skijet_g16_c01 81 -Rowing/v_Rowing_g20_c01 75 -WritingOnBoard/v_WritingOnBoard_g10_c07 99 -HulaHoop/v_HulaHoop_g09_c02 42 -IceDancing/v_IceDancing_g22_c03 43 -BandMarching/v_BandMarching_g21_c01 5 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c06 16 -Rowing/v_Rowing_g20_c04 75 -SkateBoarding/v_SkateBoarding_g12_c01 79 -SkyDiving/v_SkyDiving_g14_c01 82 -Diving/v_Diving_g22_c03 25 -CuttingInKitchen/v_CuttingInKitchen_g18_c02 24 -Rafting/v_Rafting_g24_c04 72 -MoppingFloor/v_MoppingFloor_g15_c01 54 -ThrowDiscus/v_ThrowDiscus_g18_c02 92 -PlayingCello/v_PlayingCello_g18_c05 58 -TrampolineJumping/v_TrampolineJumping_g13_c01 93 -HighJump/v_HighJump_g18_c01 39 -TaiChi/v_TaiChi_g10_c04 90 -Nunchucks/v_Nunchucks_g11_c01 55 -Biking/v_Biking_g15_c03 10 -BasketballDunk/v_BasketballDunk_g08_c05 8 -ShavingBeard/v_ShavingBeard_g14_c01 77 -BenchPress/v_BenchPress_g20_c04 9 -HorseRiding/v_HorseRiding_g22_c06 41 -TennisSwing/v_TennisSwing_g09_c05 91 -SoccerJuggling/v_SoccerJuggling_g18_c06 83 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c05 16 -PizzaTossing/v_PizzaTossing_g25_c05 57 -Fencing/v_Fencing_g18_c02 27 -TableTennisShot/v_TableTennisShot_g23_c01 89 -Shotput/v_Shotput_g16_c07 78 -MilitaryParade/v_MilitaryParade_g09_c07 52 -HammerThrow/v_HammerThrow_g09_c05 35 -FloorGymnastics/v_FloorGymnastics_g18_c07 29 -PoleVault/v_PoleVault_g23_c03 67 -HorseRace/v_HorseRace_g11_c06 40 -IceDancing/v_IceDancing_g24_c01 43 -WritingOnBoard/v_WritingOnBoard_g15_c03 99 -BalanceBeam/v_BalanceBeam_g18_c03 4 -WallPushups/v_WallPushups_g14_c04 98 -FrontCrawl/v_FrontCrawl_g10_c03 31 -ApplyEyeMakeup/v_ApplyEyeMakeup_g18_c02 0 -RopeClimbing/v_RopeClimbing_g21_c02 74 -BlowingCandles/v_BlowingCandles_g18_c01 13 -HighJump/v_HighJump_g16_c05 39 -MilitaryParade/v_MilitaryParade_g09_c04 52 -Nunchucks/v_Nunchucks_g14_c02 55 -VolleyballSpiking/v_VolleyballSpiking_g13_c03 96 -TaiChi/v_TaiChi_g13_c03 90 -BaseballPitch/v_BaseballPitch_g13_c01 6 -PlayingDaf/v_PlayingDaf_g14_c06 59 -SkyDiving/v_SkyDiving_g21_c01 82 -PlayingCello/v_PlayingCello_g17_c03 58 -HandstandPushups/v_HandStandPushups_g11_c03 36 -BreastStroke/v_BreastStroke_g08_c02 18 -HulaHoop/v_HulaHoop_g09_c06 42 -PlayingFlute/v_PlayingFlute_g17_c03 61 -Knitting/v_Knitting_g22_c02 49 -Lunges/v_Lunges_g17_c04 51 -Drumming/v_Drumming_g15_c03 26 -PizzaTossing/v_PizzaTossing_g22_c02 57 -Skiing/v_Skiing_g13_c03 80 -HulaHoop/v_HulaHoop_g23_c06 42 -JumpRope/v_JumpRope_g18_c05 47 -PlayingDhol/v_PlayingDhol_g12_c06 60 -Bowling/v_Bowling_g09_c03 15 -PlayingSitar/v_PlayingSitar_g23_c02 64 -SoccerJuggling/v_SoccerJuggling_g22_c04 83 -BalanceBeam/v_BalanceBeam_g12_c02 4 -ApplyLipstick/v_ApplyLipstick_g10_c04 1 -PushUps/v_PushUps_g16_c04 71 -HorseRace/v_HorseRace_g19_c03 40 -SoccerJuggling/v_SoccerJuggling_g12_c01 83 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c04 16 -Rowing/v_Rowing_g15_c01 75 -PizzaTossing/v_PizzaTossing_g20_c03 57 -BasketballDunk/v_BasketballDunk_g11_c03 8 -RopeClimbing/v_RopeClimbing_g25_c01 74 -PlayingViolin/v_PlayingViolin_g21_c03 66 -ThrowDiscus/v_ThrowDiscus_g08_c02 92 -Bowling/v_Bowling_g12_c02 15 -Hammering/v_Hammering_g24_c01 34 -SkateBoarding/v_SkateBoarding_g16_c01 79 -TennisSwing/v_TennisSwing_g08_c01 91 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c06 73 -BalanceBeam/v_BalanceBeam_g23_c04 4 -BoxingSpeedBag/v_BoxingSpeedBag_g16_c03 17 -Skijet/v_Skijet_g24_c03 81 -UnevenBars/v_UnevenBars_g17_c02 95 -JavelinThrow/v_JavelinThrow_g17_c05 44 -BodyWeightSquats/v_BodyWeightSquats_g16_c04 14 -PlayingGuitar/v_PlayingGuitar_g18_c04 62 -Rowing/v_Rowing_g13_c01 75 -ShavingBeard/v_ShavingBeard_g24_c04 77 -Kayaking/v_Kayaking_g09_c03 48 -BenchPress/v_BenchPress_g09_c01 9 -HeadMassage/v_HeadMassage_g17_c07 38 -Kayaking/v_Kayaking_g14_c02 48 -SkyDiving/v_SkyDiving_g18_c02 82 -JugglingBalls/v_JugglingBalls_g16_c04 45 -PlayingCello/v_PlayingCello_g19_c07 58 -CuttingInKitchen/v_CuttingInKitchen_g18_c01 24 -WallPushups/v_WallPushups_g21_c03 98 -HeadMassage/v_HeadMassage_g08_c07 38 -BabyCrawling/v_BabyCrawling_g15_c04 3 -HulaHoop/v_HulaHoop_g21_c03 42 -BalanceBeam/v_BalanceBeam_g21_c02 4 -HulaHoop/v_HulaHoop_g12_c05 42 -Basketball/v_Basketball_g12_c05 7 -BasketballDunk/v_BasketballDunk_g17_c03 8 -WallPushups/v_WallPushups_g11_c03 98 -Shotput/v_Shotput_g20_c02 78 -Skijet/v_Skijet_g21_c02 81 -BodyWeightSquats/v_BodyWeightSquats_g16_c01 14 -UnevenBars/v_UnevenBars_g14_c02 95 -Skiing/v_Skiing_g10_c01 80 -SoccerPenalty/v_SoccerPenalty_g10_c02 84 -ParallelBars/v_ParallelBars_g09_c02 56 -SalsaSpin/v_SalsaSpin_g09_c03 76 -PommelHorse/v_PommelHorse_g12_c02 68 -Archery/v_Archery_g09_c06 2 -PoleVault/v_PoleVault_g19_c06 67 -ThrowDiscus/v_ThrowDiscus_g13_c01 92 -Typing/v_Typing_g23_c04 94 -GolfSwing/v_GolfSwing_g24_c01 32 -SkateBoarding/v_SkateBoarding_g18_c03 79 -PommelHorse/v_PommelHorse_g10_c02 68 -PlayingGuitar/v_PlayingGuitar_g21_c02 62 -ThrowDiscus/v_ThrowDiscus_g18_c05 92 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c02 16 -PlayingDaf/v_PlayingDaf_g08_c06 59 -CleanAndJerk/v_CleanAndJerk_g12_c02 20 -Billiards/v_Billiards_g11_c04 11 -BlowingCandles/v_BlowingCandles_g20_c03 13 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c02 16 -ApplyLipstick/v_ApplyLipstick_g21_c05 1 -Skiing/v_Skiing_g10_c04 80 -BalanceBeam/v_BalanceBeam_g08_c02 4 -Typing/v_Typing_g12_c05 94 -WalkingWithDog/v_WalkingWithDog_g13_c03 97 -CliffDiving/v_CliffDiving_g11_c01 21 -JavelinThrow/v_JavelinThrow_g14_c04 44 -SoccerPenalty/v_SoccerPenalty_g12_c07 84 -Archery/v_Archery_g13_c02 2 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c03 0 -Biking/v_Biking_g16_c03 10 -Typing/v_Typing_g15_c04 94 -Mixing/v_Mixing_g11_c06 53 -BlowingCandles/v_BlowingCandles_g25_c04 13 -SoccerJuggling/v_SoccerJuggling_g25_c03 83 -WritingOnBoard/v_WritingOnBoard_g23_c03 99 -PushUps/v_PushUps_g24_c02 71 -TableTennisShot/v_TableTennisShot_g14_c03 89 -BaseballPitch/v_BaseballPitch_g21_c01 6 -Skijet/v_Skijet_g11_c02 81 -SkateBoarding/v_SkateBoarding_g12_c02 79 -Swing/v_Swing_g22_c01 88 -Knitting/v_Knitting_g17_c04 49 -Kayaking/v_Kayaking_g18_c02 48 -HulaHoop/v_HulaHoop_g20_c02 42 -IceDancing/v_IceDancing_g12_c07 43 -Punch/v_Punch_g21_c06 70 -Lunges/v_Lunges_g18_c03 51 -CricketShot/v_CricketShot_g17_c02 23 -HulaHoop/v_HulaHoop_g25_c02 42 -Mixing/v_Mixing_g12_c07 53 -BlowDryHair/v_BlowDryHair_g08_c02 12 -ThrowDiscus/v_ThrowDiscus_g15_c04 92 -HulaHoop/v_HulaHoop_g20_c04 42 -SalsaSpin/v_SalsaSpin_g24_c05 76 -PlayingGuitar/v_PlayingGuitar_g12_c06 62 -JugglingBalls/v_JugglingBalls_g12_c02 45 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c02 16 -Punch/v_Punch_g16_c02 70 -CricketShot/v_CricketShot_g09_c01 23 -Bowling/v_Bowling_g10_c05 15 -SalsaSpin/v_SalsaSpin_g09_c01 76 -SalsaSpin/v_SalsaSpin_g08_c04 76 -HeadMassage/v_HeadMassage_g14_c07 38 -ThrowDiscus/v_ThrowDiscus_g09_c05 92 -HorseRiding/v_HorseRiding_g19_c06 41 -HulaHoop/v_HulaHoop_g12_c06 42 -TennisSwing/v_TennisSwing_g25_c05 91 -ParallelBars/v_ParallelBars_g11_c04 56 -Fencing/v_Fencing_g19_c04 27 -MilitaryParade/v_MilitaryParade_g17_c05 52 -Drumming/v_Drumming_g25_c01 26 -CleanAndJerk/v_CleanAndJerk_g20_c02 20 -PommelHorse/v_PommelHorse_g18_c03 68 -SkyDiving/v_SkyDiving_g22_c04 82 -SkyDiving/v_SkyDiving_g15_c03 82 -BlowDryHair/v_BlowDryHair_g10_c03 12 -TrampolineJumping/v_TrampolineJumping_g10_c01 93 -Archery/v_Archery_g11_c07 2 -TrampolineJumping/v_TrampolineJumping_g08_c04 93 -HandstandWalking/v_HandstandWalking_g18_c01 37 -TennisSwing/v_TennisSwing_g12_c01 91 -PommelHorse/v_PommelHorse_g17_c02 68 -JugglingBalls/v_JugglingBalls_g21_c04 45 -CliffDiving/v_CliffDiving_g19_c06 21 -Archery/v_Archery_g13_c06 2 -BrushingTeeth/v_BrushingTeeth_g18_c07 19 -Skijet/v_Skijet_g15_c03 81 -TableTennisShot/v_TableTennisShot_g18_c01 89 -Mixing/v_Mixing_g16_c04 53 -PullUps/v_PullUps_g18_c01 69 -BenchPress/v_BenchPress_g10_c04 9 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c02 17 -FrontCrawl/v_FrontCrawl_g19_c04 31 -WritingOnBoard/v_WritingOnBoard_g11_c04 99 -GolfSwing/v_GolfSwing_g15_c04 32 -PlayingGuitar/v_PlayingGuitar_g15_c07 62 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c02 28 -CliffDiving/v_CliffDiving_g20_c06 21 -JugglingBalls/v_JugglingBalls_g25_c01 45 -FrontCrawl/v_FrontCrawl_g19_c02 31 -VolleyballSpiking/v_VolleyballSpiking_g08_c01 96 -Mixing/v_Mixing_g10_c05 53 -ThrowDiscus/v_ThrowDiscus_g18_c07 92 -HulaHoop/v_HulaHoop_g23_c04 42 -PoleVault/v_PoleVault_g09_c01 67 -Archery/v_Archery_g09_c04 2 -FrisbeeCatch/v_FrisbeeCatch_g10_c05 30 -ParallelBars/v_ParallelBars_g24_c04 56 -BlowDryHair/v_BlowDryHair_g24_c04 12 -PlayingViolin/v_PlayingViolin_g08_c03 66 -PlayingFlute/v_PlayingFlute_g21_c04 61 -HeadMassage/v_HeadMassage_g12_c06 38 -ApplyLipstick/v_ApplyLipstick_g15_c03 1 -CricketShot/v_CricketShot_g15_c02 23 -BreastStroke/v_BreastStroke_g21_c03 18 -HulaHoop/v_HulaHoop_g16_c01 42 -Swing/v_Swing_g20_c05 88 -Knitting/v_Knitting_g10_c03 49 -PizzaTossing/v_PizzaTossing_g25_c01 57 -PlayingViolin/v_PlayingViolin_g13_c03 66 -PushUps/v_PushUps_g10_c04 71 -LongJump/v_LongJump_g11_c06 50 -JavelinThrow/v_JavelinThrow_g15_c01 44 -SkateBoarding/v_SkateBoarding_g24_c01 79 -TennisSwing/v_TennisSwing_g25_c04 91 -HorseRiding/v_HorseRiding_g23_c05 41 -YoYo/v_YoYo_g19_c02 100 -Skijet/v_Skijet_g10_c01 81 -PlayingSitar/v_PlayingSitar_g12_c03 64 -CricketBowling/v_CricketBowling_g11_c04 22 -BenchPress/v_BenchPress_g20_c02 9 -FrisbeeCatch/v_FrisbeeCatch_g14_c02 30 -LongJump/v_LongJump_g20_c04 50 -RopeClimbing/v_RopeClimbing_g19_c02 74 -Rowing/v_Rowing_g13_c06 75 -ShavingBeard/v_ShavingBeard_g11_c03 77 -ApplyLipstick/v_ApplyLipstick_g16_c05 1 -BabyCrawling/v_BabyCrawling_g23_c01 3 -PlayingGuitar/v_PlayingGuitar_g20_c06 62 -HandstandPushups/v_HandStandPushups_g24_c02 36 -Swing/v_Swing_g16_c04 88 -Swing/v_Swing_g18_c02 88 -Lunges/v_Lunges_g15_c04 51 -BenchPress/v_BenchPress_g24_c06 9 -PlayingSitar/v_PlayingSitar_g15_c03 64 -FrontCrawl/v_FrontCrawl_g11_c07 31 -BandMarching/v_BandMarching_g08_c07 5 -Mixing/v_Mixing_g15_c06 53 -Rafting/v_Rafting_g12_c01 72 -FloorGymnastics/v_FloorGymnastics_g17_c05 29 -SoccerPenalty/v_SoccerPenalty_g08_c02 84 -CliffDiving/v_CliffDiving_g20_c04 21 -PommelHorse/v_PommelHorse_g22_c03 68 -BalanceBeam/v_BalanceBeam_g24_c02 4 -RopeClimbing/v_RopeClimbing_g17_c03 74 -SumoWrestling/v_SumoWrestling_g08_c06 86 -CleanAndJerk/v_CleanAndJerk_g11_c03 20 -ParallelBars/v_ParallelBars_g08_c03 56 -PlayingDhol/v_PlayingDhol_g11_c01 60 -Typing/v_Typing_g20_c04 94 -ApplyEyeMakeup/v_ApplyEyeMakeup_g17_c04 0 -Shotput/v_Shotput_g12_c03 78 -Basketball/v_Basketball_g22_c04 7 -UnevenBars/v_UnevenBars_g23_c03 95 -Billiards/v_Billiards_g17_c04 11 -Skiing/v_Skiing_g10_c03 80 -YoYo/v_YoYo_g21_c04 100 -Drumming/v_Drumming_g24_c05 26 -BenchPress/v_BenchPress_g14_c01 9 -SoccerPenalty/v_SoccerPenalty_g18_c05 84 -ShavingBeard/v_ShavingBeard_g09_c07 77 -Hammering/v_Hammering_g15_c02 34 -TennisSwing/v_TennisSwing_g22_c06 91 -PommelHorse/v_PommelHorse_g22_c05 68 -Haircut/v_Haircut_g16_c04 33 -Archery/v_Archery_g13_c03 2 -BalanceBeam/v_BalanceBeam_g13_c05 4 -TrampolineJumping/v_TrampolineJumping_g21_c04 93 -PushUps/v_PushUps_g08_c02 71 -CricketShot/v_CricketShot_g16_c05 23 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c05 16 -JugglingBalls/v_JugglingBalls_g09_c05 45 -SkateBoarding/v_SkateBoarding_g10_c04 79 -BaseballPitch/v_BaseballPitch_g13_c06 6 -Typing/v_Typing_g23_c02 94 -VolleyballSpiking/v_VolleyballSpiking_g18_c04 96 -FieldHockeyPenalty/v_FieldHockeyPenalty_g18_c04 28 -CliffDiving/v_CliffDiving_g22_c05 21 -JavelinThrow/v_JavelinThrow_g14_c03 44 -Knitting/v_Knitting_g20_c01 49 -CuttingInKitchen/v_CuttingInKitchen_g15_c01 24 -Kayaking/v_Kayaking_g17_c01 48 -Rowing/v_Rowing_g10_c03 75 -TrampolineJumping/v_TrampolineJumping_g09_c06 93 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c05 17 -Basketball/v_Basketball_g16_c04 7 -WalkingWithDog/v_WalkingWithDog_g11_c02 97 -PoleVault/v_PoleVault_g14_c05 67 -PlayingGuitar/v_PlayingGuitar_g08_c01 62 -TennisSwing/v_TennisSwing_g17_c01 91 -BalanceBeam/v_BalanceBeam_g10_c04 4 -HandstandPushups/v_HandStandPushups_g16_c01 36 -Punch/v_Punch_g23_c04 70 -PlayingDhol/v_PlayingDhol_g22_c02 60 -WallPushups/v_WallPushups_g23_c02 98 -SoccerPenalty/v_SoccerPenalty_g11_c01 84 -Swing/v_Swing_g19_c03 88 -CuttingInKitchen/v_CuttingInKitchen_g10_c06 24 -HorseRiding/v_HorseRiding_g19_c01 41 -Knitting/v_Knitting_g24_c02 49 -PlayingViolin/v_PlayingViolin_g25_c02 66 -PlayingTabla/v_PlayingTabla_g18_c02 65 -PlayingFlute/v_PlayingFlute_g14_c03 61 -SkateBoarding/v_SkateBoarding_g21_c04 79 -FloorGymnastics/v_FloorGymnastics_g08_c03 29 -ShavingBeard/v_ShavingBeard_g11_c04 77 -ApplyLipstick/v_ApplyLipstick_g10_c01 1 -Typing/v_Typing_g08_c07 94 -BoxingSpeedBag/v_BoxingSpeedBag_g18_c03 17 -BrushingTeeth/v_BrushingTeeth_g17_c03 19 -WalkingWithDog/v_WalkingWithDog_g14_c04 97 -Kayaking/v_Kayaking_g22_c07 48 -IceDancing/v_IceDancing_g10_c05 43 -Diving/v_Diving_g24_c04 25 -PoleVault/v_PoleVault_g08_c02 67 -ApplyLipstick/v_ApplyLipstick_g12_c02 1 -Kayaking/v_Kayaking_g21_c07 48 -BlowDryHair/v_BlowDryHair_g20_c03 12 -PlayingCello/v_PlayingCello_g18_c07 58 -WallPushups/v_WallPushups_g10_c04 98 -BasketballDunk/v_BasketballDunk_g11_c04 8 -JavelinThrow/v_JavelinThrow_g21_c02 44 -PlayingTabla/v_PlayingTabla_g21_c04 65 -TaiChi/v_TaiChi_g15_c01 90 -Skiing/v_Skiing_g09_c02 80 -PlayingPiano/v_PlayingPiano_g18_c04 63 -CricketBowling/v_CricketBowling_g09_c03 22 -SkateBoarding/v_SkateBoarding_g10_c07 79 -PlayingFlute/v_PlayingFlute_g17_c01 61 -WalkingWithDog/v_WalkingWithDog_g21_c02 97 -BreastStroke/v_BreastStroke_g13_c01 18 -MoppingFloor/v_MoppingFloor_g13_c04 54 -FrontCrawl/v_FrontCrawl_g09_c02 31 -PlayingCello/v_PlayingCello_g24_c06 58 -WalkingWithDog/v_WalkingWithDog_g17_c05 97 -Swing/v_Swing_g13_c04 88 -BlowDryHair/v_BlowDryHair_g17_c01 12 -Billiards/v_Billiards_g12_c07 11 -PlayingViolin/v_PlayingViolin_g18_c02 66 -PommelHorse/v_PommelHorse_g19_c02 68 -StillRings/v_StillRings_g17_c04 85 -Archery/v_Archery_g18_c01 2 -PommelHorse/v_PommelHorse_g25_c04 68 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c03 28 -SoccerPenalty/v_SoccerPenalty_g21_c02 84 -TennisSwing/v_TennisSwing_g18_c01 91 -BlowDryHair/v_BlowDryHair_g11_c01 12 -VolleyballSpiking/v_VolleyballSpiking_g19_c04 96 -HorseRiding/v_HorseRiding_g18_c02 41 -Basketball/v_Basketball_g24_c02 7 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c02 73 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c05 17 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c02 73 -BrushingTeeth/v_BrushingTeeth_g24_c06 19 -Kayaking/v_Kayaking_g22_c02 48 -PlayingFlute/v_PlayingFlute_g13_c05 61 -HorseRiding/v_HorseRiding_g08_c02 41 -PlayingCello/v_PlayingCello_g15_c07 58 -RopeClimbing/v_RopeClimbing_g17_c05 74 -HandstandWalking/v_HandstandWalking_g16_c01 37 -Kayaking/v_Kayaking_g15_c05 48 -LongJump/v_LongJump_g21_c04 50 -Shotput/v_Shotput_g16_c05 78 -ShavingBeard/v_ShavingBeard_g17_c02 77 -Knitting/v_Knitting_g14_c04 49 -VolleyballSpiking/v_VolleyballSpiking_g15_c04 96 -SumoWrestling/v_SumoWrestling_g24_c03 86 -SoccerPenalty/v_SoccerPenalty_g08_c06 84 -SumoWrestling/v_SumoWrestling_g25_c03 86 -CleanAndJerk/v_CleanAndJerk_g23_c03 20 -HeadMassage/v_HeadMassage_g23_c04 38 -PlayingDaf/v_PlayingDaf_g14_c02 59 -FloorGymnastics/v_FloorGymnastics_g23_c03 29 -Skiing/v_Skiing_g17_c04 80 -BreastStroke/v_BreastStroke_g23_c04 18 -Surfing/v_Surfing_g25_c04 87 -BasketballDunk/v_BasketballDunk_g18_c05 8 -Archery/v_Archery_g11_c03 2 -ApplyLipstick/v_ApplyLipstick_g17_c02 1 -BodyWeightSquats/v_BodyWeightSquats_g21_c03 14 -TennisSwing/v_TennisSwing_g10_c04 91 -HeadMassage/v_HeadMassage_g13_c01 38 -BoxingSpeedBag/v_BoxingSpeedBag_g22_c04 17 -SkateBoarding/v_SkateBoarding_g19_c01 79 -JumpRope/v_JumpRope_g18_c01 47 -CleanAndJerk/v_CleanAndJerk_g16_c02 20 -Haircut/v_Haircut_g12_c02 33 -JavelinThrow/v_JavelinThrow_g20_c01 44 -Bowling/v_Bowling_g23_c05 15 -PoleVault/v_PoleVault_g24_c07 67 -Swing/v_Swing_g18_c03 88 -TableTennisShot/v_TableTennisShot_g18_c03 89 -StillRings/v_StillRings_g14_c04 85 -PlayingCello/v_PlayingCello_g10_c06 58 -SoccerJuggling/v_SoccerJuggling_g16_c07 83 -RopeClimbing/v_RopeClimbing_g25_c04 74 -SoccerJuggling/v_SoccerJuggling_g16_c01 83 -MilitaryParade/v_MilitaryParade_g12_c03 52 -BlowDryHair/v_BlowDryHair_g22_c02 12 -VolleyballSpiking/v_VolleyballSpiking_g18_c01 96 -Skiing/v_Skiing_g12_c03 80 -ShavingBeard/v_ShavingBeard_g20_c02 77 -HighJump/v_HighJump_g20_c04 39 -PlayingSitar/v_PlayingSitar_g21_c02 64 -CuttingInKitchen/v_CuttingInKitchen_g12_c02 24 -CliffDiving/v_CliffDiving_g12_c03 21 -FrontCrawl/v_FrontCrawl_g17_c05 31 -ShavingBeard/v_ShavingBeard_g14_c02 77 -TaiChi/v_TaiChi_g25_c02 90 -Haircut/v_Haircut_g08_c03 33 -TennisSwing/v_TennisSwing_g09_c04 91 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c03 0 -BalanceBeam/v_BalanceBeam_g19_c03 4 -Hammering/v_Hammering_g25_c03 34 -SkyDiving/v_SkyDiving_g20_c01 82 -SkyDiving/v_SkyDiving_g13_c02 82 -IceDancing/v_IceDancing_g22_c07 43 -TennisSwing/v_TennisSwing_g14_c06 91 -Diving/v_Diving_g18_c04 25 -Surfing/v_Surfing_g20_c02 87 -PlayingViolin/v_PlayingViolin_g18_c04 66 -PlayingSitar/v_PlayingSitar_g16_c07 64 -FrontCrawl/v_FrontCrawl_g15_c01 31 -WritingOnBoard/v_WritingOnBoard_g22_c02 99 -WallPushups/v_WallPushups_g18_c03 98 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c04 0 -JugglingBalls/v_JugglingBalls_g19_c02 45 -SumoWrestling/v_SumoWrestling_g23_c02 86 -BabyCrawling/v_BabyCrawling_g08_c02 3 -Basketball/v_Basketball_g22_c01 7 -HorseRace/v_HorseRace_g14_c04 40 -Knitting/v_Knitting_g20_c04 49 -BaseballPitch/v_BaseballPitch_g15_c04 6 -Surfing/v_Surfing_g11_c01 87 -BoxingPunchingBag/v_BoxingPunchingBag_g10_c01 16 -PlayingFlute/v_PlayingFlute_g16_c02 61 -PlayingTabla/v_PlayingTabla_g17_c04 65 -Archery/v_Archery_g16_c05 2 -CuttingInKitchen/v_CuttingInKitchen_g13_c02 24 -ShavingBeard/v_ShavingBeard_g25_c02 77 -PlayingDaf/v_PlayingDaf_g23_c02 59 -Hammering/v_Hammering_g16_c04 34 -GolfSwing/v_GolfSwing_g17_c03 32 -UnevenBars/v_UnevenBars_g24_c04 95 -Kayaking/v_Kayaking_g16_c07 48 -JugglingBalls/v_JugglingBalls_g10_c01 45 -HeadMassage/v_HeadMassage_g25_c07 38 -PoleVault/v_PoleVault_g20_c03 67 -PlayingSitar/v_PlayingSitar_g09_c01 64 -WalkingWithDog/v_WalkingWithDog_g17_c02 97 -PushUps/v_PushUps_g16_c01 71 -PlayingGuitar/v_PlayingGuitar_g21_c05 62 -GolfSwing/v_GolfSwing_g13_c01 32 -ShavingBeard/v_ShavingBeard_g22_c07 77 -BaseballPitch/v_BaseballPitch_g12_c02 6 -Knitting/v_Knitting_g25_c02 49 -ApplyLipstick/v_ApplyLipstick_g22_c01 1 -MilitaryParade/v_MilitaryParade_g20_c03 52 -MoppingFloor/v_MoppingFloor_g08_c04 54 -TableTennisShot/v_TableTennisShot_g20_c01 89 -SoccerJuggling/v_SoccerJuggling_g09_c02 83 -Hammering/v_Hammering_g21_c06 34 -WritingOnBoard/v_WritingOnBoard_g13_c03 99 -BalanceBeam/v_BalanceBeam_g10_c02 4 -Surfing/v_Surfing_g15_c04 87 -SoccerPenalty/v_SoccerPenalty_g14_c03 84 -BabyCrawling/v_BabyCrawling_g14_c03 3 -HeadMassage/v_HeadMassage_g20_c05 38 -BrushingTeeth/v_BrushingTeeth_g14_c02 19 -HighJump/v_HighJump_g18_c04 39 -PlayingFlute/v_PlayingFlute_g19_c06 61 -BoxingPunchingBag/v_BoxingPunchingBag_g13_c04 16 -HandstandWalking/v_HandstandWalking_g08_c03 37 -Rowing/v_Rowing_g21_c05 75 -Mixing/v_Mixing_g08_c05 53 -FrisbeeCatch/v_FrisbeeCatch_g19_c03 30 -Nunchucks/v_Nunchucks_g11_c05 55 -CuttingInKitchen/v_CuttingInKitchen_g15_c03 24 -SoccerPenalty/v_SoccerPenalty_g13_c03 84 -PlayingFlute/v_PlayingFlute_g09_c06 61 -ApplyLipstick/v_ApplyLipstick_g19_c03 1 -FrontCrawl/v_FrontCrawl_g20_c03 31 -PlayingPiano/v_PlayingPiano_g25_c02 63 -Typing/v_Typing_g20_c01 94 -Knitting/v_Knitting_g20_c03 49 -Bowling/v_Bowling_g13_c04 15 -WalkingWithDog/v_WalkingWithDog_g24_c01 97 -LongJump/v_LongJump_g25_c02 50 -SoccerJuggling/v_SoccerJuggling_g24_c01 83 -PlayingDhol/v_PlayingDhol_g15_c02 60 -BlowDryHair/v_BlowDryHair_g09_c04 12 -Mixing/v_Mixing_g21_c02 53 -Skiing/v_Skiing_g18_c04 80 -Haircut/v_Haircut_g12_c04 33 -Basketball/v_Basketball_g14_c03 7 -IceDancing/v_IceDancing_g11_c03 43 -HulaHoop/v_HulaHoop_g20_c05 42 -BandMarching/v_BandMarching_g14_c03 5 -WallPushups/v_WallPushups_g11_c06 98 -FieldHockeyPenalty/v_FieldHockeyPenalty_g08_c03 28 -VolleyballSpiking/v_VolleyballSpiking_g21_c04 96 -Biking/v_Biking_g24_c06 10 -Typing/v_Typing_g25_c01 94 -HandstandWalking/v_HandstandWalking_g21_c01 37 -Lunges/v_Lunges_g09_c04 51 -RopeClimbing/v_RopeClimbing_g12_c02 74 -VolleyballSpiking/v_VolleyballSpiking_g14_c03 96 -JumpRope/v_JumpRope_g08_c05 47 -SkyDiving/v_SkyDiving_g10_c04 82 -PlayingSitar/v_PlayingSitar_g08_c02 64 -Mixing/v_Mixing_g10_c04 53 -GolfSwing/v_GolfSwing_g23_c03 32 -FieldHockeyPenalty/v_FieldHockeyPenalty_g24_c05 28 -Biking/v_Biking_g18_c03 10 -BreastStroke/v_BreastStroke_g16_c01 18 -TableTennisShot/v_TableTennisShot_g16_c06 89 -Hammering/v_Hammering_g10_c04 34 -RopeClimbing/v_RopeClimbing_g08_c04 74 -PlayingSitar/v_PlayingSitar_g16_c01 64 -Billiards/v_Billiards_g10_c03 11 -HorseRiding/v_HorseRiding_g13_c03 41 -PommelHorse/v_PommelHorse_g13_c06 68 -PlayingViolin/v_PlayingViolin_g23_c03 66 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c05 16 -Rowing/v_Rowing_g19_c04 75 -BabyCrawling/v_BabyCrawling_g14_c02 3 -BaseballPitch/v_BaseballPitch_g15_c06 6 -PlayingSitar/v_PlayingSitar_g25_c02 64 -Haircut/v_Haircut_g24_c05 33 -SoccerJuggling/v_SoccerJuggling_g09_c03 83 -GolfSwing/v_GolfSwing_g22_c01 32 -BabyCrawling/v_BabyCrawling_g17_c01 3 -BabyCrawling/v_BabyCrawling_g12_c01 3 -BlowingCandles/v_BlowingCandles_g17_c02 13 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c06 73 -CricketBowling/v_CricketBowling_g11_c05 22 -Skijet/v_Skijet_g16_c02 81 -JumpingJack/v_JumpingJack_g13_c02 46 -IceDancing/v_IceDancing_g23_c04 43 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c01 17 -FloorGymnastics/v_FloorGymnastics_g23_c01 29 -CricketBowling/v_CricketBowling_g22_c05 22 -Punch/v_Punch_g21_c05 70 -Haircut/v_Haircut_g11_c05 33 -Kayaking/v_Kayaking_g11_c06 48 -SumoWrestling/v_SumoWrestling_g13_c05 86 -VolleyballSpiking/v_VolleyballSpiking_g14_c01 96 -PlayingViolin/v_PlayingViolin_g18_c03 66 -BasketballDunk/v_BasketballDunk_g19_c03 8 -BreastStroke/v_BreastStroke_g16_c04 18 -BreastStroke/v_BreastStroke_g17_c04 18 -Punch/v_Punch_g09_c04 70 -TrampolineJumping/v_TrampolineJumping_g23_c03 93 -Knitting/v_Knitting_g11_c02 49 -MilitaryParade/v_MilitaryParade_g11_c03 52 -BodyWeightSquats/v_BodyWeightSquats_g17_c02 14 -BalanceBeam/v_BalanceBeam_g25_c01 4 -CleanAndJerk/v_CleanAndJerk_g08_c01 20 -IceDancing/v_IceDancing_g10_c04 43 -BlowingCandles/v_BlowingCandles_g18_c03 13 -BabyCrawling/v_BabyCrawling_g09_c06 3 -PlayingViolin/v_PlayingViolin_g25_c04 66 -IceDancing/v_IceDancing_g08_c02 43 -Mixing/v_Mixing_g11_c07 53 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c07 17 -Billiards/v_Billiards_g09_c02 11 -CleanAndJerk/v_CleanAndJerk_g13_c03 20 -Surfing/v_Surfing_g08_c06 87 -LongJump/v_LongJump_g12_c06 50 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c02 0 -Rafting/v_Rafting_g16_c01 72 -Mixing/v_Mixing_g24_c04 53 -Biking/v_Biking_g25_c01 10 -Mixing/v_Mixing_g24_c03 53 -WritingOnBoard/v_WritingOnBoard_g22_c07 99 -JumpRope/v_JumpRope_g24_c07 47 -PlayingGuitar/v_PlayingGuitar_g10_c02 62 -PlayingCello/v_PlayingCello_g11_c07 58 -TennisSwing/v_TennisSwing_g11_c05 91 -Haircut/v_Haircut_g22_c01 33 -BaseballPitch/v_BaseballPitch_g23_c03 6 -BenchPress/v_BenchPress_g22_c07 9 -Shotput/v_Shotput_g19_c04 78 -Rafting/v_Rafting_g08_c04 72 -PlayingSitar/v_PlayingSitar_g17_c06 64 -ApplyEyeMakeup/v_ApplyEyeMakeup_g16_c01 0 -ApplyLipstick/v_ApplyLipstick_g20_c03 1 -JugglingBalls/v_JugglingBalls_g24_c01 45 -JumpingJack/v_JumpingJack_g08_c02 46 -HammerThrow/v_HammerThrow_g23_c01 35 -PlayingFlute/v_PlayingFlute_g15_c07 61 -PlayingSitar/v_PlayingSitar_g16_c02 64 -MoppingFloor/v_MoppingFloor_g11_c04 54 -ShavingBeard/v_ShavingBeard_g23_c04 77 -Shotput/v_Shotput_g08_c05 78 -Bowling/v_Bowling_g17_c07 15 -PlayingCello/v_PlayingCello_g12_c07 58 -SalsaSpin/v_SalsaSpin_g14_c01 76 -SumoWrestling/v_SumoWrestling_g08_c01 86 -FrontCrawl/v_FrontCrawl_g10_c01 31 -FrontCrawl/v_FrontCrawl_g23_c01 31 -Skiing/v_Skiing_g23_c02 80 -Mixing/v_Mixing_g12_c01 53 -Nunchucks/v_Nunchucks_g13_c06 55 -PlayingSitar/v_PlayingSitar_g23_c03 64 -PlayingViolin/v_PlayingViolin_g12_c03 66 -JumpRope/v_JumpRope_g18_c02 47 -SoccerJuggling/v_SoccerJuggling_g19_c06 83 -SoccerJuggling/v_SoccerJuggling_g09_c06 83 -PlayingGuitar/v_PlayingGuitar_g08_c03 62 -SalsaSpin/v_SalsaSpin_g17_c01 76 -Rafting/v_Rafting_g17_c04 72 -WritingOnBoard/v_WritingOnBoard_g17_c05 99 -Basketball/v_Basketball_g17_c04 7 -BenchPress/v_BenchPress_g22_c01 9 -MilitaryParade/v_MilitaryParade_g19_c04 52 -ThrowDiscus/v_ThrowDiscus_g14_c02 92 -LongJump/v_LongJump_g18_c03 50 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c05 73 -PizzaTossing/v_PizzaTossing_g09_c03 57 -WalkingWithDog/v_WalkingWithDog_g16_c04 97 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c06 16 -Typing/v_Typing_g08_c05 94 -JugglingBalls/v_JugglingBalls_g24_c02 45 -ParallelBars/v_ParallelBars_g16_c01 56 -IceDancing/v_IceDancing_g14_c06 43 -MoppingFloor/v_MoppingFloor_g16_c03 54 -BandMarching/v_BandMarching_g10_c07 5 -FrisbeeCatch/v_FrisbeeCatch_g20_c01 30 -PlayingDhol/v_PlayingDhol_g22_c05 60 -SoccerPenalty/v_SoccerPenalty_g11_c03 84 -Hammering/v_Hammering_g17_c05 34 -PlayingSitar/v_PlayingSitar_g21_c05 64 -PlayingGuitar/v_PlayingGuitar_g11_c02 62 -UnevenBars/v_UnevenBars_g12_c03 95 -RopeClimbing/v_RopeClimbing_g14_c02 74 -HorseRiding/v_HorseRiding_g12_c06 41 -TableTennisShot/v_TableTennisShot_g23_c03 89 -Billiards/v_Billiards_g08_c01 11 -BoxingSpeedBag/v_BoxingSpeedBag_g21_c03 17 -FrontCrawl/v_FrontCrawl_g22_c02 31 -PlayingGuitar/v_PlayingGuitar_g11_c04 62 -Shotput/v_Shotput_g08_c01 78 -RopeClimbing/v_RopeClimbing_g24_c03 74 -TableTennisShot/v_TableTennisShot_g25_c01 89 -PlayingPiano/v_PlayingPiano_g18_c03 63 -CliffDiving/v_CliffDiving_g19_c01 21 -Rowing/v_Rowing_g08_c02 75 -Bowling/v_Bowling_g09_c06 15 -YoYo/v_YoYo_g24_c03 100 -Skijet/v_Skijet_g09_c03 81 -PlayingDaf/v_PlayingDaf_g25_c05 59 -Hammering/v_Hammering_g10_c06 34 -CuttingInKitchen/v_CuttingInKitchen_g20_c02 24 -WalkingWithDog/v_WalkingWithDog_g13_c02 97 -Rafting/v_Rafting_g22_c02 72 -HammerThrow/v_HammerThrow_g14_c02 35 -JumpingJack/v_JumpingJack_g19_c04 46 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c07 16 -ParallelBars/v_ParallelBars_g20_c02 56 -PizzaTossing/v_PizzaTossing_g23_c05 57 -Rowing/v_Rowing_g23_c04 75 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c01 0 -Drumming/v_Drumming_g12_c04 26 -Lunges/v_Lunges_g13_c02 51 -UnevenBars/v_UnevenBars_g18_c02 95 -SkyDiving/v_SkyDiving_g19_c04 82 -CliffDiving/v_CliffDiving_g18_c02 21 -BasketballDunk/v_BasketballDunk_g16_c03 8 -MoppingFloor/v_MoppingFloor_g09_c04 54 -TennisSwing/v_TennisSwing_g18_c05 91 -BlowDryHair/v_BlowDryHair_g18_c03 12 -ShavingBeard/v_ShavingBeard_g08_c06 77 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c07 16 -SoccerPenalty/v_SoccerPenalty_g14_c04 84 -HandstandPushups/v_HandStandPushups_g18_c06 36 -FrontCrawl/v_FrontCrawl_g25_c03 31 -Archery/v_Archery_g24_c04 2 -TennisSwing/v_TennisSwing_g17_c02 91 -Skijet/v_Skijet_g14_c03 81 -Knitting/v_Knitting_g15_c02 49 -HeadMassage/v_HeadMassage_g22_c02 38 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c06 17 -FrontCrawl/v_FrontCrawl_g14_c02 31 -FieldHockeyPenalty/v_FieldHockeyPenalty_g18_c03 28 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c06 73 -ParallelBars/v_ParallelBars_g21_c02 56 -Swing/v_Swing_g23_c01 88 -Drumming/v_Drumming_g25_c02 26 -PlayingCello/v_PlayingCello_g22_c05 58 -UnevenBars/v_UnevenBars_g22_c03 95 -Skiing/v_Skiing_g12_c01 80 -BrushingTeeth/v_BrushingTeeth_g18_c04 19 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c03 28 -JavelinThrow/v_JavelinThrow_g17_c04 44 -Kayaking/v_Kayaking_g09_c01 48 -BoxingPunchingBag/v_BoxingPunchingBag_g13_c03 16 -VolleyballSpiking/v_VolleyballSpiking_g25_c03 96 -CliffDiving/v_CliffDiving_g24_c02 21 -Fencing/v_Fencing_g24_c04 27 -CricketShot/v_CricketShot_g12_c03 23 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c01 73 -StillRings/v_StillRings_g08_c01 85 -HandstandPushups/v_HandStandPushups_g10_c02 36 -ShavingBeard/v_ShavingBeard_g13_c04 77 -JavelinThrow/v_JavelinThrow_g22_c01 44 -SkyDiving/v_SkyDiving_g21_c04 82 -SalsaSpin/v_SalsaSpin_g21_c03 76 -PlayingGuitar/v_PlayingGuitar_g18_c06 62 -Skiing/v_Skiing_g21_c05 80 -PlayingDaf/v_PlayingDaf_g19_c03 59 -JumpRope/v_JumpRope_g24_c02 47 -FloorGymnastics/v_FloorGymnastics_g11_c01 29 -JumpRope/v_JumpRope_g12_c01 47 -Fencing/v_Fencing_g19_c02 27 -Knitting/v_Knitting_g16_c01 49 -CricketBowling/v_CricketBowling_g14_c03 22 -YoYo/v_YoYo_g16_c01 100 -HulaHoop/v_HulaHoop_g19_c04 42 -MoppingFloor/v_MoppingFloor_g08_c02 54 -ApplyLipstick/v_ApplyLipstick_g17_c05 1 -Haircut/v_Haircut_g12_c03 33 -HammerThrow/v_HammerThrow_g18_c03 35 -Drumming/v_Drumming_g22_c04 26 -Diving/v_Diving_g23_c05 25 -CliffDiving/v_CliffDiving_g24_c05 21 -SumoWrestling/v_SumoWrestling_g25_c02 86 -FrisbeeCatch/v_FrisbeeCatch_g16_c04 30 -FrisbeeCatch/v_FrisbeeCatch_g09_c05 30 -JugglingBalls/v_JugglingBalls_g15_c01 45 -TrampolineJumping/v_TrampolineJumping_g20_c05 93 -HulaHoop/v_HulaHoop_g12_c02 42 -PommelHorse/v_PommelHorse_g20_c01 68 -Bowling/v_Bowling_g23_c01 15 -FrontCrawl/v_FrontCrawl_g23_c03 31 -HulaHoop/v_HulaHoop_g13_c06 42 -SkyDiving/v_SkyDiving_g11_c01 82 -BrushingTeeth/v_BrushingTeeth_g23_c01 19 -HeadMassage/v_HeadMassage_g09_c04 38 -StillRings/v_StillRings_g20_c03 85 -BaseballPitch/v_BaseballPitch_g11_c05 6 -Mixing/v_Mixing_g12_c04 53 -HulaHoop/v_HulaHoop_g22_c04 42 -PlayingDaf/v_PlayingDaf_g10_c04 59 -Bowling/v_Bowling_g17_c06 15 -Rowing/v_Rowing_g10_c02 75 -Basketball/v_Basketball_g16_c02 7 -BlowingCandles/v_BlowingCandles_g19_c01 13 -BaseballPitch/v_BaseballPitch_g18_c01 6 -Archery/v_Archery_g25_c01 2 -BandMarching/v_BandMarching_g20_c03 5 -ApplyLipstick/v_ApplyLipstick_g14_c01 1 -CliffDiving/v_CliffDiving_g24_c01 21 -Basketball/v_Basketball_g08_c01 7 -Diving/v_Diving_g11_c05 25 -WalkingWithDog/v_WalkingWithDog_g14_c02 97 -JumpingJack/v_JumpingJack_g09_c03 46 -Knitting/v_Knitting_g17_c03 49 -SoccerJuggling/v_SoccerJuggling_g19_c04 83 -WritingOnBoard/v_WritingOnBoard_g08_c01 99 -Kayaking/v_Kayaking_g16_c05 48 -HeadMassage/v_HeadMassage_g08_c01 38 -Lunges/v_Lunges_g19_c03 51 -GolfSwing/v_GolfSwing_g20_c01 32 -Mixing/v_Mixing_g14_c01 53 -IceDancing/v_IceDancing_g15_c04 43 -Typing/v_Typing_g21_c03 94 -Skijet/v_Skijet_g08_c01 81 -CricketBowling/v_CricketBowling_g11_c02 22 -SoccerPenalty/v_SoccerPenalty_g16_c03 84 -IceDancing/v_IceDancing_g09_c02 43 -PlayingFlute/v_PlayingFlute_g16_c03 61 -ParallelBars/v_ParallelBars_g20_c04 56 -Drumming/v_Drumming_g20_c06 26 -PlayingCello/v_PlayingCello_g18_c03 58 -IceDancing/v_IceDancing_g14_c02 43 -BasketballDunk/v_BasketballDunk_g10_c01 8 -JavelinThrow/v_JavelinThrow_g25_c05 44 -SoccerPenalty/v_SoccerPenalty_g19_c03 84 -HammerThrow/v_HammerThrow_g19_c04 35 -Billiards/v_Billiards_g21_c06 11 -BreastStroke/v_BreastStroke_g12_c04 18 -Bowling/v_Bowling_g24_c07 15 -MilitaryParade/v_MilitaryParade_g11_c01 52 -VolleyballSpiking/v_VolleyballSpiking_g20_c04 96 -Nunchucks/v_Nunchucks_g14_c03 55 -IceDancing/v_IceDancing_g12_c04 43 -PlayingSitar/v_PlayingSitar_g22_c02 64 -PlayingDaf/v_PlayingDaf_g11_c03 59 -BaseballPitch/v_BaseballPitch_g10_c02 6 -FloorGymnastics/v_FloorGymnastics_g25_c03 29 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c03 17 -WalkingWithDog/v_WalkingWithDog_g20_c04 97 -JumpRope/v_JumpRope_g13_c05 47 -PoleVault/v_PoleVault_g18_c04 67 -Billiards/v_Billiards_g21_c07 11 -Knitting/v_Knitting_g18_c04 49 -HeadMassage/v_HeadMassage_g16_c03 38 -CuttingInKitchen/v_CuttingInKitchen_g12_c01 24 -FrisbeeCatch/v_FrisbeeCatch_g19_c06 30 -JugglingBalls/v_JugglingBalls_g14_c02 45 -HulaHoop/v_HulaHoop_g08_c04 42 -BasketballDunk/v_BasketballDunk_g22_c04 8 -CleanAndJerk/v_CleanAndJerk_g15_c02 20 -VolleyballSpiking/v_VolleyballSpiking_g22_c04 96 -ParallelBars/v_ParallelBars_g22_c04 56 -ShavingBeard/v_ShavingBeard_g21_c07 77 -Kayaking/v_Kayaking_g08_c05 48 -ApplyEyeMakeup/v_ApplyEyeMakeup_g08_c03 0 -Knitting/v_Knitting_g21_c02 49 -Rowing/v_Rowing_g11_c06 75 -BenchPress/v_BenchPress_g16_c03 9 -Lunges/v_Lunges_g23_c06 51 -GolfSwing/v_GolfSwing_g22_c06 32 -Hammering/v_Hammering_g18_c02 34 -Typing/v_Typing_g09_c07 94 -Biking/v_Biking_g18_c06 10 -CricketShot/v_CricketShot_g19_c01 23 -BrushingTeeth/v_BrushingTeeth_g17_c04 19 -CricketBowling/v_CricketBowling_g08_c03 22 -CleanAndJerk/v_CleanAndJerk_g18_c03 20 -HandstandPushups/v_HandStandPushups_g15_c01 36 -SoccerPenalty/v_SoccerPenalty_g21_c05 84 -BalanceBeam/v_BalanceBeam_g17_c06 4 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c04 73 -PlayingGuitar/v_PlayingGuitar_g12_c07 62 -BlowingCandles/v_BlowingCandles_g21_c01 13 -JavelinThrow/v_JavelinThrow_g13_c04 44 -HeadMassage/v_HeadMassage_g18_c01 38 -FrontCrawl/v_FrontCrawl_g14_c07 31 -HandstandWalking/v_HandstandWalking_g10_c04 37 -PoleVault/v_PoleVault_g24_c01 67 -HeadMassage/v_HeadMassage_g23_c03 38 -Billiards/v_Billiards_g18_c03 11 -CleanAndJerk/v_CleanAndJerk_g22_c02 20 -FrontCrawl/v_FrontCrawl_g09_c05 31 -SalsaSpin/v_SalsaSpin_g21_c01 76 -Nunchucks/v_Nunchucks_g09_c03 55 -Billiards/v_Billiards_g11_c05 11 -MilitaryParade/v_MilitaryParade_g15_c05 52 -SkateBoarding/v_SkateBoarding_g23_c04 79 -FrontCrawl/v_FrontCrawl_g18_c06 31 -BasketballDunk/v_BasketballDunk_g23_c01 8 -HorseRiding/v_HorseRiding_g12_c05 41 -StillRings/v_StillRings_g14_c02 85 -BrushingTeeth/v_BrushingTeeth_g23_c06 19 -BenchPress/v_BenchPress_g08_c06 9 -Lunges/v_Lunges_g13_c06 51 -CricketShot/v_CricketShot_g20_c04 23 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c04 73 -TennisSwing/v_TennisSwing_g24_c01 91 -PommelHorse/v_PommelHorse_g23_c01 68 -SkyDiving/v_SkyDiving_g21_c02 82 -HorseRiding/v_HorseRiding_g18_c03 41 -PlayingViolin/v_PlayingViolin_g15_c04 66 -Drumming/v_Drumming_g08_c03 26 -LongJump/v_LongJump_g22_c01 50 -PlayingDhol/v_PlayingDhol_g14_c02 60 -HulaHoop/v_HulaHoop_g14_c04 42 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c02 16 -FrisbeeCatch/v_FrisbeeCatch_g21_c01 30 -BodyWeightSquats/v_BodyWeightSquats_g22_c01 14 -BandMarching/v_BandMarching_g19_c06 5 -PlayingFlute/v_PlayingFlute_g18_c02 61 -MilitaryParade/v_MilitaryParade_g14_c03 52 -BalanceBeam/v_BalanceBeam_g15_c01 4 -LongJump/v_LongJump_g19_c02 50 -StillRings/v_StillRings_g21_c05 85 -Drumming/v_Drumming_g24_c04 26 -PlayingFlute/v_PlayingFlute_g17_c07 61 -ThrowDiscus/v_ThrowDiscus_g24_c04 92 -TennisSwing/v_TennisSwing_g20_c03 91 -TennisSwing/v_TennisSwing_g23_c02 91 -ParallelBars/v_ParallelBars_g18_c03 56 -HammerThrow/v_HammerThrow_g13_c01 35 -Punch/v_Punch_g22_c06 70 -PlayingPiano/v_PlayingPiano_g11_c02 63 -PlayingDaf/v_PlayingDaf_g21_c06 59 -FrontCrawl/v_FrontCrawl_g13_c03 31 -IceDancing/v_IceDancing_g16_c03 43 -Diving/v_Diving_g25_c04 25 -Biking/v_Biking_g11_c06 10 -TaiChi/v_TaiChi_g21_c01 90 -PizzaTossing/v_PizzaTossing_g11_c01 57 -PlayingDaf/v_PlayingDaf_g08_c04 59 -BasketballDunk/v_BasketballDunk_g14_c01 8 -Punch/v_Punch_g15_c03 70 -Mixing/v_Mixing_g16_c02 53 -JumpingJack/v_JumpingJack_g11_c01 46 -Punch/v_Punch_g13_c04 70 -RopeClimbing/v_RopeClimbing_g19_c06 74 -RockClimbingIndoor/v_RockClimbingIndoor_g09_c04 73 -TennisSwing/v_TennisSwing_g11_c01 91 -Basketball/v_Basketball_g18_c01 7 -Skijet/v_Skijet_g19_c03 81 -Basketball/v_Basketball_g20_c05 7 -MilitaryParade/v_MilitaryParade_g24_c01 52 -WritingOnBoard/v_WritingOnBoard_g11_c02 99 -SalsaSpin/v_SalsaSpin_g12_c05 76 -TableTennisShot/v_TableTennisShot_g23_c07 89 -RopeClimbing/v_RopeClimbing_g21_c04 74 -SoccerPenalty/v_SoccerPenalty_g15_c02 84 -ApplyLipstick/v_ApplyLipstick_g10_c02 1 -BabyCrawling/v_BabyCrawling_g23_c03 3 -HorseRace/v_HorseRace_g15_c03 40 -JavelinThrow/v_JavelinThrow_g08_c03 44 -BlowingCandles/v_BlowingCandles_g14_c02 13 -Bowling/v_Bowling_g23_c03 15 -GolfSwing/v_GolfSwing_g17_c06 32 -IceDancing/v_IceDancing_g22_c05 43 -ParallelBars/v_ParallelBars_g11_c03 56 -PoleVault/v_PoleVault_g22_c01 67 -PlayingTabla/v_PlayingTabla_g13_c04 65 -MilitaryParade/v_MilitaryParade_g18_c01 52 -Nunchucks/v_Nunchucks_g23_c03 55 -Shotput/v_Shotput_g11_c03 78 -TrampolineJumping/v_TrampolineJumping_g12_c02 93 -Skiing/v_Skiing_g19_c06 80 -GolfSwing/v_GolfSwing_g08_c01 32 -PlayingDhol/v_PlayingDhol_g13_c06 60 -CricketBowling/v_CricketBowling_g16_c01 22 -ShavingBeard/v_ShavingBeard_g08_c01 77 -Swing/v_Swing_g15_c02 88 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c03 16 -JumpRope/v_JumpRope_g15_c01 47 -PlayingFlute/v_PlayingFlute_g08_c03 61 -BaseballPitch/v_BaseballPitch_g17_c03 6 -BandMarching/v_BandMarching_g20_c05 5 -CricketShot/v_CricketShot_g14_c04 23 -TableTennisShot/v_TableTennisShot_g24_c01 89 -SumoWrestling/v_SumoWrestling_g15_c04 86 -BabyCrawling/v_BabyCrawling_g12_c02 3 -Haircut/v_Haircut_g20_c04 33 -PizzaTossing/v_PizzaTossing_g22_c01 57 -CleanAndJerk/v_CleanAndJerk_g14_c04 20 -Archery/v_Archery_g21_c02 2 -CuttingInKitchen/v_CuttingInKitchen_g14_c04 24 -TrampolineJumping/v_TrampolineJumping_g09_c02 93 -PlayingDaf/v_PlayingDaf_g12_c03 59 -HorseRace/v_HorseRace_g18_c06 40 -Hammering/v_Hammering_g23_c01 34 -ThrowDiscus/v_ThrowDiscus_g21_c03 92 -JavelinThrow/v_JavelinThrow_g24_c03 44 -GolfSwing/v_GolfSwing_g18_c02 32 -PlayingSitar/v_PlayingSitar_g09_c04 64 -WalkingWithDog/v_WalkingWithDog_g16_c02 97 -JumpRope/v_JumpRope_g11_c01 47 -FrisbeeCatch/v_FrisbeeCatch_g10_c02 30 -PlayingFlute/v_PlayingFlute_g15_c06 61 -Skiing/v_Skiing_g17_c01 80 -HandstandPushups/v_HandStandPushups_g25_c01 36 -WritingOnBoard/v_WritingOnBoard_g19_c03 99 -PizzaTossing/v_PizzaTossing_g23_c03 57 -Shotput/v_Shotput_g24_c02 78 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c03 0 -ThrowDiscus/v_ThrowDiscus_g09_c06 92 -HighJump/v_HighJump_g11_c06 39 -BalanceBeam/v_BalanceBeam_g16_c02 4 -PlayingGuitar/v_PlayingGuitar_g11_c06 62 -CuttingInKitchen/v_CuttingInKitchen_g24_c01 24 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c07 0 -HulaHoop/v_HulaHoop_g22_c03 42 -JugglingBalls/v_JugglingBalls_g19_c03 45 -ParallelBars/v_ParallelBars_g13_c04 56 -BlowDryHair/v_BlowDryHair_g09_c03 12 -BandMarching/v_BandMarching_g25_c06 5 -BasketballDunk/v_BasketballDunk_g10_c05 8 -Hammering/v_Hammering_g19_c05 34 -BrushingTeeth/v_BrushingTeeth_g09_c02 19 -HulaHoop/v_HulaHoop_g19_c03 42 -BalanceBeam/v_BalanceBeam_g14_c02 4 -PlayingTabla/v_PlayingTabla_g23_c03 65 -Drumming/v_Drumming_g09_c03 26 -BenchPress/v_BenchPress_g11_c01 9 -ApplyEyeMakeup/v_ApplyEyeMakeup_g11_c01 0 -ApplyLipstick/v_ApplyLipstick_g25_c02 1 -PlayingPiano/v_PlayingPiano_g16_c02 63 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c05 73 -Knitting/v_Knitting_g15_c05 49 -ThrowDiscus/v_ThrowDiscus_g21_c04 92 -PizzaTossing/v_PizzaTossing_g10_c01 57 -BlowDryHair/v_BlowDryHair_g25_c01 12 -Fencing/v_Fencing_g10_c04 27 -HandstandPushups/v_HandStandPushups_g20_c02 36 -TrampolineJumping/v_TrampolineJumping_g22_c05 93 -Surfing/v_Surfing_g21_c02 87 -Punch/v_Punch_g14_c02 70 -WallPushups/v_WallPushups_g12_c04 98 -HandstandPushups/v_HandStandPushups_g09_c02 36 -Shotput/v_Shotput_g16_c02 78 -PushUps/v_PushUps_g20_c03 71 -Typing/v_Typing_g20_c03 94 -SoccerJuggling/v_SoccerJuggling_g25_c04 83 -PoleVault/v_PoleVault_g15_c04 67 -SoccerJuggling/v_SoccerJuggling_g17_c04 83 -YoYo/v_YoYo_g22_c04 100 -BandMarching/v_BandMarching_g16_c07 5 -SkyDiving/v_SkyDiving_g16_c03 82 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c01 28 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c01 28 -BaseballPitch/v_BaseballPitch_g13_c04 6 -VolleyballSpiking/v_VolleyballSpiking_g13_c02 96 -LongJump/v_LongJump_g24_c02 50 -ShavingBeard/v_ShavingBeard_g15_c02 77 -Archery/v_Archery_g11_c06 2 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c04 73 -TaiChi/v_TaiChi_g22_c02 90 -HorseRace/v_HorseRace_g09_c04 40 -CuttingInKitchen/v_CuttingInKitchen_g22_c03 24 -BoxingSpeedBag/v_BoxingSpeedBag_g10_c04 17 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c03 73 -MoppingFloor/v_MoppingFloor_g19_c01 54 -WritingOnBoard/v_WritingOnBoard_g17_c03 99 -FloorGymnastics/v_FloorGymnastics_g10_c03 29 -UnevenBars/v_UnevenBars_g15_c06 95 -Swing/v_Swing_g15_c04 88 -BenchPress/v_BenchPress_g11_c05 9 -HeadMassage/v_HeadMassage_g18_c02 38 -StillRings/v_StillRings_g25_c02 85 -PlayingViolin/v_PlayingViolin_g15_c02 66 -RopeClimbing/v_RopeClimbing_g19_c01 74 -PlayingFlute/v_PlayingFlute_g25_c07 61 -Kayaking/v_Kayaking_g17_c04 48 -Archery/v_Archery_g22_c05 2 -PullUps/v_PullUps_g08_c03 69 -BenchPress/v_BenchPress_g15_c03 9 -BlowDryHair/v_BlowDryHair_g23_c02 12 -HandstandWalking/v_HandstandWalking_g19_c03 37 -MoppingFloor/v_MoppingFloor_g19_c04 54 -Rowing/v_Rowing_g12_c03 75 -Biking/v_Biking_g12_c01 10 -HandstandPushups/v_HandStandPushups_g08_c04 36 -Punch/v_Punch_g18_c01 70 -PlayingGuitar/v_PlayingGuitar_g19_c05 62 -GolfSwing/v_GolfSwing_g18_c01 32 -Haircut/v_Haircut_g13_c01 33 -WritingOnBoard/v_WritingOnBoard_g23_c04 99 -Bowling/v_Bowling_g12_c01 15 -BenchPress/v_BenchPress_g12_c03 9 -PlayingGuitar/v_PlayingGuitar_g11_c03 62 -PlayingFlute/v_PlayingFlute_g09_c05 61 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c04 0 -Basketball/v_Basketball_g16_c03 7 -PlayingFlute/v_PlayingFlute_g17_c05 61 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c05 73 -Mixing/v_Mixing_g14_c04 53 -FrontCrawl/v_FrontCrawl_g18_c01 31 -HorseRace/v_HorseRace_g23_c04 40 -BreastStroke/v_BreastStroke_g13_c02 18 -PlayingFlute/v_PlayingFlute_g10_c04 61 -BlowingCandles/v_BlowingCandles_g25_c06 13 -PushUps/v_PushUps_g18_c03 71 -JugglingBalls/v_JugglingBalls_g24_c03 45 -Basketball/v_Basketball_g11_c05 7 -BaseballPitch/v_BaseballPitch_g16_c03 6 -BaseballPitch/v_BaseballPitch_g25_c05 6 -GolfSwing/v_GolfSwing_g16_c04 32 -Diving/v_Diving_g22_c04 25 -FrisbeeCatch/v_FrisbeeCatch_g14_c04 30 -IceDancing/v_IceDancing_g12_c06 43 -JavelinThrow/v_JavelinThrow_g17_c01 44 -Fencing/v_Fencing_g23_c03 27 -TrampolineJumping/v_TrampolineJumping_g15_c03 93 -HeadMassage/v_HeadMassage_g21_c06 38 -HorseRace/v_HorseRace_g23_c03 40 -StillRings/v_StillRings_g10_c05 85 -TableTennisShot/v_TableTennisShot_g25_c07 89 -CuttingInKitchen/v_CuttingInKitchen_g09_c01 24 -Drumming/v_Drumming_g23_c04 26 -HandstandPushups/v_HandStandPushups_g21_c03 36 -CliffDiving/v_CliffDiving_g15_c01 21 -HammerThrow/v_HammerThrow_g16_c02 35 -TaiChi/v_TaiChi_g08_c04 90 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c05 17 -BlowingCandles/v_BlowingCandles_g19_c03 13 -Punch/v_Punch_g24_c03 70 -Basketball/v_Basketball_g20_c06 7 -VolleyballSpiking/v_VolleyballSpiking_g22_c01 96 -Haircut/v_Haircut_g09_c04 33 -Bowling/v_Bowling_g23_c07 15 -Drumming/v_Drumming_g15_c06 26 -HandstandPushups/v_HandStandPushups_g19_c01 36 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c02 17 -JugglingBalls/v_JugglingBalls_g13_c04 45 -ParallelBars/v_ParallelBars_g25_c02 56 -BrushingTeeth/v_BrushingTeeth_g19_c02 19 -LongJump/v_LongJump_g09_c05 50 -YoYo/v_YoYo_g20_c01 100 -BabyCrawling/v_BabyCrawling_g14_c04 3 -Billiards/v_Billiards_g10_c05 11 -ShavingBeard/v_ShavingBeard_g24_c07 77 -BenchPress/v_BenchPress_g15_c04 9 -PlayingFlute/v_PlayingFlute_g12_c03 61 -Mixing/v_Mixing_g23_c02 53 -Rafting/v_Rafting_g10_c05 72 -PizzaTossing/v_PizzaTossing_g16_c02 57 -PlayingDhol/v_PlayingDhol_g08_c03 60 -Hammering/v_Hammering_g16_c01 34 -Archery/v_Archery_g23_c07 2 -TableTennisShot/v_TableTennisShot_g15_c02 89 -TrampolineJumping/v_TrampolineJumping_g25_c02 93 -BenchPress/v_BenchPress_g16_c05 9 -MoppingFloor/v_MoppingFloor_g13_c02 54 -WalkingWithDog/v_WalkingWithDog_g15_c02 97 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c05 17 -Skiing/v_Skiing_g09_c06 80 -TennisSwing/v_TennisSwing_g18_c06 91 -PlayingFlute/v_PlayingFlute_g18_c01 61 -BodyWeightSquats/v_BodyWeightSquats_g16_c03 14 -PlayingTabla/v_PlayingTabla_g14_c03 65 -TennisSwing/v_TennisSwing_g24_c05 91 -LongJump/v_LongJump_g22_c03 50 -BlowingCandles/v_BlowingCandles_g13_c03 13 -WallPushups/v_WallPushups_g08_c03 98 -PlayingTabla/v_PlayingTabla_g11_c03 65 -CricketShot/v_CricketShot_g15_c05 23 -CleanAndJerk/v_CleanAndJerk_g21_c04 20 -ApplyLipstick/v_ApplyLipstick_g24_c05 1 -HulaHoop/v_HulaHoop_g08_c02 42 -PlayingViolin/v_PlayingViolin_g12_c01 66 -SoccerPenalty/v_SoccerPenalty_g20_c01 84 -BandMarching/v_BandMarching_g25_c05 5 -PoleVault/v_PoleVault_g09_c03 67 -HammerThrow/v_HammerThrow_g19_c02 35 -PizzaTossing/v_PizzaTossing_g19_c01 57 -HorseRace/v_HorseRace_g20_c01 40 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c07 16 -UnevenBars/v_UnevenBars_g19_c03 95 -GolfSwing/v_GolfSwing_g25_c02 32 -Basketball/v_Basketball_g19_c06 7 -PlayingFlute/v_PlayingFlute_g15_c01 61 -Diving/v_Diving_g15_c05 25 -WallPushups/v_WallPushups_g08_c02 98 -PizzaTossing/v_PizzaTossing_g12_c02 57 -HorseRace/v_HorseRace_g14_c02 40 -Surfing/v_Surfing_g09_c05 87 -Skiing/v_Skiing_g15_c03 80 -MilitaryParade/v_MilitaryParade_g14_c01 52 -Rowing/v_Rowing_g19_c02 75 -HandstandPushups/v_HandStandPushups_g13_c05 36 -HammerThrow/v_HammerThrow_g17_c01 35 -PlayingTabla/v_PlayingTabla_g08_c03 65 -BenchPress/v_BenchPress_g18_c07 9 -WalkingWithDog/v_WalkingWithDog_g21_c04 97 -SumoWrestling/v_SumoWrestling_g22_c03 86 -HorseRace/v_HorseRace_g17_c03 40 -FrontCrawl/v_FrontCrawl_g09_c01 31 -CleanAndJerk/v_CleanAndJerk_g09_c01 20 -StillRings/v_StillRings_g17_c01 85 -PizzaTossing/v_PizzaTossing_g09_c04 57 -BrushingTeeth/v_BrushingTeeth_g13_c01 19 -Hammering/v_Hammering_g23_c03 34 -BasketballDunk/v_BasketballDunk_g15_c05 8 -Fencing/v_Fencing_g15_c04 27 -GolfSwing/v_GolfSwing_g08_c02 32 -JugglingBalls/v_JugglingBalls_g17_c04 45 -SkateBoarding/v_SkateBoarding_g18_c06 79 -Biking/v_Biking_g12_c04 10 -CleanAndJerk/v_CleanAndJerk_g23_c01 20 -Shotput/v_Shotput_g22_c03 78 -CliffDiving/v_CliffDiving_g17_c05 21 -BoxingSpeedBag/v_BoxingSpeedBag_g20_c04 17 -Punch/v_Punch_g22_c05 70 -BoxingSpeedBag/v_BoxingSpeedBag_g18_c02 17 -Skiing/v_Skiing_g17_c02 80 -BaseballPitch/v_BaseballPitch_g11_c02 6 -WritingOnBoard/v_WritingOnBoard_g18_c07 99 -HorseRiding/v_HorseRiding_g08_c03 41 -HulaHoop/v_HulaHoop_g09_c01 42 -MilitaryParade/v_MilitaryParade_g22_c03 52 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c02 0 -ThrowDiscus/v_ThrowDiscus_g14_c01 92 -HorseRiding/v_HorseRiding_g12_c02 41 -BabyCrawling/v_BabyCrawling_g13_c04 3 -Typing/v_Typing_g12_c02 94 -Surfing/v_Surfing_g17_c03 87 -Diving/v_Diving_g21_c05 25 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c01 73 -Knitting/v_Knitting_g14_c05 49 -HeadMassage/v_HeadMassage_g10_c04 38 -Punch/v_Punch_g09_c01 70 -PoleVault/v_PoleVault_g12_c04 67 -RockClimbingIndoor/v_RockClimbingIndoor_g19_c02 73 -BalanceBeam/v_BalanceBeam_g15_c04 4 -HorseRiding/v_HorseRiding_g11_c06 41 -PushUps/v_PushUps_g23_c04 71 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c01 16 -MoppingFloor/v_MoppingFloor_g10_c04 54 -Diving/v_Diving_g25_c02 25 -Diving/v_Diving_g13_c07 25 -Skijet/v_Skijet_g13_c01 81 -BasketballDunk/v_BasketballDunk_g15_c06 8 -SkateBoarding/v_SkateBoarding_g12_c03 79 -CricketBowling/v_CricketBowling_g19_c05 22 -PlayingViolin/v_PlayingViolin_g10_c01 66 -SalsaSpin/v_SalsaSpin_g08_c05 76 -HandstandPushups/v_HandStandPushups_g15_c02 36 -CleanAndJerk/v_CleanAndJerk_g11_c02 20 -Haircut/v_Haircut_g15_c04 33 -SoccerJuggling/v_SoccerJuggling_g21_c02 83 -Typing/v_Typing_g20_c06 94 -JavelinThrow/v_JavelinThrow_g16_c04 44 -PlayingCello/v_PlayingCello_g23_c05 58 -JugglingBalls/v_JugglingBalls_g13_c02 45 -WritingOnBoard/v_WritingOnBoard_g16_c02 99 -PlayingGuitar/v_PlayingGuitar_g17_c05 62 -PushUps/v_PushUps_g24_c01 71 -BaseballPitch/v_BaseballPitch_g09_c05 6 -JumpingJack/v_JumpingJack_g14_c02 46 -Typing/v_Typing_g18_c02 94 -Rafting/v_Rafting_g14_c05 72 -BrushingTeeth/v_BrushingTeeth_g25_c07 19 -Basketball/v_Basketball_g17_c01 7 -JavelinThrow/v_JavelinThrow_g14_c05 44 -Haircut/v_Haircut_g09_c07 33 -BaseballPitch/v_BaseballPitch_g15_c03 6 -PlayingCello/v_PlayingCello_g23_c07 58 -Nunchucks/v_Nunchucks_g25_c05 55 -Drumming/v_Drumming_g13_c06 26 -FrontCrawl/v_FrontCrawl_g09_c03 31 -CuttingInKitchen/v_CuttingInKitchen_g18_c03 24 -SkyDiving/v_SkyDiving_g25_c04 82 -BodyWeightSquats/v_BodyWeightSquats_g09_c04 14 -HandstandPushups/v_HandStandPushups_g12_c01 36 -HammerThrow/v_HammerThrow_g17_c03 35 -PushUps/v_PushUps_g21_c04 71 -Biking/v_Biking_g09_c04 10 -VolleyballSpiking/v_VolleyballSpiking_g18_c03 96 -IceDancing/v_IceDancing_g19_c01 43 -BaseballPitch/v_BaseballPitch_g21_c04 6 -HandstandPushups/v_HandStandPushups_g21_c05 36 -SoccerPenalty/v_SoccerPenalty_g17_c04 84 -VolleyballSpiking/v_VolleyballSpiking_g10_c01 96 -FrontCrawl/v_FrontCrawl_g12_c02 31 -HorseRiding/v_HorseRiding_g12_c07 41 -Kayaking/v_Kayaking_g14_c03 48 -Rafting/v_Rafting_g16_c05 72 -Kayaking/v_Kayaking_g08_c06 48 -Skijet/v_Skijet_g13_c04 81 -Haircut/v_Haircut_g10_c01 33 -PlayingPiano/v_PlayingPiano_g17_c03 63 -Basketball/v_Basketball_g15_c04 7 -WalkingWithDog/v_WalkingWithDog_g08_c05 97 -PlayingSitar/v_PlayingSitar_g24_c03 64 -PlayingDhol/v_PlayingDhol_g11_c07 60 -Basketball/v_Basketball_g20_c03 7 -Kayaking/v_Kayaking_g17_c02 48 -Skiing/v_Skiing_g17_c03 80 -CuttingInKitchen/v_CuttingInKitchen_g21_c03 24 -CricketBowling/v_CricketBowling_g18_c03 22 -BlowDryHair/v_BlowDryHair_g21_c04 12 -ThrowDiscus/v_ThrowDiscus_g23_c03 92 -PlayingGuitar/v_PlayingGuitar_g18_c05 62 -PlayingGuitar/v_PlayingGuitar_g12_c03 62 -JumpingJack/v_JumpingJack_g09_c02 46 -TennisSwing/v_TennisSwing_g14_c05 91 -PlayingCello/v_PlayingCello_g19_c06 58 -PlayingGuitar/v_PlayingGuitar_g15_c03 62 -PlayingDaf/v_PlayingDaf_g23_c04 59 -RockClimbingIndoor/v_RockClimbingIndoor_g09_c03 73 -PlayingCello/v_PlayingCello_g25_c05 58 -Drumming/v_Drumming_g23_c05 26 -PlayingPiano/v_PlayingPiano_g19_c04 63 -FieldHockeyPenalty/v_FieldHockeyPenalty_g13_c04 28 -PullUps/v_PullUps_g23_c03 69 -PushUps/v_PushUps_g20_c01 71 -LongJump/v_LongJump_g24_c04 50 -WallPushups/v_WallPushups_g19_c05 98 -BrushingTeeth/v_BrushingTeeth_g12_c01 19 -HorseRace/v_HorseRace_g24_c03 40 -TennisSwing/v_TennisSwing_g19_c06 91 -PlayingGuitar/v_PlayingGuitar_g12_c04 62 -SoccerPenalty/v_SoccerPenalty_g16_c05 84 -IceDancing/v_IceDancing_g23_c07 43 -CliffDiving/v_CliffDiving_g23_c02 21 -CricketShot/v_CricketShot_g10_c06 23 -Hammering/v_Hammering_g20_c03 34 -Typing/v_Typing_g11_c05 94 -Skijet/v_Skijet_g14_c01 81 -PushUps/v_PushUps_g13_c02 71 -PizzaTossing/v_PizzaTossing_g10_c03 57 -TaiChi/v_TaiChi_g12_c04 90 -BaseballPitch/v_BaseballPitch_g21_c03 6 -PlayingDhol/v_PlayingDhol_g19_c05 60 -Lunges/v_Lunges_g23_c04 51 -TennisSwing/v_TennisSwing_g17_c05 91 -Haircut/v_Haircut_g22_c07 33 -Punch/v_Punch_g25_c05 70 -Typing/v_Typing_g19_c01 94 -CricketBowling/v_CricketBowling_g24_c03 22 -TrampolineJumping/v_TrampolineJumping_g22_c04 93 -UnevenBars/v_UnevenBars_g09_c03 95 -PlayingTabla/v_PlayingTabla_g18_c06 65 -FieldHockeyPenalty/v_FieldHockeyPenalty_g19_c01 28 -PlayingCello/v_PlayingCello_g23_c01 58 -Swing/v_Swing_g18_c04 88 -ParallelBars/v_ParallelBars_g09_c04 56 -Haircut/v_Haircut_g10_c03 33 -Drumming/v_Drumming_g15_c04 26 -WallPushups/v_WallPushups_g19_c02 98 -PlayingPiano/v_PlayingPiano_g08_c04 63 -Lunges/v_Lunges_g09_c02 51 -VolleyballSpiking/v_VolleyballSpiking_g16_c01 96 -PlayingSitar/v_PlayingSitar_g08_c03 64 -HorseRace/v_HorseRace_g13_c03 40 -BabyCrawling/v_BabyCrawling_g25_c03 3 -Skiing/v_Skiing_g13_c04 80 -BoxingSpeedBag/v_BoxingSpeedBag_g23_c01 17 -HighJump/v_HighJump_g09_c01 39 -BrushingTeeth/v_BrushingTeeth_g16_c01 19 -TaiChi/v_TaiChi_g14_c03 90 -FloorGymnastics/v_FloorGymnastics_g12_c02 29 -Hammering/v_Hammering_g12_c04 34 -PlayingGuitar/v_PlayingGuitar_g14_c07 62 -Nunchucks/v_Nunchucks_g20_c01 55 -HorseRiding/v_HorseRiding_g18_c06 41 -PlayingCello/v_PlayingCello_g13_c05 58 -Swing/v_Swing_g19_c02 88 -Basketball/v_Basketball_g08_c03 7 -Diving/v_Diving_g09_c03 25 -HighJump/v_HighJump_g19_c01 39 -Diving/v_Diving_g12_c04 25 -SkateBoarding/v_SkateBoarding_g12_c04 79 -PlayingDhol/v_PlayingDhol_g08_c06 60 -ShavingBeard/v_ShavingBeard_g19_c06 77 -Rafting/v_Rafting_g13_c01 72 -WritingOnBoard/v_WritingOnBoard_g08_c04 99 -BalanceBeam/v_BalanceBeam_g17_c05 4 -SoccerJuggling/v_SoccerJuggling_g20_c01 83 -PommelHorse/v_PommelHorse_g21_c02 68 -HeadMassage/v_HeadMassage_g21_c03 38 -PlayingTabla/v_PlayingTabla_g24_c02 65 -WalkingWithDog/v_WalkingWithDog_g11_c01 97 -PlayingCello/v_PlayingCello_g16_c05 58 -JavelinThrow/v_JavelinThrow_g25_c02 44 -BlowDryHair/v_BlowDryHair_g12_c03 12 -GolfSwing/v_GolfSwing_g12_c04 32 -WritingOnBoard/v_WritingOnBoard_g10_c02 99 -FrisbeeCatch/v_FrisbeeCatch_g16_c01 30 -CleanAndJerk/v_CleanAndJerk_g21_c02 20 -CliffDiving/v_CliffDiving_g19_c07 21 -BenchPress/v_BenchPress_g10_c02 9 -Fencing/v_Fencing_g23_c01 27 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c05 0 -FrisbeeCatch/v_FrisbeeCatch_g10_c03 30 -SoccerPenalty/v_SoccerPenalty_g14_c02 84 -Basketball/v_Basketball_g15_c03 7 -PlayingDhol/v_PlayingDhol_g08_c07 60 -RockClimbingIndoor/v_RockClimbingIndoor_g16_c02 73 -MilitaryParade/v_MilitaryParade_g19_c05 52 -Shotput/v_Shotput_g20_c03 78 -PlayingGuitar/v_PlayingGuitar_g20_c02 62 -BasketballDunk/v_BasketballDunk_g15_c01 8 -Haircut/v_Haircut_g22_c02 33 -Bowling/v_Bowling_g19_c06 15 -PommelHorse/v_PommelHorse_g21_c01 68 -HorseRace/v_HorseRace_g16_c02 40 -ApplyEyeMakeup/v_ApplyEyeMakeup_g10_c04 0 -SkyDiving/v_SkyDiving_g08_c01 82 -PlayingGuitar/v_PlayingGuitar_g08_c07 62 -PlayingCello/v_PlayingCello_g12_c05 58 -HammerThrow/v_HammerThrow_g24_c04 35 -SumoWrestling/v_SumoWrestling_g08_c03 86 -TrampolineJumping/v_TrampolineJumping_g21_c01 93 -StillRings/v_StillRings_g13_c04 85 -HammerThrow/v_HammerThrow_g09_c02 35 -Haircut/v_Haircut_g20_c02 33 -HorseRiding/v_HorseRiding_g10_c01 41 -ParallelBars/v_ParallelBars_g22_c02 56 -Drumming/v_Drumming_g23_c07 26 -Skiing/v_Skiing_g25_c04 80 -BoxingSpeedBag/v_BoxingSpeedBag_g12_c01 17 -PlayingViolin/v_PlayingViolin_g20_c02 66 -Drumming/v_Drumming_g17_c03 26 -SoccerJuggling/v_SoccerJuggling_g11_c06 83 -PullUps/v_PullUps_g08_c04 69 -Skijet/v_Skijet_g24_c04 81 -BodyWeightSquats/v_BodyWeightSquats_g08_c01 14 -Billiards/v_Billiards_g23_c01 11 -PommelHorse/v_PommelHorse_g22_c01 68 -BoxingPunchingBag/v_BoxingPunchingBag_g11_c01 16 -TableTennisShot/v_TableTennisShot_g21_c03 89 -PlayingFlute/v_PlayingFlute_g19_c03 61 -ApplyLipstick/v_ApplyLipstick_g25_c03 1 -SumoWrestling/v_SumoWrestling_g14_c03 86 -BlowDryHair/v_BlowDryHair_g12_c01 12 -Swing/v_Swing_g23_c02 88 -PlayingViolin/v_PlayingViolin_g19_c04 66 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c07 17 -BreastStroke/v_BreastStroke_g11_c01 18 -PizzaTossing/v_PizzaTossing_g10_c04 57 -Drumming/v_Drumming_g18_c01 26 -IceDancing/v_IceDancing_g13_c01 43 -JumpRope/v_JumpRope_g13_c01 47 -Kayaking/v_Kayaking_g10_c04 48 -Swing/v_Swing_g24_c05 88 -Rowing/v_Rowing_g17_c07 75 -Diving/v_Diving_g22_c02 25 -VolleyballSpiking/v_VolleyballSpiking_g17_c01 96 -CleanAndJerk/v_CleanAndJerk_g10_c04 20 -Rafting/v_Rafting_g19_c02 72 -BenchPress/v_BenchPress_g14_c03 9 -FloorGymnastics/v_FloorGymnastics_g10_c04 29 -Rafting/v_Rafting_g16_c03 72 -Swing/v_Swing_g10_c01 88 -BrushingTeeth/v_BrushingTeeth_g22_c07 19 -PommelHorse/v_PommelHorse_g17_c01 68 -LongJump/v_LongJump_g12_c03 50 -PlayingDaf/v_PlayingDaf_g19_c04 59 -FrisbeeCatch/v_FrisbeeCatch_g13_c04 30 -UnevenBars/v_UnevenBars_g19_c01 95 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c06 0 -BasketballDunk/v_BasketballDunk_g24_c05 8 -Surfing/v_Surfing_g10_c03 87 -PlayingSitar/v_PlayingSitar_g08_c01 64 -HighJump/v_HighJump_g12_c03 39 -PullUps/v_PullUps_g24_c02 69 -FrisbeeCatch/v_FrisbeeCatch_g09_c01 30 -BandMarching/v_BandMarching_g08_c05 5 -Billiards/v_Billiards_g14_c03 11 -Lunges/v_Lunges_g12_c05 51 -PlayingDaf/v_PlayingDaf_g09_c04 59 -SoccerJuggling/v_SoccerJuggling_g11_c01 83 -Nunchucks/v_Nunchucks_g11_c02 55 -PlayingDhol/v_PlayingDhol_g23_c01 60 -Kayaking/v_Kayaking_g18_c04 48 -Fencing/v_Fencing_g20_c02 27 -JumpingJack/v_JumpingJack_g09_c05 46 -BlowDryHair/v_BlowDryHair_g11_c05 12 -JumpingJack/v_JumpingJack_g18_c04 46 -HeadMassage/v_HeadMassage_g21_c05 38 -Knitting/v_Knitting_g10_c07 49 -PoleVault/v_PoleVault_g18_c01 67 -TennisSwing/v_TennisSwing_g16_c04 91 -CuttingInKitchen/v_CuttingInKitchen_g17_c04 24 -Biking/v_Biking_g10_c06 10 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c04 73 -CricketShot/v_CricketShot_g08_c05 23 -RopeClimbing/v_RopeClimbing_g09_c02 74 -FrontCrawl/v_FrontCrawl_g21_c05 31 -Shotput/v_Shotput_g20_c01 78 -Skiing/v_Skiing_g20_c01 80 -PlayingCello/v_PlayingCello_g12_c04 58 -PlayingPiano/v_PlayingPiano_g16_c04 63 -WritingOnBoard/v_WritingOnBoard_g16_c05 99 -BabyCrawling/v_BabyCrawling_g20_c03 3 -PlayingCello/v_PlayingCello_g11_c02 58 -WalkingWithDog/v_WalkingWithDog_g19_c05 97 -MilitaryParade/v_MilitaryParade_g21_c02 52 -PlayingViolin/v_PlayingViolin_g16_c04 66 -BenchPress/v_BenchPress_g10_c01 9 -Fencing/v_Fencing_g19_c03 27 -FrisbeeCatch/v_FrisbeeCatch_g08_c01 30 -SoccerPenalty/v_SoccerPenalty_g24_c02 84 -BaseballPitch/v_BaseballPitch_g19_c01 6 -PlayingTabla/v_PlayingTabla_g10_c05 65 -BoxingPunchingBag/v_BoxingPunchingBag_g17_c01 16 -SumoWrestling/v_SumoWrestling_g24_c04 86 -ThrowDiscus/v_ThrowDiscus_g12_c04 92 -YoYo/v_YoYo_g23_c06 100 -SalsaSpin/v_SalsaSpin_g15_c03 76 -HulaHoop/v_HulaHoop_g16_c06 42 -Skijet/v_Skijet_g11_c01 81 -PlayingGuitar/v_PlayingGuitar_g08_c04 62 -HulaHoop/v_HulaHoop_g10_c04 42 -GolfSwing/v_GolfSwing_g11_c03 32 -PoleVault/v_PoleVault_g13_c05 67 -TrampolineJumping/v_TrampolineJumping_g16_c03 93 -SoccerPenalty/v_SoccerPenalty_g23_c05 84 -HorseRiding/v_HorseRiding_g08_c06 41 -SumoWrestling/v_SumoWrestling_g19_c05 86 -Skiing/v_Skiing_g25_c02 80 -BalanceBeam/v_BalanceBeam_g17_c02 4 -IceDancing/v_IceDancing_g16_c06 43 -JavelinThrow/v_JavelinThrow_g19_c02 44 -Rafting/v_Rafting_g10_c01 72 -Bowling/v_Bowling_g11_c03 15 -HandstandWalking/v_HandstandWalking_g12_c03 37 -CricketBowling/v_CricketBowling_g18_c06 22 -SoccerJuggling/v_SoccerJuggling_g09_c01 83 -Punch/v_Punch_g22_c02 70 -Kayaking/v_Kayaking_g19_c04 48 -Billiards/v_Billiards_g13_c05 11 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c04 28 -Swing/v_Swing_g13_c03 88 -Rowing/v_Rowing_g23_c02 75 -Swing/v_Swing_g08_c04 88 -PommelHorse/v_PommelHorse_g14_c01 68 -PlayingPiano/v_PlayingPiano_g22_c01 63 -HammerThrow/v_HammerThrow_g09_c06 35 -Typing/v_Typing_g08_c06 94 -StillRings/v_StillRings_g19_c03 85 -Punch/v_Punch_g17_c07 70 -TennisSwing/v_TennisSwing_g09_c01 91 -ThrowDiscus/v_ThrowDiscus_g12_c03 92 -Knitting/v_Knitting_g22_c01 49 -PlayingCello/v_PlayingCello_g25_c01 58 -WritingOnBoard/v_WritingOnBoard_g16_c06 99 -Nunchucks/v_Nunchucks_g15_c01 55 -BenchPress/v_BenchPress_g17_c04 9 -Hammering/v_Hammering_g11_c03 34 -Typing/v_Typing_g14_c07 94 -PlayingCello/v_PlayingCello_g13_c06 58 -YoYo/v_YoYo_g16_c05 100 -TrampolineJumping/v_TrampolineJumping_g25_c03 93 -BlowDryHair/v_BlowDryHair_g17_c05 12 -UnevenBars/v_UnevenBars_g12_c01 95 -WritingOnBoard/v_WritingOnBoard_g16_c03 99 -Basketball/v_Basketball_g25_c06 7 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c02 0 -Bowling/v_Bowling_g10_c06 15 -Bowling/v_Bowling_g22_c02 15 -Biking/v_Biking_g11_c05 10 -BandMarching/v_BandMarching_g23_c03 5 -JumpingJack/v_JumpingJack_g09_c07 46 -VolleyballSpiking/v_VolleyballSpiking_g10_c03 96 -FloorGymnastics/v_FloorGymnastics_g20_c03 29 -CricketShot/v_CricketShot_g12_c07 23 -SoccerJuggling/v_SoccerJuggling_g17_c01 83 -PlayingGuitar/v_PlayingGuitar_g12_c01 62 -PlayingSitar/v_PlayingSitar_g20_c07 64 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c06 17 -JumpingJack/v_JumpingJack_g25_c06 46 -HandstandPushups/v_HandStandPushups_g08_c05 36 -HighJump/v_HighJump_g09_c05 39 -Haircut/v_Haircut_g18_c03 33 -SoccerPenalty/v_SoccerPenalty_g09_c05 84 -HandstandWalking/v_HandstandWalking_g10_c01 37 -YoYo/v_YoYo_g18_c03 100 -HorseRiding/v_HorseRiding_g19_c03 41 -PlayingFlute/v_PlayingFlute_g25_c06 61 -ThrowDiscus/v_ThrowDiscus_g11_c03 92 -JavelinThrow/v_JavelinThrow_g19_c03 44 -CricketShot/v_CricketShot_g10_c03 23 -JumpingJack/v_JumpingJack_g24_c03 46 -YoYo/v_YoYo_g11_c05 100 -GolfSwing/v_GolfSwing_g19_c06 32 -Mixing/v_Mixing_g20_c01 53 -BreastStroke/v_BreastStroke_g19_c01 18 -UnevenBars/v_UnevenBars_g17_c04 95 -IceDancing/v_IceDancing_g13_c02 43 -FloorGymnastics/v_FloorGymnastics_g09_c03 29 -Hammering/v_Hammering_g24_c05 34 -HorseRace/v_HorseRace_g11_c01 40 -SumoWrestling/v_SumoWrestling_g19_c02 86 -Drumming/v_Drumming_g14_c03 26 -PlayingTabla/v_PlayingTabla_g14_c04 65 -Hammering/v_Hammering_g13_c03 34 -HammerThrow/v_HammerThrow_g13_c05 35 -ThrowDiscus/v_ThrowDiscus_g13_c03 92 -SumoWrestling/v_SumoWrestling_g11_c03 86 -Basketball/v_Basketball_g25_c04 7 -Swing/v_Swing_g08_c03 88 -TableTennisShot/v_TableTennisShot_g17_c01 89 -Kayaking/v_Kayaking_g22_c04 48 -HandstandPushups/v_HandStandPushups_g23_c02 36 -PommelHorse/v_PommelHorse_g20_c02 68 -Biking/v_Biking_g24_c01 10 -Rowing/v_Rowing_g25_c06 75 -BodyWeightSquats/v_BodyWeightSquats_g19_c03 14 -PlayingTabla/v_PlayingTabla_g18_c04 65 -Fencing/v_Fencing_g16_c01 27 -PommelHorse/v_PommelHorse_g20_c07 68 -FrontCrawl/v_FrontCrawl_g22_c06 31 -ApplyLipstick/v_ApplyLipstick_g24_c04 1 -CliffDiving/v_CliffDiving_g10_c07 21 -FloorGymnastics/v_FloorGymnastics_g08_c04 29 -WritingOnBoard/v_WritingOnBoard_g08_c03 99 -WritingOnBoard/v_WritingOnBoard_g09_c01 99 -BlowingCandles/v_BlowingCandles_g09_c01 13 -Lunges/v_Lunges_g17_c03 51 -HulaHoop/v_HulaHoop_g12_c04 42 -PlayingDaf/v_PlayingDaf_g17_c04 59 -PlayingPiano/v_PlayingPiano_g24_c02 63 -FloorGymnastics/v_FloorGymnastics_g09_c05 29 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c04 0 -WallPushups/v_WallPushups_g08_c01 98 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c03 17 -Archery/v_Archery_g17_c02 2 -PoleVault/v_PoleVault_g20_c05 67 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c01 17 -PlayingFlute/v_PlayingFlute_g11_c02 61 -CricketShot/v_CricketShot_g20_c03 23 -YoYo/v_YoYo_g17_c03 100 -LongJump/v_LongJump_g13_c04 50 -PlayingPiano/v_PlayingPiano_g09_c02 63 -PlayingDhol/v_PlayingDhol_g22_c01 60 -TableTennisShot/v_TableTennisShot_g24_c03 89 -JumpRope/v_JumpRope_g16_c02 47 -CricketBowling/v_CricketBowling_g12_c06 22 -CricketBowling/v_CricketBowling_g16_c04 22 -SumoWrestling/v_SumoWrestling_g17_c05 86 -Basketball/v_Basketball_g14_c05 7 -BreastStroke/v_BreastStroke_g20_c04 18 -PizzaTossing/v_PizzaTossing_g08_c03 57 -Billiards/v_Billiards_g14_c04 11 -WalkingWithDog/v_WalkingWithDog_g24_c06 97 -Lunges/v_Lunges_g11_c02 51 -HighJump/v_HighJump_g11_c05 39 -Bowling/v_Bowling_g14_c04 15 -PlayingGuitar/v_PlayingGuitar_g08_c02 62 -ApplyEyeMakeup/v_ApplyEyeMakeup_g21_c02 0 -PullUps/v_PullUps_g12_c02 69 -Lunges/v_Lunges_g21_c01 51 -CricketShot/v_CricketShot_g11_c07 23 -PlayingFlute/v_PlayingFlute_g12_c02 61 -MoppingFloor/v_MoppingFloor_g17_c04 54 -PlayingDhol/v_PlayingDhol_g17_c04 60 -PommelHorse/v_PommelHorse_g12_c06 68 -Mixing/v_Mixing_g13_c06 53 -SumoWrestling/v_SumoWrestling_g08_c02 86 -HandstandWalking/v_HandstandWalking_g20_c03 37 -Haircut/v_Haircut_g24_c06 33 -Shotput/v_Shotput_g21_c01 78 -SkyDiving/v_SkyDiving_g23_c03 82 -Surfing/v_Surfing_g16_c05 87 -Nunchucks/v_Nunchucks_g19_c02 55 -JumpRope/v_JumpRope_g10_c03 47 -ThrowDiscus/v_ThrowDiscus_g15_c01 92 -Haircut/v_Haircut_g22_c03 33 -PlayingDhol/v_PlayingDhol_g17_c01 60 -Shotput/v_Shotput_g11_c02 78 -Surfing/v_Surfing_g24_c03 87 -PoleVault/v_PoleVault_g16_c06 67 -WalkingWithDog/v_WalkingWithDog_g16_c01 97 -Lunges/v_Lunges_g10_c05 51 -BandMarching/v_BandMarching_g12_c04 5 -TableTennisShot/v_TableTennisShot_g08_c02 89 -PlayingDhol/v_PlayingDhol_g15_c03 60 -HeadMassage/v_HeadMassage_g08_c06 38 -BodyWeightSquats/v_BodyWeightSquats_g15_c02 14 -ApplyLipstick/v_ApplyLipstick_g22_c02 1 -Fencing/v_Fencing_g16_c03 27 -Skijet/v_Skijet_g15_c04 81 -PlayingGuitar/v_PlayingGuitar_g18_c01 62 -BodyWeightSquats/v_BodyWeightSquats_g20_c04 14 -Drumming/v_Drumming_g20_c07 26 -HandstandPushups/v_HandStandPushups_g21_c01 36 -SumoWrestling/v_SumoWrestling_g13_c01 86 -FloorGymnastics/v_FloorGymnastics_g21_c04 29 -BabyCrawling/v_BabyCrawling_g24_c06 3 -Diving/v_Diving_g14_c03 25 -PlayingFlute/v_PlayingFlute_g15_c05 61 -IceDancing/v_IceDancing_g11_c01 43 -Punch/v_Punch_g09_c02 70 -Billiards/v_Billiards_g16_c02 11 -ShavingBeard/v_ShavingBeard_g17_c03 77 -PlayingDaf/v_PlayingDaf_g15_c05 59 -CricketShot/v_CricketShot_g20_c01 23 -BabyCrawling/v_BabyCrawling_g10_c04 3 -BabyCrawling/v_BabyCrawling_g12_c04 3 -FieldHockeyPenalty/v_FieldHockeyPenalty_g16_c03 28 -Skijet/v_Skijet_g13_c02 81 -HorseRace/v_HorseRace_g12_c02 40 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c01 0 -TableTennisShot/v_TableTennisShot_g12_c03 89 -BlowingCandles/v_BlowingCandles_g23_c04 13 -Diving/v_Diving_g23_c03 25 -PlayingTabla/v_PlayingTabla_g18_c01 65 -BrushingTeeth/v_BrushingTeeth_g18_c06 19 -SkateBoarding/v_SkateBoarding_g24_c03 79 -CricketShot/v_CricketShot_g14_c06 23 -ShavingBeard/v_ShavingBeard_g15_c03 77 -PlayingDhol/v_PlayingDhol_g22_c03 60 -SkateBoarding/v_SkateBoarding_g12_c06 79 -SkateBoarding/v_SkateBoarding_g25_c03 79 -IceDancing/v_IceDancing_g23_c05 43 -Biking/v_Biking_g08_c04 10 -HandstandPushups/v_HandStandPushups_g20_c04 36 -Skiing/v_Skiing_g08_c04 80 -PlayingCello/v_PlayingCello_g25_c06 58 -Drumming/v_Drumming_g10_c02 26 -HammerThrow/v_HammerThrow_g09_c01 35 -Hammering/v_Hammering_g17_c01 34 -Drumming/v_Drumming_g19_c06 26 -BabyCrawling/v_BabyCrawling_g15_c06 3 -Typing/v_Typing_g13_c03 94 -PommelHorse/v_PommelHorse_g11_c02 68 -Fencing/v_Fencing_g09_c03 27 -PommelHorse/v_PommelHorse_g15_c02 68 -PoleVault/v_PoleVault_g08_c03 67 -MoppingFloor/v_MoppingFloor_g19_c03 54 -TennisSwing/v_TennisSwing_g23_c05 91 -ApplyLipstick/v_ApplyLipstick_g22_c05 1 -JumpingJack/v_JumpingJack_g20_c04 46 -Fencing/v_Fencing_g08_c04 27 -BreastStroke/v_BreastStroke_g09_c03 18 -JumpRope/v_JumpRope_g09_c06 47 -Rafting/v_Rafting_g23_c02 72 -PlayingTabla/v_PlayingTabla_g16_c04 65 -SoccerJuggling/v_SoccerJuggling_g08_c02 83 -Swing/v_Swing_g09_c06 88 -JugglingBalls/v_JugglingBalls_g12_c01 45 -Billiards/v_Billiards_g18_c02 11 -JavelinThrow/v_JavelinThrow_g14_c06 44 -BabyCrawling/v_BabyCrawling_g08_c04 3 -PlayingCello/v_PlayingCello_g23_c02 58 -Basketball/v_Basketball_g19_c03 7 -Shotput/v_Shotput_g13_c01 78 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c04 16 -Swing/v_Swing_g10_c04 88 -PizzaTossing/v_PizzaTossing_g16_c04 57 -Kayaking/v_Kayaking_g18_c01 48 -Surfing/v_Surfing_g08_c03 87 -PlayingCello/v_PlayingCello_g08_c06 58 -FrisbeeCatch/v_FrisbeeCatch_g15_c01 30 -Drumming/v_Drumming_g14_c04 26 -BabyCrawling/v_BabyCrawling_g15_c03 3 -WalkingWithDog/v_WalkingWithDog_g25_c01 97 -JumpingJack/v_JumpingJack_g20_c02 46 -FrisbeeCatch/v_FrisbeeCatch_g22_c05 30 -SkyDiving/v_SkyDiving_g23_c01 82 -TableTennisShot/v_TableTennisShot_g12_c04 89 -YoYo/v_YoYo_g09_c01 100 -Archery/v_Archery_g13_c01 2 -StillRings/v_StillRings_g11_c01 85 -Bowling/v_Bowling_g10_c01 15 -CliffDiving/v_CliffDiving_g25_c01 21 -Rafting/v_Rafting_g25_c01 72 -BalanceBeam/v_BalanceBeam_g25_c04 4 -TaiChi/v_TaiChi_g16_c02 90 -TennisSwing/v_TennisSwing_g16_c02 91 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c04 16 -PushUps/v_PushUps_g08_c04 71 -Mixing/v_Mixing_g09_c06 53 -PlayingSitar/v_PlayingSitar_g23_c01 64 -HandstandWalking/v_HandstandWalking_g25_c03 37 -Shotput/v_Shotput_g23_c07 78 -SumoWrestling/v_SumoWrestling_g11_c02 86 -Basketball/v_Basketball_g21_c05 7 -ApplyEyeMakeup/v_ApplyEyeMakeup_g21_c04 0 -PlayingCello/v_PlayingCello_g15_c01 58 -ShavingBeard/v_ShavingBeard_g15_c04 77 -SkateBoarding/v_SkateBoarding_g22_c05 79 -CricketBowling/v_CricketBowling_g14_c01 22 -WritingOnBoard/v_WritingOnBoard_g18_c05 99 -BaseballPitch/v_BaseballPitch_g25_c06 6 -Haircut/v_Haircut_g25_c03 33 -VolleyballSpiking/v_VolleyballSpiking_g23_c04 96 -BandMarching/v_BandMarching_g09_c02 5 -HighJump/v_HighJump_g17_c01 39 -Rafting/v_Rafting_g19_c03 72 -Fencing/v_Fencing_g25_c01 27 -ShavingBeard/v_ShavingBeard_g23_c05 77 -Fencing/v_Fencing_g18_c03 27 -CuttingInKitchen/v_CuttingInKitchen_g19_c03 24 -Surfing/v_Surfing_g18_c04 87 -TennisSwing/v_TennisSwing_g12_c07 91 -ShavingBeard/v_ShavingBeard_g19_c04 77 -Hammering/v_Hammering_g11_c01 34 -Hammering/v_Hammering_g13_c05 34 -HandstandWalking/v_HandstandWalking_g14_c02 37 -PlayingSitar/v_PlayingSitar_g17_c01 64 -PlayingFlute/v_PlayingFlute_g19_c02 61 -BaseballPitch/v_BaseballPitch_g17_c01 6 -CricketShot/v_CricketShot_g08_c04 23 -PlayingGuitar/v_PlayingGuitar_g23_c04 62 -HulaHoop/v_HulaHoop_g17_c03 42 -CricketShot/v_CricketShot_g23_c05 23 -Rafting/v_Rafting_g21_c02 72 -Surfing/v_Surfing_g14_c01 87 -Biking/v_Biking_g08_c05 10 -WalkingWithDog/v_WalkingWithDog_g20_c07 97 -HorseRace/v_HorseRace_g10_c01 40 -Surfing/v_Surfing_g12_c01 87 -BlowDryHair/v_BlowDryHair_g19_c02 12 -Surfing/v_Surfing_g12_c04 87 -Nunchucks/v_Nunchucks_g14_c04 55 -Rowing/v_Rowing_g10_c06 75 -Punch/v_Punch_g22_c03 70 -TrampolineJumping/v_TrampolineJumping_g20_c01 93 -BabyCrawling/v_BabyCrawling_g22_c02 3 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c03 16 -Drumming/v_Drumming_g21_c07 26 -Billiards/v_Billiards_g08_c04 11 -BabyCrawling/v_BabyCrawling_g17_c04 3 -MilitaryParade/v_MilitaryParade_g13_c01 52 -Basketball/v_Basketball_g21_c02 7 -BrushingTeeth/v_BrushingTeeth_g17_c02 19 -IceDancing/v_IceDancing_g10_c06 43 -BasketballDunk/v_BasketballDunk_g19_c01 8 -HighJump/v_HighJump_g11_c04 39 -ThrowDiscus/v_ThrowDiscus_g19_c02 92 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c07 0 -Shotput/v_Shotput_g25_c01 78 -Drumming/v_Drumming_g21_c04 26 -PizzaTossing/v_PizzaTossing_g14_c01 57 -BodyWeightSquats/v_BodyWeightSquats_g09_c07 14 -Bowling/v_Bowling_g18_c03 15 -Swing/v_Swing_g08_c01 88 -BandMarching/v_BandMarching_g09_c06 5 -StillRings/v_StillRings_g25_c03 85 -Typing/v_Typing_g24_c01 94 -MoppingFloor/v_MoppingFloor_g13_c01 54 -CleanAndJerk/v_CleanAndJerk_g12_c03 20 -Kayaking/v_Kayaking_g16_c06 48 -FrisbeeCatch/v_FrisbeeCatch_g22_c04 30 -Rowing/v_Rowing_g21_c02 75 -PlayingGuitar/v_PlayingGuitar_g21_c01 62 -Nunchucks/v_Nunchucks_g25_c06 55 -GolfSwing/v_GolfSwing_g23_c07 32 -Punch/v_Punch_g16_c01 70 -TennisSwing/v_TennisSwing_g10_c06 91 -PushUps/v_PushUps_g18_c02 71 -TennisSwing/v_TennisSwing_g25_c03 91 -TennisSwing/v_TennisSwing_g09_c02 91 -JumpingJack/v_JumpingJack_g18_c01 46 -Knitting/v_Knitting_g08_c01 49 -Lunges/v_Lunges_g21_c03 51 -CliffDiving/v_CliffDiving_g20_c01 21 -HammerThrow/v_HammerThrow_g14_c03 35 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c02 73 -TennisSwing/v_TennisSwing_g21_c05 91 -YoYo/v_YoYo_g10_c01 100 -WalkingWithDog/v_WalkingWithDog_g12_c03 97 -Typing/v_Typing_g17_c03 94 -PlayingDaf/v_PlayingDaf_g15_c07 59 -Drumming/v_Drumming_g24_c02 26 -Rowing/v_Rowing_g19_c03 75 -ThrowDiscus/v_ThrowDiscus_g23_c02 92 -BandMarching/v_BandMarching_g16_c06 5 -HorseRiding/v_HorseRiding_g08_c01 41 -WritingOnBoard/v_WritingOnBoard_g20_c03 99 -Diving/v_Diving_g24_c02 25 -IceDancing/v_IceDancing_g09_c05 43 -Shotput/v_Shotput_g25_c02 78 -PlayingCello/v_PlayingCello_g17_c07 58 -FloorGymnastics/v_FloorGymnastics_g19_c04 29 -Diving/v_Diving_g15_c06 25 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c06 73 -Fencing/v_Fencing_g12_c01 27 -Drumming/v_Drumming_g17_c05 26 -Hammering/v_Hammering_g08_c02 34 -Swing/v_Swing_g21_c02 88 -PlayingDaf/v_PlayingDaf_g16_c06 59 -MilitaryParade/v_MilitaryParade_g08_c03 52 -HeadMassage/v_HeadMassage_g15_c02 38 -Billiards/v_Billiards_g08_c03 11 -SumoWrestling/v_SumoWrestling_g22_c02 86 -BabyCrawling/v_BabyCrawling_g11_c02 3 -HighJump/v_HighJump_g13_c02 39 -GolfSwing/v_GolfSwing_g09_c02 32 -MilitaryParade/v_MilitaryParade_g09_c01 52 -Archery/v_Archery_g17_c03 2 -BrushingTeeth/v_BrushingTeeth_g14_c04 19 -Rafting/v_Rafting_g21_c01 72 -LongJump/v_LongJump_g12_c04 50 -Bowling/v_Bowling_g12_c04 15 -HammerThrow/v_HammerThrow_g10_c02 35 -HighJump/v_HighJump_g20_c05 39 -HorseRiding/v_HorseRiding_g08_c05 41 -WalkingWithDog/v_WalkingWithDog_g19_c03 97 -BabyCrawling/v_BabyCrawling_g24_c05 3 -FrisbeeCatch/v_FrisbeeCatch_g09_c03 30 -Skijet/v_Skijet_g14_c04 81 -Kayaking/v_Kayaking_g16_c04 48 -Nunchucks/v_Nunchucks_g18_c02 55 -CliffDiving/v_CliffDiving_g19_c05 21 -PlayingDaf/v_PlayingDaf_g13_c02 59 -Diving/v_Diving_g19_c01 25 -HeadMassage/v_HeadMassage_g25_c06 38 -Fencing/v_Fencing_g11_c03 27 -BrushingTeeth/v_BrushingTeeth_g19_c03 19 -Basketball/v_Basketball_g16_c01 7 -PlayingGuitar/v_PlayingGuitar_g11_c07 62 -FieldHockeyPenalty/v_FieldHockeyPenalty_g11_c01 28 -SoccerJuggling/v_SoccerJuggling_g22_c06 83 -VolleyballSpiking/v_VolleyballSpiking_g16_c04 96 -SkyDiving/v_SkyDiving_g08_c02 82 -UnevenBars/v_UnevenBars_g25_c01 95 -Lunges/v_Lunges_g08_c03 51 -SkateBoarding/v_SkateBoarding_g13_c02 79 -PlayingPiano/v_PlayingPiano_g17_c05 63 -BreastStroke/v_BreastStroke_g24_c01 18 -MilitaryParade/v_MilitaryParade_g09_c05 52 -Bowling/v_Bowling_g24_c04 15 -YoYo/v_YoYo_g16_c02 100 -Bowling/v_Bowling_g13_c02 15 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c02 73 -HorseRace/v_HorseRace_g24_c01 40 -Fencing/v_Fencing_g22_c04 27 -SalsaSpin/v_SalsaSpin_g21_c05 76 -JumpingJack/v_JumpingJack_g12_c03 46 -PlayingCello/v_PlayingCello_g13_c01 58 -BenchPress/v_BenchPress_g12_c01 9 -Kayaking/v_Kayaking_g08_c04 48 -HorseRace/v_HorseRace_g18_c03 40 -TrampolineJumping/v_TrampolineJumping_g16_c04 93 -PlayingDaf/v_PlayingDaf_g16_c05 59 -SkateBoarding/v_SkateBoarding_g14_c03 79 -BandMarching/v_BandMarching_g10_c02 5 -Rafting/v_Rafting_g08_c03 72 -Swing/v_Swing_g25_c03 88 -IceDancing/v_IceDancing_g21_c07 43 -BandMarching/v_BandMarching_g24_c05 5 -StillRings/v_StillRings_g25_c01 85 -PushUps/v_PushUps_g21_c02 71 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c05 28 -HighJump/v_HighJump_g24_c01 39 -PlayingDaf/v_PlayingDaf_g21_c03 59 -PoleVault/v_PoleVault_g19_c01 67 -Skijet/v_Skijet_g23_c01 81 -PlayingCello/v_PlayingCello_g15_c05 58 -HeadMassage/v_HeadMassage_g18_c05 38 -Fencing/v_Fencing_g23_c02 27 -RopeClimbing/v_RopeClimbing_g25_c03 74 -PlayingFlute/v_PlayingFlute_g14_c01 61 -Typing/v_Typing_g18_c01 94 -JugglingBalls/v_JugglingBalls_g25_c04 45 -PlayingSitar/v_PlayingSitar_g11_c07 64 -CliffDiving/v_CliffDiving_g12_c04 21 -BenchPress/v_BenchPress_g24_c05 9 -SumoWrestling/v_SumoWrestling_g17_c01 86 -TableTennisShot/v_TableTennisShot_g10_c02 89 -Punch/v_Punch_g15_c04 70 -JumpRope/v_JumpRope_g15_c06 47 -YoYo/v_YoYo_g13_c05 100 -BabyCrawling/v_BabyCrawling_g25_c05 3 -Basketball/v_Basketball_g18_c05 7 -RopeClimbing/v_RopeClimbing_g11_c01 74 -Knitting/v_Knitting_g17_c01 49 -PlayingDaf/v_PlayingDaf_g17_c01 59 -BasketballDunk/v_BasketballDunk_g20_c05 8 -PlayingViolin/v_PlayingViolin_g09_c01 66 -CliffDiving/v_CliffDiving_g17_c02 21 -Billiards/v_Billiards_g24_c03 11 -IceDancing/v_IceDancing_g21_c02 43 -Rowing/v_Rowing_g19_c05 75 -StillRings/v_StillRings_g10_c02 85 -CricketShot/v_CricketShot_g18_c04 23 -Nunchucks/v_Nunchucks_g24_c02 55 -Billiards/v_Billiards_g25_c06 11 -ParallelBars/v_ParallelBars_g11_c02 56 -SoccerPenalty/v_SoccerPenalty_g24_c04 84 -VolleyballSpiking/v_VolleyballSpiking_g23_c02 96 -TrampolineJumping/v_TrampolineJumping_g10_c04 93 -BalanceBeam/v_BalanceBeam_g18_c02 4 -HulaHoop/v_HulaHoop_g13_c04 42 -BodyWeightSquats/v_BodyWeightSquats_g12_c03 14 -CleanAndJerk/v_CleanAndJerk_g14_c06 20 -PushUps/v_PushUps_g19_c02 71 -Biking/v_Biking_g15_c05 10 -PlayingSitar/v_PlayingSitar_g15_c04 64 -SkateBoarding/v_SkateBoarding_g16_c04 79 -FloorGymnastics/v_FloorGymnastics_g17_c02 29 -FrontCrawl/v_FrontCrawl_g16_c02 31 -TaiChi/v_TaiChi_g22_c01 90 -CricketShot/v_CricketShot_g16_c06 23 -JumpRope/v_JumpRope_g11_c05 47 -CricketBowling/v_CricketBowling_g19_c01 22 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c06 16 -Punch/v_Punch_g25_c01 70 -CricketShot/v_CricketShot_g09_c07 23 -Shotput/v_Shotput_g21_c04 78 -WritingOnBoard/v_WritingOnBoard_g25_c07 99 -Fencing/v_Fencing_g08_c01 27 -CuttingInKitchen/v_CuttingInKitchen_g09_c03 24 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c01 73 -Skiing/v_Skiing_g16_c04 80 -JumpingJack/v_JumpingJack_g25_c04 46 -HeadMassage/v_HeadMassage_g10_c03 38 -PlayingCello/v_PlayingCello_g16_c03 58 -PlayingDhol/v_PlayingDhol_g21_c01 60 -WritingOnBoard/v_WritingOnBoard_g24_c04 99 -RopeClimbing/v_RopeClimbing_g18_c04 74 -Shotput/v_Shotput_g18_c01 78 -PizzaTossing/v_PizzaTossing_g11_c02 57 -TableTennisShot/v_TableTennisShot_g11_c04 89 -CricketBowling/v_CricketBowling_g20_c03 22 -CuttingInKitchen/v_CuttingInKitchen_g11_c01 24 -HighJump/v_HighJump_g08_c02 39 -ThrowDiscus/v_ThrowDiscus_g21_c06 92 -WritingOnBoard/v_WritingOnBoard_g24_c02 99 -HeadMassage/v_HeadMassage_g22_c06 38 -PoleVault/v_PoleVault_g24_c04 67 -Drumming/v_Drumming_g21_c03 26 -BaseballPitch/v_BaseballPitch_g08_c07 6 -TaiChi/v_TaiChi_g17_c02 90 -TrampolineJumping/v_TrampolineJumping_g17_c04 93 -Haircut/v_Haircut_g08_c02 33 -BaseballPitch/v_BaseballPitch_g08_c06 6 -Archery/v_Archery_g12_c02 2 -PlayingGuitar/v_PlayingGuitar_g20_c05 62 -YoYo/v_YoYo_g17_c02 100 -HighJump/v_HighJump_g17_c04 39 -MoppingFloor/v_MoppingFloor_g12_c04 54 -SoccerJuggling/v_SoccerJuggling_g12_c03 83 -ApplyEyeMakeup/v_ApplyEyeMakeup_g22_c02 0 -PoleVault/v_PoleVault_g15_c01 67 -IceDancing/v_IceDancing_g18_c02 43 -BaseballPitch/v_BaseballPitch_g11_c03 6 -PushUps/v_PushUps_g12_c04 71 -SumoWrestling/v_SumoWrestling_g21_c01 86 -HandstandWalking/v_HandstandWalking_g18_c02 37 -HorseRace/v_HorseRace_g22_c04 40 -PlayingDhol/v_PlayingDhol_g24_c04 60 -Archery/v_Archery_g20_c07 2 -PizzaTossing/v_PizzaTossing_g14_c03 57 -TennisSwing/v_TennisSwing_g20_c01 91 -BodyWeightSquats/v_BodyWeightSquats_g20_c03 14 -PoleVault/v_PoleVault_g12_c03 67 -SkyDiving/v_SkyDiving_g14_c03 82 -Punch/v_Punch_g19_c04 70 -YoYo/v_YoYo_g14_c01 100 -CricketBowling/v_CricketBowling_g22_c02 22 -HeadMassage/v_HeadMassage_g21_c01 38 -Lunges/v_Lunges_g11_c03 51 -HammerThrow/v_HammerThrow_g10_c05 35 -StillRings/v_StillRings_g18_c03 85 -BlowDryHair/v_BlowDryHair_g15_c02 12 -Rafting/v_Rafting_g12_c04 72 -BoxingPunchingBag/v_BoxingPunchingBag_g11_c03 16 -PlayingCello/v_PlayingCello_g23_c04 58 -Archery/v_Archery_g14_c04 2 -Drumming/v_Drumming_g08_c04 26 -SoccerJuggling/v_SoccerJuggling_g11_c05 83 -SalsaSpin/v_SalsaSpin_g08_c03 76 -HeadMassage/v_HeadMassage_g21_c04 38 -BandMarching/v_BandMarching_g25_c01 5 -BlowDryHair/v_BlowDryHair_g22_c03 12 -Drumming/v_Drumming_g10_c06 26 -CricketShot/v_CricketShot_g13_c01 23 -FloorGymnastics/v_FloorGymnastics_g18_c01 29 -UnevenBars/v_UnevenBars_g25_c03 95 -Shotput/v_Shotput_g09_c04 78 -PoleVault/v_PoleVault_g14_c04 67 -Billiards/v_Billiards_g20_c03 11 -MoppingFloor/v_MoppingFloor_g16_c01 54 -HulaHoop/v_HulaHoop_g08_c05 42 -CricketShot/v_CricketShot_g12_c06 23 -HandstandPushups/v_HandStandPushups_g24_c04 36 -LongJump/v_LongJump_g19_c04 50 -PlayingDhol/v_PlayingDhol_g08_c04 60 -BalanceBeam/v_BalanceBeam_g20_c02 4 -TaiChi/v_TaiChi_g25_c04 90 -ShavingBeard/v_ShavingBeard_g08_c05 77 -FieldHockeyPenalty/v_FieldHockeyPenalty_g21_c03 28 -PlayingDhol/v_PlayingDhol_g16_c02 60 -TaiChi/v_TaiChi_g10_c01 90 -JavelinThrow/v_JavelinThrow_g19_c04 44 -Haircut/v_Haircut_g11_c03 33 -Nunchucks/v_Nunchucks_g24_c03 55 -HorseRiding/v_HorseRiding_g24_c06 41 -PlayingTabla/v_PlayingTabla_g10_c01 65 -PommelHorse/v_PommelHorse_g20_c05 68 -HandstandPushups/v_HandStandPushups_g09_c03 36 -SalsaSpin/v_SalsaSpin_g24_c04 76 -Surfing/v_Surfing_g08_c02 87 -JavelinThrow/v_JavelinThrow_g21_c03 44 -HeadMassage/v_HeadMassage_g15_c05 38 -HandstandPushups/v_HandStandPushups_g13_c01 36 -Skijet/v_Skijet_g11_c04 81 -Lunges/v_Lunges_g10_c06 51 -HandstandPushups/v_HandStandPushups_g17_c03 36 -CricketShot/v_CricketShot_g20_c07 23 -IceDancing/v_IceDancing_g08_c07 43 -Skiing/v_Skiing_g13_c02 80 -JavelinThrow/v_JavelinThrow_g16_c02 44 -HammerThrow/v_HammerThrow_g18_c05 35 -YoYo/v_YoYo_g13_c04 100 -Kayaking/v_Kayaking_g23_c01 48 -Drumming/v_Drumming_g12_c07 26 -ParallelBars/v_ParallelBars_g14_c04 56 -BabyCrawling/v_BabyCrawling_g12_c06 3 -VolleyballSpiking/v_VolleyballSpiking_g25_c01 96 -PlayingCello/v_PlayingCello_g12_c02 58 -WalkingWithDog/v_WalkingWithDog_g08_c04 97 -FrontCrawl/v_FrontCrawl_g21_c06 31 -PlayingSitar/v_PlayingSitar_g21_c06 64 -Knitting/v_Knitting_g19_c01 49 -Skiing/v_Skiing_g22_c03 80 -Haircut/v_Haircut_g20_c07 33 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c04 16 -VolleyballSpiking/v_VolleyballSpiking_g09_c04 96 -Swing/v_Swing_g14_c01 88 -PlayingSitar/v_PlayingSitar_g10_c06 64 -BaseballPitch/v_BaseballPitch_g13_c05 6 -PlayingCello/v_PlayingCello_g08_c03 58 -TennisSwing/v_TennisSwing_g22_c05 91 -PlayingDaf/v_PlayingDaf_g18_c06 59 -FrisbeeCatch/v_FrisbeeCatch_g10_c01 30 -Punch/v_Punch_g10_c03 70 -PlayingCello/v_PlayingCello_g16_c04 58 -Basketball/v_Basketball_g23_c03 7 -BreastStroke/v_BreastStroke_g25_c01 18 -PullUps/v_PullUps_g24_c04 69 -Kayaking/v_Kayaking_g19_c01 48 -YoYo/v_YoYo_g12_c02 100 -HandstandWalking/v_HandstandWalking_g09_c04 37 -MilitaryParade/v_MilitaryParade_g21_c01 52 -PlayingCello/v_PlayingCello_g19_c02 58 -PlayingGuitar/v_PlayingGuitar_g16_c06 62 -Billiards/v_Billiards_g19_c06 11 -PlayingTabla/v_PlayingTabla_g21_c02 65 -Biking/v_Biking_g25_c04 10 -GolfSwing/v_GolfSwing_g17_c05 32 -TrampolineJumping/v_TrampolineJumping_g19_c04 93 -CuttingInKitchen/v_CuttingInKitchen_g25_c03 24 -Skiing/v_Skiing_g25_c01 80 -BreastStroke/v_BreastStroke_g08_c03 18 -BandMarching/v_BandMarching_g12_c02 5 -BrushingTeeth/v_BrushingTeeth_g23_c04 19 -CricketShot/v_CricketShot_g15_c07 23 -FrisbeeCatch/v_FrisbeeCatch_g16_c02 30 -HorseRiding/v_HorseRiding_g24_c04 41 -Swing/v_Swing_g09_c03 88 -BrushingTeeth/v_BrushingTeeth_g24_c02 19 -HammerThrow/v_HammerThrow_g12_c06 35 -Skiing/v_Skiing_g14_c01 80 -BlowingCandles/v_BlowingCandles_g24_c02 13 -Surfing/v_Surfing_g15_c05 87 -SoccerJuggling/v_SoccerJuggling_g15_c01 83 -WritingOnBoard/v_WritingOnBoard_g18_c01 99 -FrisbeeCatch/v_FrisbeeCatch_g16_c03 30 -FrontCrawl/v_FrontCrawl_g20_c06 31 -HammerThrow/v_HammerThrow_g09_c04 35 -Drumming/v_Drumming_g20_c03 26 -WalkingWithDog/v_WalkingWithDog_g16_c03 97 -TennisSwing/v_TennisSwing_g19_c01 91 -JugglingBalls/v_JugglingBalls_g17_c01 45 -Rafting/v_Rafting_g09_c04 72 -HighJump/v_HighJump_g23_c05 39 -SoccerPenalty/v_SoccerPenalty_g12_c06 84 -IceDancing/v_IceDancing_g21_c01 43 -HandstandPushups/v_HandStandPushups_g22_c03 36 -FloorGymnastics/v_FloorGymnastics_g22_c03 29 -BandMarching/v_BandMarching_g22_c04 5 -VolleyballSpiking/v_VolleyballSpiking_g13_c06 96 -MilitaryParade/v_MilitaryParade_g18_c04 52 -HorseRace/v_HorseRace_g21_c04 40 -PlayingFlute/v_PlayingFlute_g09_c04 61 -SoccerPenalty/v_SoccerPenalty_g09_c02 84 -Bowling/v_Bowling_g12_c03 15 -FrisbeeCatch/v_FrisbeeCatch_g25_c04 30 -TennisSwing/v_TennisSwing_g17_c06 91 -Knitting/v_Knitting_g10_c05 49 -VolleyballSpiking/v_VolleyballSpiking_g09_c01 96 -CricketBowling/v_CricketBowling_g11_c06 22 -BabyCrawling/v_BabyCrawling_g24_c02 3 -ApplyEyeMakeup/v_ApplyEyeMakeup_g22_c03 0 -PommelHorse/v_PommelHorse_g12_c03 68 -Haircut/v_Haircut_g23_c05 33 -Skiing/v_Skiing_g20_c04 80 -SoccerJuggling/v_SoccerJuggling_g23_c05 83 -ThrowDiscus/v_ThrowDiscus_g15_c02 92 -PlayingGuitar/v_PlayingGuitar_g14_c03 62 -Bowling/v_Bowling_g20_c06 15 -BandMarching/v_BandMarching_g09_c04 5 -PlayingDhol/v_PlayingDhol_g25_c02 60 -ThrowDiscus/v_ThrowDiscus_g10_c01 92 -PullUps/v_PullUps_g24_c03 69 -CricketBowling/v_CricketBowling_g13_c01 22 -Mixing/v_Mixing_g22_c03 53 -Drumming/v_Drumming_g15_c01 26 -StillRings/v_StillRings_g11_c02 85 -Diving/v_Diving_g16_c01 25 -Bowling/v_Bowling_g14_c03 15 -PommelHorse/v_PommelHorse_g20_c03 68 -SumoWrestling/v_SumoWrestling_g09_c03 86 -Knitting/v_Knitting_g10_c04 49 -ThrowDiscus/v_ThrowDiscus_g11_c05 92 -BaseballPitch/v_BaseballPitch_g09_c07 6 -LongJump/v_LongJump_g14_c05 50 -PlayingSitar/v_PlayingSitar_g22_c03 64 -RopeClimbing/v_RopeClimbing_g13_c04 74 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c06 16 -SkateBoarding/v_SkateBoarding_g12_c05 79 -Archery/v_Archery_g11_c01 2 -PlayingSitar/v_PlayingSitar_g14_c03 64 -Knitting/v_Knitting_g13_c02 49 -Archery/v_Archery_g23_c05 2 -ThrowDiscus/v_ThrowDiscus_g19_c04 92 -HulaHoop/v_HulaHoop_g23_c02 42 -CricketBowling/v_CricketBowling_g21_c04 22 -IceDancing/v_IceDancing_g10_c07 43 -Rowing/v_Rowing_g20_c02 75 -TaiChi/v_TaiChi_g22_c04 90 -PlayingDaf/v_PlayingDaf_g12_c04 59 -BabyCrawling/v_BabyCrawling_g17_c05 3 -PlayingCello/v_PlayingCello_g22_c03 58 -PlayingDaf/v_PlayingDaf_g20_c04 59 -Drumming/v_Drumming_g16_c06 26 -BenchPress/v_BenchPress_g18_c06 9 -IceDancing/v_IceDancing_g24_c03 43 -CricketShot/v_CricketShot_g09_c05 23 -BlowDryHair/v_BlowDryHair_g14_c03 12 -TableTennisShot/v_TableTennisShot_g12_c01 89 -Skijet/v_Skijet_g17_c02 81 -Drumming/v_Drumming_g24_c06 26 -Rafting/v_Rafting_g10_c03 72 -HorseRiding/v_HorseRiding_g21_c06 41 -Skijet/v_Skijet_g18_c03 81 -RockClimbingIndoor/v_RockClimbingIndoor_g14_c05 73 -Biking/v_Biking_g14_c04 10 -BoxingSpeedBag/v_BoxingSpeedBag_g18_c01 17 -YoYo/v_YoYo_g24_c01 100 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c02 16 -Swing/v_Swing_g25_c02 88 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c01 17 -JumpRope/v_JumpRope_g17_c03 47 -TaiChi/v_TaiChi_g22_c03 90 -Shotput/v_Shotput_g08_c04 78 -PoleVault/v_PoleVault_g16_c07 67 -FrisbeeCatch/v_FrisbeeCatch_g25_c03 30 -PoleVault/v_PoleVault_g17_c06 67 -PlayingFlute/v_PlayingFlute_g10_c06 61 -JumpRope/v_JumpRope_g16_c07 47 -CricketBowling/v_CricketBowling_g20_c05 22 -Archery/v_Archery_g20_c02 2 -Surfing/v_Surfing_g17_c04 87 -TableTennisShot/v_TableTennisShot_g17_c02 89 -WalkingWithDog/v_WalkingWithDog_g24_c03 97 -SoccerJuggling/v_SoccerJuggling_g12_c06 83 -Biking/v_Biking_g15_c01 10 -Diving/v_Diving_g24_c06 25 -PlayingGuitar/v_PlayingGuitar_g24_c01 62 -MilitaryParade/v_MilitaryParade_g23_c03 52 -FrisbeeCatch/v_FrisbeeCatch_g21_c03 30 -CricketBowling/v_CricketBowling_g08_c02 22 -Hammering/v_Hammering_g17_c03 34 -Fencing/v_Fencing_g15_c02 27 -SalsaSpin/v_SalsaSpin_g10_c06 76 -Surfing/v_Surfing_g25_c01 87 -Archery/v_Archery_g18_c05 2 -BaseballPitch/v_BaseballPitch_g16_c05 6 -BrushingTeeth/v_BrushingTeeth_g15_c03 19 -WritingOnBoard/v_WritingOnBoard_g16_c04 99 -ShavingBeard/v_ShavingBeard_g21_c06 77 -Archery/v_Archery_g25_c05 2 -HandstandWalking/v_HandstandWalking_g21_c04 37 -WritingOnBoard/v_WritingOnBoard_g21_c03 99 -Surfing/v_Surfing_g22_c02 87 -Skijet/v_Skijet_g17_c03 81 -CricketBowling/v_CricketBowling_g13_c04 22 -FrisbeeCatch/v_FrisbeeCatch_g17_c03 30 -TrampolineJumping/v_TrampolineJumping_g20_c03 93 -HandstandPushups/v_HandStandPushups_g10_c04 36 -Typing/v_Typing_g11_c04 94 -BlowingCandles/v_BlowingCandles_g24_c03 13 -PlayingFlute/v_PlayingFlute_g15_c04 61 -BandMarching/v_BandMarching_g19_c01 5 -Archery/v_Archery_g22_c01 2 -TennisSwing/v_TennisSwing_g17_c07 91 -Hammering/v_Hammering_g13_c02 34 -FloorGymnastics/v_FloorGymnastics_g17_c06 29 -JumpRope/v_JumpRope_g17_c04 47 -Typing/v_Typing_g10_c06 94 -WritingOnBoard/v_WritingOnBoard_g14_c01 99 -Knitting/v_Knitting_g12_c01 49 -HammerThrow/v_HammerThrow_g17_c04 35 -BreastStroke/v_BreastStroke_g11_c04 18 -JumpRope/v_JumpRope_g18_c07 47 -LongJump/v_LongJump_g10_c01 50 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c01 16 -PlayingSitar/v_PlayingSitar_g09_c02 64 -HammerThrow/v_HammerThrow_g21_c04 35 -StillRings/v_StillRings_g10_c03 85 -BenchPress/v_BenchPress_g21_c04 9 -Archery/v_Archery_g10_c06 2 -Surfing/v_Surfing_g23_c01 87 -SalsaSpin/v_SalsaSpin_g18_c02 76 -PlayingFlute/v_PlayingFlute_g08_c06 61 -PizzaTossing/v_PizzaTossing_g12_c03 57 -BandMarching/v_BandMarching_g20_c01 5 -WalkingWithDog/v_WalkingWithDog_g19_c04 97 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c02 17 -Archery/v_Archery_g25_c06 2 -SkyDiving/v_SkyDiving_g15_c01 82 -Mixing/v_Mixing_g17_c04 53 -Diving/v_Diving_g10_c01 25 -Surfing/v_Surfing_g22_c01 87 -Rowing/v_Rowing_g19_c01 75 -PlayingSitar/v_PlayingSitar_g20_c01 64 -BasketballDunk/v_BasketballDunk_g24_c02 8 -CliffDiving/v_CliffDiving_g12_c05 21 -CricketBowling/v_CricketBowling_g17_c05 22 -Surfing/v_Surfing_g16_c06 87 -SumoWrestling/v_SumoWrestling_g21_c04 86 -Surfing/v_Surfing_g08_c01 87 -ShavingBeard/v_ShavingBeard_g14_c04 77 -PoleVault/v_PoleVault_g16_c05 67 -SumoWrestling/v_SumoWrestling_g20_c04 86 -SumoWrestling/v_SumoWrestling_g11_c01 86 -HandstandPushups/v_HandStandPushups_g18_c02 36 -TrampolineJumping/v_TrampolineJumping_g11_c05 93 -Punch/v_Punch_g18_c05 70 -CricketBowling/v_CricketBowling_g18_c02 22 -Rafting/v_Rafting_g16_c04 72 -Mixing/v_Mixing_g12_c02 53 -SkateBoarding/v_SkateBoarding_g25_c02 79 -BabyCrawling/v_BabyCrawling_g25_c01 3 -PlayingPiano/v_PlayingPiano_g09_c03 63 -CleanAndJerk/v_CleanAndJerk_g16_c04 20 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c05 16 -StillRings/v_StillRings_g08_c03 85 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c05 73 -BrushingTeeth/v_BrushingTeeth_g13_c02 19 -PlayingPiano/v_PlayingPiano_g21_c03 63 -Billiards/v_Billiards_g12_c04 11 -JavelinThrow/v_JavelinThrow_g19_c01 44 -Mixing/v_Mixing_g11_c01 53 -ShavingBeard/v_ShavingBeard_g20_c04 77 -BlowDryHair/v_BlowDryHair_g21_c01 12 -PullUps/v_PullUps_g10_c01 69 -GolfSwing/v_GolfSwing_g16_c01 32 -BaseballPitch/v_BaseballPitch_g22_c01 6 -JavelinThrow/v_JavelinThrow_g18_c03 44 -Fencing/v_Fencing_g16_c04 27 -FrontCrawl/v_FrontCrawl_g11_c05 31 -HandstandPushups/v_HandStandPushups_g16_c03 36 -BandMarching/v_BandMarching_g24_c06 5 -SoccerPenalty/v_SoccerPenalty_g24_c01 84 -PommelHorse/v_PommelHorse_g11_c03 68 -PlayingDaf/v_PlayingDaf_g16_c03 59 -HandstandWalking/v_HandstandWalking_g14_c04 37 -HighJump/v_HighJump_g13_c04 39 -IceDancing/v_IceDancing_g20_c02 43 -BodyWeightSquats/v_BodyWeightSquats_g14_c01 14 -BreastStroke/v_BreastStroke_g13_c03 18 -SumoWrestling/v_SumoWrestling_g20_c02 86 -PullUps/v_PullUps_g16_c02 69 -FieldHockeyPenalty/v_FieldHockeyPenalty_g11_c04 28 -HorseRace/v_HorseRace_g15_c04 40 -Skiing/v_Skiing_g08_c06 80 -Shotput/v_Shotput_g16_c04 78 -ShavingBeard/v_ShavingBeard_g18_c05 77 -HammerThrow/v_HammerThrow_g16_c01 35 -JumpingJack/v_JumpingJack_g23_c02 46 -Swing/v_Swing_g13_c01 88 -Basketball/v_Basketball_g20_c07 7 -HandstandWalking/v_HandstandWalking_g24_c06 37 -JugglingBalls/v_JugglingBalls_g09_c01 45 -PullUps/v_PullUps_g14_c03 69 -BlowDryHair/v_BlowDryHair_g15_c04 12 -CliffDiving/v_CliffDiving_g08_c01 21 -PoleVault/v_PoleVault_g10_c03 67 -Lunges/v_Lunges_g25_c03 51 -Skijet/v_Skijet_g24_c02 81 -PlayingDhol/v_PlayingDhol_g09_c04 60 -Swing/v_Swing_g24_c04 88 -FrontCrawl/v_FrontCrawl_g11_c01 31 -Drumming/v_Drumming_g12_c01 26 -BaseballPitch/v_BaseballPitch_g24_c01 6 -HeadMassage/v_HeadMassage_g09_c02 38 -TableTennisShot/v_TableTennisShot_g09_c06 89 -Bowling/v_Bowling_g08_c07 15 -Rowing/v_Rowing_g15_c04 75 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c03 17 -ThrowDiscus/v_ThrowDiscus_g13_c05 92 -PlayingViolin/v_PlayingViolin_g11_c01 66 -PlayingFlute/v_PlayingFlute_g24_c02 61 -Hammering/v_Hammering_g09_c01 34 -Punch/v_Punch_g23_c02 70 -CleanAndJerk/v_CleanAndJerk_g14_c03 20 -Kayaking/v_Kayaking_g14_c01 48 -CricketBowling/v_CricketBowling_g10_c03 22 -MoppingFloor/v_MoppingFloor_g21_c03 54 -ApplyLipstick/v_ApplyLipstick_g22_c04 1 -SkateBoarding/v_SkateBoarding_g15_c06 79 -HandstandPushups/v_HandStandPushups_g23_c03 36 -Archery/v_Archery_g18_c04 2 -HandstandPushups/v_HandStandPushups_g17_c02 36 -Skiing/v_Skiing_g13_c07 80 -Punch/v_Punch_g20_c03 70 -SoccerJuggling/v_SoccerJuggling_g23_c03 83 -HighJump/v_HighJump_g21_c01 39 -BreastStroke/v_BreastStroke_g11_c03 18 -IceDancing/v_IceDancing_g17_c02 43 -StillRings/v_StillRings_g15_c01 85 -HammerThrow/v_HammerThrow_g08_c05 35 -Kayaking/v_Kayaking_g09_c04 48 -SoccerJuggling/v_SoccerJuggling_g22_c05 83 -PlayingGuitar/v_PlayingGuitar_g16_c02 62 -WalkingWithDog/v_WalkingWithDog_g23_c01 97 -ThrowDiscus/v_ThrowDiscus_g11_c04 92 -StillRings/v_StillRings_g15_c02 85 -CleanAndJerk/v_CleanAndJerk_g12_c05 20 -WallPushups/v_WallPushups_g10_c01 98 -PlayingDaf/v_PlayingDaf_g25_c07 59 -Rowing/v_Rowing_g13_c07 75 -WritingOnBoard/v_WritingOnBoard_g23_c02 99 -CliffDiving/v_CliffDiving_g24_c03 21 -RockClimbingIndoor/v_RockClimbingIndoor_g16_c04 73 -JumpingJack/v_JumpingJack_g11_c03 46 -HammerThrow/v_HammerThrow_g20_c01 35 -VolleyballSpiking/v_VolleyballSpiking_g17_c04 96 -GolfSwing/v_GolfSwing_g20_c03 32 -PlayingTabla/v_PlayingTabla_g08_c04 65 -Shotput/v_Shotput_g16_c01 78 -PizzaTossing/v_PizzaTossing_g08_c01 57 -FloorGymnastics/v_FloorGymnastics_g16_c03 29 -BodyWeightSquats/v_BodyWeightSquats_g13_c02 14 -Nunchucks/v_Nunchucks_g16_c02 55 -Diving/v_Diving_g18_c01 25 -Haircut/v_Haircut_g14_c03 33 -HighJump/v_HighJump_g24_c03 39 -JugglingBalls/v_JugglingBalls_g15_c02 45 -FrontCrawl/v_FrontCrawl_g11_c03 31 -BenchPress/v_BenchPress_g19_c04 9 -JugglingBalls/v_JugglingBalls_g08_c02 45 -HandstandPushups/v_HandStandPushups_g13_c04 36 -ThrowDiscus/v_ThrowDiscus_g19_c03 92 -SumoWrestling/v_SumoWrestling_g20_c01 86 -BasketballDunk/v_BasketballDunk_g24_c04 8 -HandstandPushups/v_HandStandPushups_g15_c03 36 -ThrowDiscus/v_ThrowDiscus_g18_c04 92 -PlayingSitar/v_PlayingSitar_g19_c01 64 -ShavingBeard/v_ShavingBeard_g12_c04 77 -Surfing/v_Surfing_g20_c03 87 -PullUps/v_PullUps_g17_c02 69 -Biking/v_Biking_g18_c02 10 -SkyDiving/v_SkyDiving_g11_c02 82 -SoccerPenalty/v_SoccerPenalty_g13_c01 84 -LongJump/v_LongJump_g22_c02 50 -PlayingPiano/v_PlayingPiano_g17_c06 63 -PlayingSitar/v_PlayingSitar_g11_c04 64 -FloorGymnastics/v_FloorGymnastics_g20_c01 29 -Surfing/v_Surfing_g15_c03 87 -Lunges/v_Lunges_g11_c07 51 -Mixing/v_Mixing_g12_c06 53 -Drumming/v_Drumming_g18_c03 26 -Shotput/v_Shotput_g15_c06 78 -SkateBoarding/v_SkateBoarding_g08_c02 79 -PushUps/v_PushUps_g14_c02 71 -BlowingCandles/v_BlowingCandles_g15_c04 13 -Skiing/v_Skiing_g23_c03 80 -BreastStroke/v_BreastStroke_g14_c04 18 -ShavingBeard/v_ShavingBeard_g14_c05 77 -PlayingDaf/v_PlayingDaf_g23_c06 59 -HorseRiding/v_HorseRiding_g24_c02 41 -Mixing/v_Mixing_g22_c01 53 -Archery/v_Archery_g15_c05 2 -FrisbeeCatch/v_FrisbeeCatch_g10_c04 30 -MoppingFloor/v_MoppingFloor_g16_c02 54 -Surfing/v_Surfing_g11_c02 87 -PlayingFlute/v_PlayingFlute_g23_c05 61 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c01 16 -GolfSwing/v_GolfSwing_g21_c02 32 -ParallelBars/v_ParallelBars_g13_c01 56 -Bowling/v_Bowling_g20_c03 15 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c03 16 -PoleVault/v_PoleVault_g20_c02 67 -TrampolineJumping/v_TrampolineJumping_g22_c06 93 -StillRings/v_StillRings_g13_c03 85 -BenchPress/v_BenchPress_g24_c04 9 -PlayingCello/v_PlayingCello_g19_c04 58 -CricketShot/v_CricketShot_g25_c01 23 -CuttingInKitchen/v_CuttingInKitchen_g25_c05 24 -TennisSwing/v_TennisSwing_g24_c02 91 -Punch/v_Punch_g21_c02 70 -JumpRope/v_JumpRope_g08_c07 47 -HorseRiding/v_HorseRiding_g14_c02 41 -Drumming/v_Drumming_g11_c02 26 -SoccerJuggling/v_SoccerJuggling_g12_c04 83 -CricketBowling/v_CricketBowling_g13_c02 22 -Shotput/v_Shotput_g10_c01 78 -Lunges/v_Lunges_g11_c04 51 -Fencing/v_Fencing_g20_c04 27 -SoccerPenalty/v_SoccerPenalty_g10_c05 84 -HulaHoop/v_HulaHoop_g13_c01 42 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c06 16 -PlayingCello/v_PlayingCello_g13_c02 58 -Drumming/v_Drumming_g11_c01 26 -Drumming/v_Drumming_g21_c05 26 -Rowing/v_Rowing_g15_c05 75 -Diving/v_Diving_g13_c04 25 -TableTennisShot/v_TableTennisShot_g11_c03 89 -PlayingSitar/v_PlayingSitar_g23_c06 64 -ThrowDiscus/v_ThrowDiscus_g24_c01 92 -BreastStroke/v_BreastStroke_g22_c04 18 -Diving/v_Diving_g12_c07 25 -Diving/v_Diving_g12_c03 25 -SkyDiving/v_SkyDiving_g13_c03 82 -WalkingWithDog/v_WalkingWithDog_g10_c05 97 -Bowling/v_Bowling_g14_c05 15 -UnevenBars/v_UnevenBars_g10_c04 95 -MilitaryParade/v_MilitaryParade_g12_c02 52 -FrontCrawl/v_FrontCrawl_g20_c05 31 -PlayingPiano/v_PlayingPiano_g21_c01 63 -Rowing/v_Rowing_g10_c05 75 -IceDancing/v_IceDancing_g20_c06 43 -ThrowDiscus/v_ThrowDiscus_g20_c02 92 -HammerThrow/v_HammerThrow_g17_c02 35 -Kayaking/v_Kayaking_g08_c02 48 -CricketBowling/v_CricketBowling_g19_c04 22 -HandstandWalking/v_HandstandWalking_g24_c03 37 -TaiChi/v_TaiChi_g24_c04 90 -PommelHorse/v_PommelHorse_g11_c04 68 -HandstandWalking/v_HandstandWalking_g20_c01 37 -CricketShot/v_CricketShot_g19_c04 23 -PlayingViolin/v_PlayingViolin_g24_c02 66 -BaseballPitch/v_BaseballPitch_g23_c07 6 -BalanceBeam/v_BalanceBeam_g22_c03 4 -HorseRace/v_HorseRace_g15_c02 40 -HandstandPushups/v_HandStandPushups_g13_c07 36 -HeadMassage/v_HeadMassage_g17_c05 38 -Skijet/v_Skijet_g25_c02 81 -Fencing/v_Fencing_g25_c04 27 -BenchPress/v_BenchPress_g10_c03 9 -HandstandWalking/v_HandstandWalking_g13_c02 37 -GolfSwing/v_GolfSwing_g24_c04 32 -Billiards/v_Billiards_g16_c04 11 -SkyDiving/v_SkyDiving_g10_c05 82 -Billiards/v_Billiards_g24_c06 11 -SoccerPenalty/v_SoccerPenalty_g13_c04 84 -VolleyballSpiking/v_VolleyballSpiking_g13_c04 96 -JumpRope/v_JumpRope_g24_c03 47 -WallPushups/v_WallPushups_g13_c01 98 -BreastStroke/v_BreastStroke_g25_c03 18 -Mixing/v_Mixing_g11_c05 53 -Rowing/v_Rowing_g14_c03 75 -Biking/v_Biking_g22_c02 10 -Skiing/v_Skiing_g21_c02 80 -Drumming/v_Drumming_g17_c07 26 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c01 16 -MoppingFloor/v_MoppingFloor_g25_c02 54 -PoleVault/v_PoleVault_g18_c02 67 -PlayingDhol/v_PlayingDhol_g24_c02 60 -FrontCrawl/v_FrontCrawl_g23_c04 31 -HeadMassage/v_HeadMassage_g20_c01 38 -FrontCrawl/v_FrontCrawl_g25_c02 31 -BlowDryHair/v_BlowDryHair_g24_c01 12 -Rafting/v_Rafting_g09_c01 72 -HandstandPushups/v_HandStandPushups_g15_c05 36 -ParallelBars/v_ParallelBars_g15_c01 56 -Lunges/v_Lunges_g24_c02 51 -PizzaTossing/v_PizzaTossing_g20_c02 57 -Mixing/v_Mixing_g10_c03 53 -BaseballPitch/v_BaseballPitch_g10_c01 6 -CleanAndJerk/v_CleanAndJerk_g08_c04 20 -Typing/v_Typing_g24_c03 94 -ApplyEyeMakeup/v_ApplyEyeMakeup_g25_c03 0 -PushUps/v_PushUps_g22_c02 71 -CricketShot/v_CricketShot_g22_c01 23 -Rafting/v_Rafting_g21_c03 72 -Bowling/v_Bowling_g11_c07 15 -Nunchucks/v_Nunchucks_g19_c03 55 -Haircut/v_Haircut_g22_c05 33 -StillRings/v_StillRings_g10_c06 85 -HulaHoop/v_HulaHoop_g15_c01 42 -BlowDryHair/v_BlowDryHair_g11_c04 12 -PlayingSitar/v_PlayingSitar_g18_c02 64 -BreastStroke/v_BreastStroke_g21_c01 18 -BlowingCandles/v_BlowingCandles_g23_c01 13 -GolfSwing/v_GolfSwing_g10_c04 32 -ParallelBars/v_ParallelBars_g20_c03 56 -Fencing/v_Fencing_g15_c01 27 -MoppingFloor/v_MoppingFloor_g11_c01 54 -TaiChi/v_TaiChi_g18_c01 90 -PlayingTabla/v_PlayingTabla_g09_c05 65 -WallPushups/v_WallPushups_g21_c05 98 -HorseRiding/v_HorseRiding_g20_c02 41 -BandMarching/v_BandMarching_g23_c05 5 -ThrowDiscus/v_ThrowDiscus_g24_c02 92 -JugglingBalls/v_JugglingBalls_g11_c01 45 -ApplyLipstick/v_ApplyLipstick_g11_c02 1 -Archery/v_Archery_g14_c02 2 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c05 73 -GolfSwing/v_GolfSwing_g11_c04 32 -Rafting/v_Rafting_g17_c01 72 -CliffDiving/v_CliffDiving_g22_c03 21 -MoppingFloor/v_MoppingFloor_g11_c03 54 -Rafting/v_Rafting_g09_c03 72 -PoleVault/v_PoleVault_g20_c06 67 -BenchPress/v_BenchPress_g08_c04 9 -Mixing/v_Mixing_g21_c01 53 -Rowing/v_Rowing_g18_c03 75 -BlowingCandles/v_BlowingCandles_g25_c03 13 -PushUps/v_PushUps_g13_c03 71 -PizzaTossing/v_PizzaTossing_g23_c06 57 -WritingOnBoard/v_WritingOnBoard_g21_c05 99 -UnevenBars/v_UnevenBars_g11_c01 95 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c06 16 -BaseballPitch/v_BaseballPitch_g18_c03 6 -Hammering/v_Hammering_g14_c01 34 -BodyWeightSquats/v_BodyWeightSquats_g11_c03 14 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c03 16 -Rafting/v_Rafting_g16_c06 72 -Archery/v_Archery_g12_c03 2 -CliffDiving/v_CliffDiving_g14_c04 21 -PlayingPiano/v_PlayingPiano_g23_c03 63 -IceDancing/v_IceDancing_g17_c01 43 -BenchPress/v_BenchPress_g22_c03 9 -MilitaryParade/v_MilitaryParade_g11_c02 52 -PizzaTossing/v_PizzaTossing_g15_c01 57 -SkateBoarding/v_SkateBoarding_g20_c05 79 -BrushingTeeth/v_BrushingTeeth_g17_c01 19 -HandstandWalking/v_HandstandWalking_g12_c01 37 -PlayingDhol/v_PlayingDhol_g09_c07 60 -SkyDiving/v_SkyDiving_g11_c03 82 -PommelHorse/v_PommelHorse_g09_c02 68 -PoleVault/v_PoleVault_g10_c05 67 -WallPushups/v_WallPushups_g14_c01 98 -SalsaSpin/v_SalsaSpin_g11_c03 76 -Punch/v_Punch_g19_c01 70 -RopeClimbing/v_RopeClimbing_g23_c01 74 -BrushingTeeth/v_BrushingTeeth_g08_c02 19 -Shotput/v_Shotput_g12_c02 78 -Biking/v_Biking_g19_c04 10 -FloorGymnastics/v_FloorGymnastics_g21_c02 29 -CleanAndJerk/v_CleanAndJerk_g12_c07 20 -Mixing/v_Mixing_g10_c01 53 -GolfSwing/v_GolfSwing_g11_c02 32 -Knitting/v_Knitting_g23_c02 49 -Rafting/v_Rafting_g12_c03 72 -HorseRace/v_HorseRace_g19_c01 40 -BrushingTeeth/v_BrushingTeeth_g22_c06 19 -Nunchucks/v_Nunchucks_g15_c06 55 -BrushingTeeth/v_BrushingTeeth_g08_c05 19 -BodyWeightSquats/v_BodyWeightSquats_g09_c01 14 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c02 16 -TennisSwing/v_TennisSwing_g18_c04 91 -Basketball/v_Basketball_g22_c05 7 -PlayingGuitar/v_PlayingGuitar_g18_c02 62 -TableTennisShot/v_TableTennisShot_g14_c01 89 -Billiards/v_Billiards_g24_c04 11 -ApplyLipstick/v_ApplyLipstick_g08_c03 1 -BlowingCandles/v_BlowingCandles_g08_c01 13 -PlayingGuitar/v_PlayingGuitar_g20_c07 62 -Diving/v_Diving_g22_c05 25 -LongJump/v_LongJump_g10_c03 50 -TaiChi/v_TaiChi_g17_c04 90 -PlayingPiano/v_PlayingPiano_g09_c04 63 -Skiing/v_Skiing_g10_c05 80 -UnevenBars/v_UnevenBars_g24_c01 95 -SkateBoarding/v_SkateBoarding_g22_c01 79 -SalsaSpin/v_SalsaSpin_g17_c03 76 -Hammering/v_Hammering_g24_c03 34 -TableTennisShot/v_TableTennisShot_g25_c05 89 -Rafting/v_Rafting_g25_c03 72 -ApplyEyeMakeup/v_ApplyEyeMakeup_g19_c04 0 -SkateBoarding/v_SkateBoarding_g14_c04 79 -HammerThrow/v_HammerThrow_g23_c04 35 -BlowingCandles/v_BlowingCandles_g18_c02 13 -WallPushups/v_WallPushups_g09_c05 98 -Nunchucks/v_Nunchucks_g16_c01 55 -PlayingSitar/v_PlayingSitar_g20_c04 64 -PlayingCello/v_PlayingCello_g08_c02 58 -Surfing/v_Surfing_g16_c02 87 -LongJump/v_LongJump_g22_c04 50 -ShavingBeard/v_ShavingBeard_g09_c05 77 -PlayingDhol/v_PlayingDhol_g21_c07 60 -Punch/v_Punch_g11_c01 70 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c05 73 -Bowling/v_Bowling_g21_c01 15 -Rafting/v_Rafting_g13_c04 72 -HeadMassage/v_HeadMassage_g14_c02 38 -WalkingWithDog/v_WalkingWithDog_g10_c04 97 -Kayaking/v_Kayaking_g15_c07 48 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c04 16 -Nunchucks/v_Nunchucks_g21_c03 55 -LongJump/v_LongJump_g13_c05 50 -PlayingDaf/v_PlayingDaf_g10_c07 59 -MoppingFloor/v_MoppingFloor_g12_c02 54 -SoccerPenalty/v_SoccerPenalty_g08_c05 84 -Skijet/v_Skijet_g19_c01 81 -HorseRiding/v_HorseRiding_g20_c07 41 -HorseRace/v_HorseRace_g24_c05 40 -JumpRope/v_JumpRope_g23_c02 47 -Billiards/v_Billiards_g18_c01 11 -RockClimbingIndoor/v_RockClimbingIndoor_g11_c02 73 -HorseRace/v_HorseRace_g19_c05 40 -Hammering/v_Hammering_g24_c04 34 -GolfSwing/v_GolfSwing_g11_c07 32 -PlayingCello/v_PlayingCello_g15_c03 58 -Bowling/v_Bowling_g16_c01 15 -Hammering/v_Hammering_g21_c07 34 -SalsaSpin/v_SalsaSpin_g13_c01 76 -BlowingCandles/v_BlowingCandles_g22_c04 13 -Rowing/v_Rowing_g12_c01 75 -ApplyLipstick/v_ApplyLipstick_g24_c03 1 -CricketShot/v_CricketShot_g14_c03 23 -PlayingFlute/v_PlayingFlute_g22_c03 61 -PoleVault/v_PoleVault_g23_c05 67 -SkateBoarding/v_SkateBoarding_g11_c01 79 -SoccerPenalty/v_SoccerPenalty_g21_c01 84 -RopeClimbing/v_RopeClimbing_g12_c03 74 -PlayingCello/v_PlayingCello_g11_c03 58 -PlayingSitar/v_PlayingSitar_g13_c01 64 -SkyDiving/v_SkyDiving_g22_c03 82 -BasketballDunk/v_BasketballDunk_g25_c04 8 -Biking/v_Biking_g20_c05 10 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c06 17 -Diving/v_Diving_g14_c04 25 -SoccerPenalty/v_SoccerPenalty_g15_c05 84 -Punch/v_Punch_g14_c05 70 -HighJump/v_HighJump_g25_c02 39 -HorseRace/v_HorseRace_g24_c02 40 -TaiChi/v_TaiChi_g21_c03 90 -Mixing/v_Mixing_g15_c05 53 -CricketShot/v_CricketShot_g25_c07 23 -CuttingInKitchen/v_CuttingInKitchen_g10_c05 24 -BenchPress/v_BenchPress_g12_c02 9 -MilitaryParade/v_MilitaryParade_g16_c04 52 -Billiards/v_Billiards_g08_c06 11 -JumpingJack/v_JumpingJack_g12_c02 46 -HammerThrow/v_HammerThrow_g11_c06 35 -BabyCrawling/v_BabyCrawling_g15_c01 3 -Haircut/v_Haircut_g16_c03 33 -PlayingSitar/v_PlayingSitar_g25_c04 64 -ApplyLipstick/v_ApplyLipstick_g09_c03 1 -PlayingCello/v_PlayingCello_g25_c03 58 -Punch/v_Punch_g09_c03 70 -HandstandWalking/v_HandstandWalking_g17_c03 37 -TaiChi/v_TaiChi_g19_c02 90 -PoleVault/v_PoleVault_g16_c02 67 -BlowDryHair/v_BlowDryHair_g21_c05 12 -BandMarching/v_BandMarching_g18_c05 5 -PlayingSitar/v_PlayingSitar_g25_c01 64 -Billiards/v_Billiards_g15_c01 11 -Billiards/v_Billiards_g18_c04 11 -BodyWeightSquats/v_BodyWeightSquats_g20_c02 14 -GolfSwing/v_GolfSwing_g20_c04 32 -SumoWrestling/v_SumoWrestling_g08_c04 86 -CricketBowling/v_CricketBowling_g21_c02 22 -SkyDiving/v_SkyDiving_g20_c02 82 -WritingOnBoard/v_WritingOnBoard_g19_c02 99 -Skiing/v_Skiing_g16_c01 80 -TableTennisShot/v_TableTennisShot_g16_c04 89 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c02 0 -BalanceBeam/v_BalanceBeam_g19_c02 4 -TableTennisShot/v_TableTennisShot_g11_c01 89 -Haircut/v_Haircut_g14_c01 33 -ShavingBeard/v_ShavingBeard_g21_c03 77 -PlayingGuitar/v_PlayingGuitar_g16_c04 62 -PoleVault/v_PoleVault_g25_c01 67 -HorseRiding/v_HorseRiding_g18_c04 41 -Surfing/v_Surfing_g10_c05 87 -HeadMassage/v_HeadMassage_g25_c03 38 -PlayingDaf/v_PlayingDaf_g18_c01 59 -MoppingFloor/v_MoppingFloor_g21_c02 54 -JumpingJack/v_JumpingJack_g09_c01 46 -HorseRiding/v_HorseRiding_g13_c04 41 -CricketBowling/v_CricketBowling_g09_c07 22 -Knitting/v_Knitting_g25_c03 49 -JugglingBalls/v_JugglingBalls_g16_c03 45 -PlayingSitar/v_PlayingSitar_g14_c05 64 -BaseballPitch/v_BaseballPitch_g15_c05 6 -TennisSwing/v_TennisSwing_g16_c05 91 -ApplyLipstick/v_ApplyLipstick_g11_c03 1 -VolleyballSpiking/v_VolleyballSpiking_g08_c02 96 -PlayingSitar/v_PlayingSitar_g24_c05 64 -BlowDryHair/v_BlowDryHair_g24_c02 12 -Skiing/v_Skiing_g09_c03 80 -BreastStroke/v_BreastStroke_g20_c02 18 -BandMarching/v_BandMarching_g10_c03 5 -PlayingGuitar/v_PlayingGuitar_g13_c06 62 -JugglingBalls/v_JugglingBalls_g21_c03 45 -Biking/v_Biking_g12_c03 10 -GolfSwing/v_GolfSwing_g25_c06 32 -BlowingCandles/v_BlowingCandles_g16_c02 13 -JumpingJack/v_JumpingJack_g10_c03 46 -Biking/v_Biking_g16_c04 10 -BandMarching/v_BandMarching_g13_c02 5 -PlayingDhol/v_PlayingDhol_g17_c06 60 -Hammering/v_Hammering_g09_c04 34 -PlayingGuitar/v_PlayingGuitar_g17_c01 62 -BasketballDunk/v_BasketballDunk_g18_c02 8 -WritingOnBoard/v_WritingOnBoard_g13_c06 99 -BrushingTeeth/v_BrushingTeeth_g09_c01 19 -ParallelBars/v_ParallelBars_g23_c03 56 -ApplyLipstick/v_ApplyLipstick_g20_c01 1 -SoccerPenalty/v_SoccerPenalty_g19_c02 84 -Kayaking/v_Kayaking_g19_c02 48 -Skijet/v_Skijet_g22_c01 81 -SkateBoarding/v_SkateBoarding_g19_c02 79 -BalanceBeam/v_BalanceBeam_g23_c01 4 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c04 73 -Hammering/v_Hammering_g12_c02 34 -MilitaryParade/v_MilitaryParade_g17_c02 52 -ApplyLipstick/v_ApplyLipstick_g13_c02 1 -BodyWeightSquats/v_BodyWeightSquats_g23_c02 14 -Nunchucks/v_Nunchucks_g08_c02 55 -YoYo/v_YoYo_g15_c01 100 -Archery/v_Archery_g25_c02 2 -Nunchucks/v_Nunchucks_g12_c03 55 -HammerThrow/v_HammerThrow_g14_c05 35 -Nunchucks/v_Nunchucks_g09_c02 55 -Lunges/v_Lunges_g14_c02 51 -PlayingViolin/v_PlayingViolin_g15_c01 66 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c06 0 -Shotput/v_Shotput_g09_c01 78 -Bowling/v_Bowling_g23_c06 15 -BreastStroke/v_BreastStroke_g14_c03 18 -IceDancing/v_IceDancing_g25_c06 43 -SkateBoarding/v_SkateBoarding_g23_c01 79 -SalsaSpin/v_SalsaSpin_g22_c05 76 -HulaHoop/v_HulaHoop_g13_c02 42 -ParallelBars/v_ParallelBars_g22_c01 56 -BasketballDunk/v_BasketballDunk_g17_c05 8 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c03 17 -Hammering/v_Hammering_g12_c01 34 -FieldHockeyPenalty/v_FieldHockeyPenalty_g18_c01 28 -Rowing/v_Rowing_g17_c02 75 -Fencing/v_Fencing_g21_c01 27 -SoccerPenalty/v_SoccerPenalty_g17_c02 84 -FrontCrawl/v_FrontCrawl_g08_c04 31 -BenchPress/v_BenchPress_g19_c06 9 -HammerThrow/v_HammerThrow_g19_c07 35 -HighJump/v_HighJump_g10_c02 39 -FloorGymnastics/v_FloorGymnastics_g10_c01 29 -PushUps/v_PushUps_g09_c03 71 -Swing/v_Swing_g14_c05 88 -LongJump/v_LongJump_g09_c04 50 -MoppingFloor/v_MoppingFloor_g25_c04 54 -GolfSwing/v_GolfSwing_g19_c04 32 -VolleyballSpiking/v_VolleyballSpiking_g13_c07 96 -SumoWrestling/v_SumoWrestling_g23_c03 86 -PlayingFlute/v_PlayingFlute_g21_c03 61 -SoccerJuggling/v_SoccerJuggling_g18_c05 83 -PizzaTossing/v_PizzaTossing_g17_c03 57 -CricketBowling/v_CricketBowling_g18_c01 22 -PoleVault/v_PoleVault_g08_c04 67 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c02 16 -CleanAndJerk/v_CleanAndJerk_g25_c03 20 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c06 73 -Rafting/v_Rafting_g14_c03 72 -BabyCrawling/v_BabyCrawling_g18_c05 3 -Lunges/v_Lunges_g22_c02 51 -ParallelBars/v_ParallelBars_g19_c04 56 -Punch/v_Punch_g23_c05 70 -ApplyLipstick/v_ApplyLipstick_g12_c01 1 -Basketball/v_Basketball_g23_c04 7 -PlayingViolin/v_PlayingViolin_g13_c02 66 -HeadMassage/v_HeadMassage_g15_c01 38 -BenchPress/v_BenchPress_g13_c03 9 -UnevenBars/v_UnevenBars_g22_c01 95 -RopeClimbing/v_RopeClimbing_g21_c03 74 -JavelinThrow/v_JavelinThrow_g24_c01 44 -SoccerJuggling/v_SoccerJuggling_g17_c07 83 -Knitting/v_Knitting_g18_c02 49 -Diving/v_Diving_g15_c07 25 -JavelinThrow/v_JavelinThrow_g21_c01 44 -JumpRope/v_JumpRope_g12_c03 47 -Skijet/v_Skijet_g20_c03 81 -WritingOnBoard/v_WritingOnBoard_g25_c06 99 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c03 28 -HorseRiding/v_HorseRiding_g17_c04 41 -Rowing/v_Rowing_g17_c05 75 -Punch/v_Punch_g11_c05 70 -SoccerPenalty/v_SoccerPenalty_g12_c03 84 -MoppingFloor/v_MoppingFloor_g14_c01 54 -SumoWrestling/v_SumoWrestling_g18_c05 86 -CleanAndJerk/v_CleanAndJerk_g18_c02 20 -Billiards/v_Billiards_g20_c02 11 -Fencing/v_Fencing_g10_c05 27 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c01 28 -BalanceBeam/v_BalanceBeam_g11_c03 4 -Skiing/v_Skiing_g22_c02 80 -Archery/v_Archery_g23_c04 2 -FrisbeeCatch/v_FrisbeeCatch_g11_c04 30 -TableTennisShot/v_TableTennisShot_g22_c04 89 -HorseRiding/v_HorseRiding_g16_c03 41 -FrontCrawl/v_FrontCrawl_g22_c05 31 -PlayingTabla/v_PlayingTabla_g19_c03 65 -IceDancing/v_IceDancing_g10_c02 43 -BenchPress/v_BenchPress_g14_c06 9 -SkyDiving/v_SkyDiving_g17_c05 82 -Mixing/v_Mixing_g14_c03 53 -CricketBowling/v_CricketBowling_g11_c07 22 -WalkingWithDog/v_WalkingWithDog_g15_c03 97 -SoccerPenalty/v_SoccerPenalty_g10_c04 84 -FieldHockeyPenalty/v_FieldHockeyPenalty_g19_c03 28 -Archery/v_Archery_g18_c07 2 -TableTennisShot/v_TableTennisShot_g20_c02 89 -Shotput/v_Shotput_g10_c04 78 -VolleyballSpiking/v_VolleyballSpiking_g20_c02 96 -Kayaking/v_Kayaking_g23_c04 48 -TableTennisShot/v_TableTennisShot_g20_c06 89 -CliffDiving/v_CliffDiving_g19_c04 21 -Shotput/v_Shotput_g15_c01 78 -Diving/v_Diving_g08_c06 25 -PlayingDhol/v_PlayingDhol_g21_c03 60 -PlayingGuitar/v_PlayingGuitar_g10_c06 62 -PlayingDaf/v_PlayingDaf_g20_c07 59 -PizzaTossing/v_PizzaTossing_g24_c01 57 -PlayingSitar/v_PlayingSitar_g14_c06 64 -Rafting/v_Rafting_g19_c05 72 -ApplyEyeMakeup/v_ApplyEyeMakeup_g14_c03 0 -Biking/v_Biking_g20_c07 10 -Kayaking/v_Kayaking_g11_c05 48 -Surfing/v_Surfing_g17_c07 87 -Fencing/v_Fencing_g25_c02 27 -JugglingBalls/v_JugglingBalls_g08_c04 45 -PommelHorse/v_PommelHorse_g16_c03 68 -PlayingDaf/v_PlayingDaf_g15_c06 59 -PoleVault/v_PoleVault_g12_c02 67 -Swing/v_Swing_g22_c05 88 -BasketballDunk/v_BasketballDunk_g22_c01 8 -TennisSwing/v_TennisSwing_g20_c02 91 -BoxingSpeedBag/v_BoxingSpeedBag_g10_c02 17 -PlayingPiano/v_PlayingPiano_g23_c01 63 -PullUps/v_PullUps_g21_c02 69 -TaiChi/v_TaiChi_g11_c04 90 -HandstandPushups/v_HandStandPushups_g12_c02 36 -CricketShot/v_CricketShot_g21_c04 23 -BoxingSpeedBag/v_BoxingSpeedBag_g23_c02 17 -BreastStroke/v_BreastStroke_g17_c01 18 -FloorGymnastics/v_FloorGymnastics_g18_c06 29 -TennisSwing/v_TennisSwing_g14_c02 91 -ApplyEyeMakeup/v_ApplyEyeMakeup_g11_c03 0 -CliffDiving/v_CliffDiving_g22_c06 21 -Rafting/v_Rafting_g10_c02 72 -Bowling/v_Bowling_g19_c03 15 -PommelHorse/v_PommelHorse_g10_c03 68 -FrisbeeCatch/v_FrisbeeCatch_g16_c05 30 -Shotput/v_Shotput_g15_c02 78 -CricketBowling/v_CricketBowling_g22_c04 22 -HammerThrow/v_HammerThrow_g12_c02 35 -PommelHorse/v_PommelHorse_g08_c03 68 -Bowling/v_Bowling_g08_c05 15 -PlayingPiano/v_PlayingPiano_g20_c01 63 -HorseRace/v_HorseRace_g24_c07 40 -JumpingJack/v_JumpingJack_g10_c06 46 -YoYo/v_YoYo_g25_c03 100 -VolleyballSpiking/v_VolleyballSpiking_g09_c06 96 -Knitting/v_Knitting_g23_c01 49 -CricketShot/v_CricketShot_g23_c02 23 -Shotput/v_Shotput_g15_c05 78 -TaiChi/v_TaiChi_g20_c02 90 -ThrowDiscus/v_ThrowDiscus_g22_c01 92 -ApplyEyeMakeup/v_ApplyEyeMakeup_g21_c05 0 -PlayingDaf/v_PlayingDaf_g10_c01 59 -SumoWrestling/v_SumoWrestling_g10_c03 86 -Hammering/v_Hammering_g09_c05 34 -SoccerPenalty/v_SoccerPenalty_g22_c04 84 -Typing/v_Typing_g23_c01 94 -BodyWeightSquats/v_BodyWeightSquats_g08_c04 14 -CliffDiving/v_CliffDiving_g20_c07 21 -BenchPress/v_BenchPress_g15_c01 9 -ThrowDiscus/v_ThrowDiscus_g09_c04 92 -SkateBoarding/v_SkateBoarding_g20_c03 79 -Surfing/v_Surfing_g09_c04 87 -PoleVault/v_PoleVault_g24_c02 67 -Surfing/v_Surfing_g10_c02 87 -BalanceBeam/v_BalanceBeam_g16_c03 4 -ApplyLipstick/v_ApplyLipstick_g18_c04 1 -PlayingGuitar/v_PlayingGuitar_g16_c03 62 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c01 73 -PlayingFlute/v_PlayingFlute_g23_c04 61 -CuttingInKitchen/v_CuttingInKitchen_g24_c04 24 -PullUps/v_PullUps_g18_c02 69 -Typing/v_Typing_g12_c04 94 -Nunchucks/v_Nunchucks_g15_c05 55 -RopeClimbing/v_RopeClimbing_g17_c04 74 -ShavingBeard/v_ShavingBeard_g20_c03 77 -HighJump/v_HighJump_g20_c03 39 -BoxingSpeedBag/v_BoxingSpeedBag_g22_c02 17 -VolleyballSpiking/v_VolleyballSpiking_g11_c04 96 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c02 16 -BenchPress/v_BenchPress_g25_c03 9 -HandstandPushups/v_HandStandPushups_g15_c04 36 -JumpingJack/v_JumpingJack_g14_c04 46 -SalsaSpin/v_SalsaSpin_g11_c05 76 -PlayingDaf/v_PlayingDaf_g17_c03 59 -PommelHorse/v_PommelHorse_g21_c04 68 -HammerThrow/v_HammerThrow_g24_c03 35 -PlayingPiano/v_PlayingPiano_g15_c04 63 -HeadMassage/v_HeadMassage_g15_c04 38 -SkateBoarding/v_SkateBoarding_g24_c02 79 -CricketBowling/v_CricketBowling_g10_c04 22 -Rowing/v_Rowing_g24_c02 75 -Drumming/v_Drumming_g10_c05 26 -SalsaSpin/v_SalsaSpin_g10_c01 76 -HorseRace/v_HorseRace_g22_c03 40 -HulaHoop/v_HulaHoop_g24_c04 42 -Biking/v_Biking_g20_c02 10 -JumpingJack/v_JumpingJack_g15_c03 46 -HammerThrow/v_HammerThrow_g23_c02 35 -Mixing/v_Mixing_g18_c01 53 -MilitaryParade/v_MilitaryParade_g17_c04 52 -Fencing/v_Fencing_g14_c01 27 -TennisSwing/v_TennisSwing_g08_c06 91 -Archery/v_Archery_g08_c02 2 -JugglingBalls/v_JugglingBalls_g22_c06 45 -WalkingWithDog/v_WalkingWithDog_g22_c02 97 -Basketball/v_Basketball_g24_c03 7 -Hammering/v_Hammering_g16_c03 34 -JavelinThrow/v_JavelinThrow_g15_c04 44 -WalkingWithDog/v_WalkingWithDog_g16_c05 97 -FloorGymnastics/v_FloorGymnastics_g25_c02 29 -TrampolineJumping/v_TrampolineJumping_g15_c02 93 -PlayingViolin/v_PlayingViolin_g08_c01 66 -BaseballPitch/v_BaseballPitch_g11_c04 6 -Haircut/v_Haircut_g14_c04 33 -HeadMassage/v_HeadMassage_g23_c02 38 -PullUps/v_PullUps_g09_c01 69 -HandstandPushups/v_HandStandPushups_g25_c02 36 -WritingOnBoard/v_WritingOnBoard_g17_c01 99 -HorseRiding/v_HorseRiding_g23_c06 41 -PullUps/v_PullUps_g10_c03 69 -Hammering/v_Hammering_g23_c06 34 -PlayingDaf/v_PlayingDaf_g09_c05 59 -TableTennisShot/v_TableTennisShot_g25_c06 89 -SalsaSpin/v_SalsaSpin_g14_c03 76 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c06 16 -PlayingFlute/v_PlayingFlute_g08_c07 61 -TrampolineJumping/v_TrampolineJumping_g19_c06 93 -TrampolineJumping/v_TrampolineJumping_g18_c04 93 -TennisSwing/v_TennisSwing_g20_c04 91 -BandMarching/v_BandMarching_g12_c03 5 -Punch/v_Punch_g08_c04 70 -ThrowDiscus/v_ThrowDiscus_g08_c03 92 -HighJump/v_HighJump_g23_c03 39 -HighJump/v_HighJump_g25_c03 39 -ParallelBars/v_ParallelBars_g24_c03 56 -Kayaking/v_Kayaking_g09_c05 48 -PlayingCello/v_PlayingCello_g13_c03 58 -Nunchucks/v_Nunchucks_g21_c06 55 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c03 16 -MilitaryParade/v_MilitaryParade_g18_c05 52 -FloorGymnastics/v_FloorGymnastics_g14_c02 29 -Lunges/v_Lunges_g14_c01 51 -UnevenBars/v_UnevenBars_g15_c03 95 -PlayingGuitar/v_PlayingGuitar_g08_c05 62 -Skijet/v_Skijet_g10_c04 81 -HeadMassage/v_HeadMassage_g13_c04 38 -Kayaking/v_Kayaking_g24_c06 48 -Nunchucks/v_Nunchucks_g12_c01 55 -CleanAndJerk/v_CleanAndJerk_g10_c02 20 -BandMarching/v_BandMarching_g18_c01 5 -GolfSwing/v_GolfSwing_g21_c03 32 -JavelinThrow/v_JavelinThrow_g14_c01 44 -TaiChi/v_TaiChi_g09_c04 90 -Typing/v_Typing_g11_c01 94 -Basketball/v_Basketball_g15_c02 7 -BlowingCandles/v_BlowingCandles_g25_c02 13 -IceDancing/v_IceDancing_g17_c03 43 -HammerThrow/v_HammerThrow_g20_c03 35 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c01 16 -TennisSwing/v_TennisSwing_g18_c03 91 -WalkingWithDog/v_WalkingWithDog_g20_c03 97 -Swing/v_Swing_g09_c04 88 -ShavingBeard/v_ShavingBeard_g09_c06 77 -Punch/v_Punch_g08_c05 70 -BlowDryHair/v_BlowDryHair_g18_c05 12 -Diving/v_Diving_g15_c03 25 -PommelHorse/v_PommelHorse_g18_c02 68 -PlayingPiano/v_PlayingPiano_g17_c01 63 -SoccerPenalty/v_SoccerPenalty_g22_c03 84 -PullUps/v_PullUps_g20_c02 69 -ApplyLipstick/v_ApplyLipstick_g20_c05 1 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c04 16 -HulaHoop/v_HulaHoop_g18_c01 42 -PlayingPiano/v_PlayingPiano_g21_c04 63 -HeadMassage/v_HeadMassage_g20_c03 38 -BalanceBeam/v_BalanceBeam_g09_c04 4 -IceDancing/v_IceDancing_g24_c02 43 -Diving/v_Diving_g08_c05 25 -Mixing/v_Mixing_g22_c02 53 -RopeClimbing/v_RopeClimbing_g09_c01 74 -YoYo/v_YoYo_g21_c05 100 -PlayingViolin/v_PlayingViolin_g24_c01 66 -PlayingTabla/v_PlayingTabla_g16_c01 65 -SoccerPenalty/v_SoccerPenalty_g22_c01 84 -ThrowDiscus/v_ThrowDiscus_g16_c02 92 -Punch/v_Punch_g15_c02 70 -BalanceBeam/v_BalanceBeam_g12_c03 4 -TaiChi/v_TaiChi_g18_c03 90 -YoYo/v_YoYo_g23_c04 100 -BalanceBeam/v_BalanceBeam_g16_c01 4 -Nunchucks/v_Nunchucks_g18_c03 55 -WalkingWithDog/v_WalkingWithDog_g21_c03 97 -JugglingBalls/v_JugglingBalls_g11_c04 45 -FloorGymnastics/v_FloorGymnastics_g15_c04 29 -ParallelBars/v_ParallelBars_g23_c04 56 -HammerThrow/v_HammerThrow_g08_c03 35 -JumpRope/v_JumpRope_g08_c01 47 -BenchPress/v_BenchPress_g15_c05 9 -BrushingTeeth/v_BrushingTeeth_g10_c01 19 -BrushingTeeth/v_BrushingTeeth_g22_c03 19 -PizzaTossing/v_PizzaTossing_g18_c02 57 -PlayingGuitar/v_PlayingGuitar_g11_c05 62 -Punch/v_Punch_g14_c03 70 -CricketBowling/v_CricketBowling_g12_c05 22 -JumpRope/v_JumpRope_g09_c05 47 -GolfSwing/v_GolfSwing_g12_c01 32 -BreastStroke/v_BreastStroke_g10_c03 18 -Basketball/v_Basketball_g12_c04 7 -BandMarching/v_BandMarching_g17_c03 5 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c03 17 -WallPushups/v_WallPushups_g24_c02 98 -SoccerJuggling/v_SoccerJuggling_g18_c02 83 -CricketShot/v_CricketShot_g16_c03 23 -FloorGymnastics/v_FloorGymnastics_g21_c05 29 -SumoWrestling/v_SumoWrestling_g16_c04 86 -PlayingTabla/v_PlayingTabla_g11_c04 65 -TennisSwing/v_TennisSwing_g15_c06 91 -WallPushups/v_WallPushups_g14_c03 98 -Lunges/v_Lunges_g08_c04 51 -Surfing/v_Surfing_g12_c03 87 -LongJump/v_LongJump_g23_c03 50 -SumoWrestling/v_SumoWrestling_g13_c03 86 -HandstandWalking/v_HandstandWalking_g08_c01 37 -SoccerJuggling/v_SoccerJuggling_g13_c03 83 -CleanAndJerk/v_CleanAndJerk_g15_c04 20 -PlayingFlute/v_PlayingFlute_g13_c03 61 -HulaHoop/v_HulaHoop_g18_c03 42 -Mixing/v_Mixing_g08_c02 53 -WalkingWithDog/v_WalkingWithDog_g13_c05 97 -HulaHoop/v_HulaHoop_g21_c02 42 -SalsaSpin/v_SalsaSpin_g16_c01 76 -BandMarching/v_BandMarching_g15_c03 5 -SoccerJuggling/v_SoccerJuggling_g22_c07 83 -Skijet/v_Skijet_g22_c04 81 -BandMarching/v_BandMarching_g10_c05 5 -ShavingBeard/v_ShavingBeard_g12_c01 77 -MoppingFloor/v_MoppingFloor_g21_c04 54 -JugglingBalls/v_JugglingBalls_g12_c04 45 -MoppingFloor/v_MoppingFloor_g12_c01 54 -JugglingBalls/v_JugglingBalls_g25_c05 45 -HorseRiding/v_HorseRiding_g15_c03 41 -JavelinThrow/v_JavelinThrow_g22_c04 44 -PlayingSitar/v_PlayingSitar_g10_c05 64 -JumpRope/v_JumpRope_g23_c01 47 -ShavingBeard/v_ShavingBeard_g10_c06 77 -BlowDryHair/v_BlowDryHair_g11_c06 12 -PoleVault/v_PoleVault_g21_c05 67 -CliffDiving/v_CliffDiving_g10_c04 21 -HorseRiding/v_HorseRiding_g18_c01 41 -MoppingFloor/v_MoppingFloor_g22_c03 54 -PlayingGuitar/v_PlayingGuitar_g16_c05 62 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c02 0 -HulaHoop/v_HulaHoop_g23_c05 42 -PlayingFlute/v_PlayingFlute_g13_c02 61 -PlayingGuitar/v_PlayingGuitar_g19_c03 62 -CleanAndJerk/v_CleanAndJerk_g14_c01 20 -PlayingDaf/v_PlayingDaf_g25_c01 59 -WallPushups/v_WallPushups_g16_c04 98 -SoccerPenalty/v_SoccerPenalty_g18_c03 84 -Knitting/v_Knitting_g08_c03 49 -TaiChi/v_TaiChi_g17_c03 90 -Kayaking/v_Kayaking_g10_c01 48 -Shotput/v_Shotput_g11_c07 78 -WallPushups/v_WallPushups_g16_c03 98 -Biking/v_Biking_g21_c05 10 -JavelinThrow/v_JavelinThrow_g18_c04 44 -PlayingCello/v_PlayingCello_g14_c04 58 -PlayingTabla/v_PlayingTabla_g11_c01 65 -MilitaryParade/v_MilitaryParade_g25_c03 52 -SoccerJuggling/v_SoccerJuggling_g24_c02 83 -SkyDiving/v_SkyDiving_g20_c06 82 -VolleyballSpiking/v_VolleyballSpiking_g17_c02 96 -HandstandWalking/v_HandstandWalking_g22_c02 37 -ApplyLipstick/v_ApplyLipstick_g12_c05 1 -SkyDiving/v_SkyDiving_g17_c04 82 -Drumming/v_Drumming_g16_c05 26 -SkyDiving/v_SkyDiving_g16_c04 82 -SkyDiving/v_SkyDiving_g20_c04 82 -ShavingBeard/v_ShavingBeard_g13_c03 77 -ShavingBeard/v_ShavingBeard_g22_c03 77 -CliffDiving/v_CliffDiving_g09_c06 21 -CricketShot/v_CricketShot_g14_c01 23 -ApplyLipstick/v_ApplyLipstick_g22_c07 1 -Mixing/v_Mixing_g23_c04 53 -RopeClimbing/v_RopeClimbing_g15_c01 74 -HulaHoop/v_HulaHoop_g25_c01 42 -BrushingTeeth/v_BrushingTeeth_g18_c03 19 -BenchPress/v_BenchPress_g23_c03 9 -IceDancing/v_IceDancing_g15_c03 43 -Hammering/v_Hammering_g19_c04 34 -Bowling/v_Bowling_g25_c01 15 -HorseRiding/v_HorseRiding_g17_c03 41 -BaseballPitch/v_BaseballPitch_g14_c03 6 -Skiing/v_Skiing_g19_c01 80 -TrampolineJumping/v_TrampolineJumping_g24_c04 93 -ShavingBeard/v_ShavingBeard_g22_c05 77 -Typing/v_Typing_g10_c07 94 -HeadMassage/v_HeadMassage_g11_c02 38 -Billiards/v_Billiards_g25_c03 11 -StillRings/v_StillRings_g21_c04 85 -Lunges/v_Lunges_g16_c03 51 -SoccerJuggling/v_SoccerJuggling_g08_c03 83 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c02 73 -Nunchucks/v_Nunchucks_g12_c04 55 -BrushingTeeth/v_BrushingTeeth_g10_c02 19 -JumpingJack/v_JumpingJack_g12_c04 46 -BaseballPitch/v_BaseballPitch_g08_c04 6 -TableTennisShot/v_TableTennisShot_g15_c03 89 -Swing/v_Swing_g12_c02 88 -Drumming/v_Drumming_g16_c01 26 -MilitaryParade/v_MilitaryParade_g19_c03 52 -JavelinThrow/v_JavelinThrow_g17_c02 44 -Billiards/v_Billiards_g13_c04 11 -SoccerPenalty/v_SoccerPenalty_g20_c03 84 -BasketballDunk/v_BasketballDunk_g13_c02 8 -UnevenBars/v_UnevenBars_g09_c01 95 -BlowingCandles/v_BlowingCandles_g08_c03 13 -FrontCrawl/v_FrontCrawl_g10_c02 31 -PlayingGuitar/v_PlayingGuitar_g24_c03 62 -PizzaTossing/v_PizzaTossing_g18_c04 57 -ParallelBars/v_ParallelBars_g25_c04 56 -PlayingTabla/v_PlayingTabla_g17_c03 65 -BenchPress/v_BenchPress_g18_c03 9 -SkateBoarding/v_SkateBoarding_g11_c04 79 -PlayingTabla/v_PlayingTabla_g25_c03 65 -Shotput/v_Shotput_g11_c06 78 -PlayingDaf/v_PlayingDaf_g21_c07 59 -BalanceBeam/v_BalanceBeam_g22_c02 4 -BaseballPitch/v_BaseballPitch_g19_c03 6 -FloorGymnastics/v_FloorGymnastics_g11_c03 29 -BasketballDunk/v_BasketballDunk_g12_c05 8 -JumpingJack/v_JumpingJack_g19_c01 46 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c03 16 -ThrowDiscus/v_ThrowDiscus_g17_c04 92 -FrisbeeCatch/v_FrisbeeCatch_g11_c03 30 -PlayingGuitar/v_PlayingGuitar_g17_c07 62 -CliffDiving/v_CliffDiving_g21_c04 21 -BlowDryHair/v_BlowDryHair_g16_c04 12 -ParallelBars/v_ParallelBars_g08_c01 56 -BodyWeightSquats/v_BodyWeightSquats_g18_c01 14 -CliffDiving/v_CliffDiving_g08_c04 21 -HeadMassage/v_HeadMassage_g14_c05 38 -FrisbeeCatch/v_FrisbeeCatch_g18_c05 30 -TennisSwing/v_TennisSwing_g15_c07 91 -Mixing/v_Mixing_g24_c02 53 -PlayingFlute/v_PlayingFlute_g18_c04 61 -IceDancing/v_IceDancing_g12_c02 43 -HorseRiding/v_HorseRiding_g20_c04 41 -HighJump/v_HighJump_g18_c02 39 -JumpingJack/v_JumpingJack_g23_c01 46 -HorseRace/v_HorseRace_g13_c04 40 -HorseRiding/v_HorseRiding_g14_c07 41 -FrontCrawl/v_FrontCrawl_g15_c03 31 -PizzaTossing/v_PizzaTossing_g22_c03 57 -Fencing/v_Fencing_g16_c02 27 -PommelHorse/v_PommelHorse_g15_c04 68 -HeadMassage/v_HeadMassage_g23_c06 38 -BalanceBeam/v_BalanceBeam_g09_c01 4 -Bowling/v_Bowling_g18_c01 15 -JavelinThrow/v_JavelinThrow_g10_c01 44 -FrisbeeCatch/v_FrisbeeCatch_g24_c03 30 -PullUps/v_PullUps_g19_c02 69 -HulaHoop/v_HulaHoop_g11_c03 42 -ApplyEyeMakeup/v_ApplyEyeMakeup_g08_c05 0 -PlayingDhol/v_PlayingDhol_g11_c02 60 -Drumming/v_Drumming_g25_c04 26 -BenchPress/v_BenchPress_g09_c02 9 -PizzaTossing/v_PizzaTossing_g22_c04 57 -HeadMassage/v_HeadMassage_g14_c01 38 -CliffDiving/v_CliffDiving_g08_c02 21 -Fencing/v_Fencing_g11_c04 27 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c03 28 -Diving/v_Diving_g16_c03 25 -BlowDryHair/v_BlowDryHair_g17_c02 12 -PlayingPiano/v_PlayingPiano_g10_c02 63 -YoYo/v_YoYo_g08_c01 100 -BoxingPunchingBag/v_BoxingPunchingBag_g10_c03 16 -SoccerJuggling/v_SoccerJuggling_g19_c07 83 -StillRings/v_StillRings_g14_c03 85 -TennisSwing/v_TennisSwing_g21_c01 91 -CricketBowling/v_CricketBowling_g16_c06 22 -RopeClimbing/v_RopeClimbing_g09_c04 74 -Biking/v_Biking_g10_c02 10 -BrushingTeeth/v_BrushingTeeth_g10_c04 19 -LongJump/v_LongJump_g15_c03 50 -BabyCrawling/v_BabyCrawling_g13_c06 3 -PlayingViolin/v_PlayingViolin_g15_c03 66 -JumpRope/v_JumpRope_g08_c06 47 -Swing/v_Swing_g20_c04 88 -Billiards/v_Billiards_g15_c05 11 -SkateBoarding/v_SkateBoarding_g18_c05 79 -Punch/v_Punch_g13_c07 70 -MilitaryParade/v_MilitaryParade_g13_c03 52 -BalanceBeam/v_BalanceBeam_g24_c01 4 -BalanceBeam/v_BalanceBeam_g18_c04 4 -Rafting/v_Rafting_g10_c04 72 -TennisSwing/v_TennisSwing_g13_c06 91 -PlayingCello/v_PlayingCello_g21_c03 58 -Mixing/v_Mixing_g18_c04 53 -PlayingPiano/v_PlayingPiano_g13_c03 63 -ParallelBars/v_ParallelBars_g17_c01 56 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c06 0 -Basketball/v_Basketball_g09_c01 7 -JavelinThrow/v_JavelinThrow_g25_c04 44 -PommelHorse/v_PommelHorse_g14_c04 68 -Shotput/v_Shotput_g14_c03 78 -PommelHorse/v_PommelHorse_g15_c01 68 -ParallelBars/v_ParallelBars_g19_c03 56 -WritingOnBoard/v_WritingOnBoard_g24_c05 99 -IceDancing/v_IceDancing_g19_c02 43 -PlayingGuitar/v_PlayingGuitar_g20_c03 62 -SalsaSpin/v_SalsaSpin_g11_c06 76 -VolleyballSpiking/v_VolleyballSpiking_g19_c01 96 -BenchPress/v_BenchPress_g18_c04 9 -VolleyballSpiking/v_VolleyballSpiking_g08_c03 96 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c05 16 -WritingOnBoard/v_WritingOnBoard_g22_c01 99 -BasketballDunk/v_BasketballDunk_g16_c01 8 -TableTennisShot/v_TableTennisShot_g24_c05 89 -Nunchucks/v_Nunchucks_g15_c03 55 -VolleyballSpiking/v_VolleyballSpiking_g19_c03 96 -Fencing/v_Fencing_g11_c02 27 -HulaHoop/v_HulaHoop_g17_c01 42 -PlayingDhol/v_PlayingDhol_g24_c03 60 -WallPushups/v_WallPushups_g21_c04 98 -Nunchucks/v_Nunchucks_g18_c06 55 -PushUps/v_PushUps_g17_c04 71 -FloorGymnastics/v_FloorGymnastics_g22_c01 29 -PlayingFlute/v_PlayingFlute_g09_c02 61 -Rafting/v_Rafting_g20_c02 72 -TennisSwing/v_TennisSwing_g22_c02 91 -SkyDiving/v_SkyDiving_g24_c04 82 -BaseballPitch/v_BaseballPitch_g23_c01 6 -BandMarching/v_BandMarching_g12_c05 5 -LongJump/v_LongJump_g09_c02 50 -SoccerJuggling/v_SoccerJuggling_g11_c03 83 -PlayingFlute/v_PlayingFlute_g10_c05 61 -Knitting/v_Knitting_g10_c02 49 -Lunges/v_Lunges_g22_c04 51 -TaiChi/v_TaiChi_g23_c01 90 -YoYo/v_YoYo_g11_c04 100 -BabyCrawling/v_BabyCrawling_g19_c01 3 -BodyWeightSquats/v_BodyWeightSquats_g14_c02 14 -BlowDryHair/v_BlowDryHair_g19_c01 12 -JumpRope/v_JumpRope_g11_c04 47 -Mixing/v_Mixing_g13_c01 53 -SoccerJuggling/v_SoccerJuggling_g24_c03 83 -PlayingFlute/v_PlayingFlute_g19_c07 61 -PullUps/v_PullUps_g23_c02 69 -BrushingTeeth/v_BrushingTeeth_g13_c04 19 -Drumming/v_Drumming_g22_c03 26 -PlayingCello/v_PlayingCello_g24_c03 58 -Punch/v_Punch_g11_c06 70 -Haircut/v_Haircut_g23_c02 33 -ParallelBars/v_ParallelBars_g25_c01 56 -Hammering/v_Hammering_g11_c02 34 -SoccerPenalty/v_SoccerPenalty_g18_c01 84 -BlowingCandles/v_BlowingCandles_g15_c02 13 -PlayingCello/v_PlayingCello_g09_c01 58 -Bowling/v_Bowling_g09_c02 15 -SoccerJuggling/v_SoccerJuggling_g21_c05 83 -JumpRope/v_JumpRope_g20_c07 47 -TrampolineJumping/v_TrampolineJumping_g24_c01 93 -Archery/v_Archery_g15_c01 2 -YoYo/v_YoYo_g08_c03 100 -Swing/v_Swing_g22_c03 88 -ApplyLipstick/v_ApplyLipstick_g15_c04 1 -BaseballPitch/v_BaseballPitch_g22_c03 6 -PoleVault/v_PoleVault_g13_c01 67 -SkateBoarding/v_SkateBoarding_g24_c05 79 -BlowDryHair/v_BlowDryHair_g25_c03 12 -PlayingDhol/v_PlayingDhol_g11_c04 60 -BreastStroke/v_BreastStroke_g15_c03 18 -Basketball/v_Basketball_g10_c04 7 -StillRings/v_StillRings_g09_c01 85 -Punch/v_Punch_g08_c07 70 -ApplyLipstick/v_ApplyLipstick_g18_c01 1 -RopeClimbing/v_RopeClimbing_g19_c03 74 -FrontCrawl/v_FrontCrawl_g17_c01 31 -PlayingTabla/v_PlayingTabla_g12_c03 65 -StillRings/v_StillRings_g12_c01 85 -HeadMassage/v_HeadMassage_g17_c04 38 -RopeClimbing/v_RopeClimbing_g19_c05 74 -BoxingSpeedBag/v_BoxingSpeedBag_g16_c04 17 -GolfSwing/v_GolfSwing_g20_c05 32 -SkyDiving/v_SkyDiving_g18_c03 82 -PlayingDaf/v_PlayingDaf_g22_c06 59 -ThrowDiscus/v_ThrowDiscus_g18_c03 92 -Surfing/v_Surfing_g24_c04 87 -FieldHockeyPenalty/v_FieldHockeyPenalty_g16_c01 28 -Drumming/v_Drumming_g17_c01 26 -WalkingWithDog/v_WalkingWithDog_g22_c03 97 -BaseballPitch/v_BaseballPitch_g08_c05 6 -ShavingBeard/v_ShavingBeard_g11_c02 77 -RopeClimbing/v_RopeClimbing_g10_c05 74 -MilitaryParade/v_MilitaryParade_g13_c04 52 -JavelinThrow/v_JavelinThrow_g23_c03 44 -Skiing/v_Skiing_g14_c03 80 -Shotput/v_Shotput_g21_c02 78 -GolfSwing/v_GolfSwing_g08_c06 32 -PlayingFlute/v_PlayingFlute_g17_c06 61 -ParallelBars/v_ParallelBars_g11_c05 56 -SoccerPenalty/v_SoccerPenalty_g11_c04 84 -PlayingFlute/v_PlayingFlute_g21_c01 61 -ThrowDiscus/v_ThrowDiscus_g21_c01 92 -WritingOnBoard/v_WritingOnBoard_g12_c01 99 -BoxingSpeedBag/v_BoxingSpeedBag_g16_c05 17 -BandMarching/v_BandMarching_g13_c01 5 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c01 16 -GolfSwing/v_GolfSwing_g20_c06 32 -CricketShot/v_CricketShot_g11_c03 23 -Billiards/v_Billiards_g23_c03 11 -HorseRiding/v_HorseRiding_g20_c05 41 -ShavingBeard/v_ShavingBeard_g24_c06 77 -BaseballPitch/v_BaseballPitch_g12_c03 6 -HulaHoop/v_HulaHoop_g20_c06 42 -LongJump/v_LongJump_g08_c06 50 -Knitting/v_Knitting_g16_c02 49 -Shotput/v_Shotput_g20_c04 78 -Typing/v_Typing_g10_c04 94 -HeadMassage/v_HeadMassage_g12_c03 38 -Billiards/v_Billiards_g16_c05 11 -Haircut/v_Haircut_g17_c03 33 -Typing/v_Typing_g16_c01 94 -TennisSwing/v_TennisSwing_g18_c02 91 -CuttingInKitchen/v_CuttingInKitchen_g13_c01 24 -BaseballPitch/v_BaseballPitch_g24_c06 6 -BodyWeightSquats/v_BodyWeightSquats_g24_c05 14 -PlayingDhol/v_PlayingDhol_g14_c05 60 -Drumming/v_Drumming_g17_c02 26 -PlayingGuitar/v_PlayingGuitar_g22_c05 62 -ThrowDiscus/v_ThrowDiscus_g11_c01 92 -ShavingBeard/v_ShavingBeard_g16_c03 77 -TennisSwing/v_TennisSwing_g15_c03 91 -HorseRace/v_HorseRace_g15_c01 40 -BandMarching/v_BandMarching_g13_c04 5 -PlayingSitar/v_PlayingSitar_g24_c02 64 -PommelHorse/v_PommelHorse_g16_c02 68 -SumoWrestling/v_SumoWrestling_g23_c01 86 -HandstandPushups/v_HandStandPushups_g17_c01 36 -BalanceBeam/v_BalanceBeam_g10_c03 4 -Kayaking/v_Kayaking_g23_c05 48 -BodyWeightSquats/v_BodyWeightSquats_g13_c03 14 -CricketBowling/v_CricketBowling_g11_c03 22 -HorseRace/v_HorseRace_g10_c03 40 -IceDancing/v_IceDancing_g22_c02 43 -Drumming/v_Drumming_g12_c03 26 -StillRings/v_StillRings_g19_c02 85 -BlowingCandles/v_BlowingCandles_g16_c01 13 -UnevenBars/v_UnevenBars_g21_c01 95 -Archery/v_Archery_g14_c01 2 -IceDancing/v_IceDancing_g22_c06 43 -Archery/v_Archery_g21_c03 2 -FieldHockeyPenalty/v_FieldHockeyPenalty_g21_c02 28 -Lunges/v_Lunges_g14_c04 51 -VolleyballSpiking/v_VolleyballSpiking_g24_c03 96 -Haircut/v_Haircut_g25_c04 33 -SoccerJuggling/v_SoccerJuggling_g22_c02 83 -BasketballDunk/v_BasketballDunk_g20_c02 8 -ShavingBeard/v_ShavingBeard_g10_c05 77 -WritingOnBoard/v_WritingOnBoard_g12_c03 99 -JumpRope/v_JumpRope_g12_c05 47 -Nunchucks/v_Nunchucks_g08_c05 55 -BaseballPitch/v_BaseballPitch_g10_c05 6 -WalkingWithDog/v_WalkingWithDog_g09_c06 97 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c03 16 -Typing/v_Typing_g22_c01 94 -Mixing/v_Mixing_g15_c07 53 -GolfSwing/v_GolfSwing_g18_c06 32 -Basketball/v_Basketball_g09_c03 7 -PommelHorse/v_PommelHorse_g09_c04 68 -Biking/v_Biking_g24_c05 10 -ThrowDiscus/v_ThrowDiscus_g13_c02 92 -PlayingGuitar/v_PlayingGuitar_g14_c06 62 -MoppingFloor/v_MoppingFloor_g19_c02 54 -Shotput/v_Shotput_g08_c06 78 -SumoWrestling/v_SumoWrestling_g22_c01 86 -Biking/v_Biking_g17_c01 10 -Basketball/v_Basketball_g10_c05 7 -Basketball/v_Basketball_g19_c05 7 -Biking/v_Biking_g24_c04 10 -Punch/v_Punch_g17_c01 70 -Rowing/v_Rowing_g11_c05 75 -SalsaSpin/v_SalsaSpin_g20_c01 76 -HorseRace/v_HorseRace_g21_c01 40 -ParallelBars/v_ParallelBars_g10_c03 56 -PlayingViolin/v_PlayingViolin_g17_c02 66 -RockClimbingIndoor/v_RockClimbingIndoor_g19_c01 73 -BandMarching/v_BandMarching_g11_c07 5 -SkyDiving/v_SkyDiving_g12_c02 82 -PlayingDhol/v_PlayingDhol_g24_c01 60 -PlayingSitar/v_PlayingSitar_g18_c03 64 -ShavingBeard/v_ShavingBeard_g22_c01 77 -PlayingSitar/v_PlayingSitar_g19_c04 64 -IceDancing/v_IceDancing_g18_c05 43 -SkateBoarding/v_SkateBoarding_g16_c02 79 -Skijet/v_Skijet_g18_c02 81 -HandstandPushups/v_HandStandPushups_g24_c01 36 -FrisbeeCatch/v_FrisbeeCatch_g12_c04 30 -JugglingBalls/v_JugglingBalls_g09_c06 45 -SkyDiving/v_SkyDiving_g22_c01 82 -PlayingSitar/v_PlayingSitar_g16_c04 64 -GolfSwing/v_GolfSwing_g24_c07 32 -FloorGymnastics/v_FloorGymnastics_g24_c02 29 -Skiing/v_Skiing_g21_c04 80 -WallPushups/v_WallPushups_g20_c03 98 -PlayingPiano/v_PlayingPiano_g14_c01 63 -Drumming/v_Drumming_g25_c06 26 -PommelHorse/v_PommelHorse_g19_c01 68 -PlayingFlute/v_PlayingFlute_g20_c04 61 -JavelinThrow/v_JavelinThrow_g11_c06 44 -CliffDiving/v_CliffDiving_g19_c02 21 -PlayingViolin/v_PlayingViolin_g09_c02 66 -BaseballPitch/v_BaseballPitch_g16_c06 6 -TrampolineJumping/v_TrampolineJumping_g13_c03 93 -HulaHoop/v_HulaHoop_g08_c03 42 -TableTennisShot/v_TableTennisShot_g19_c07 89 -BabyCrawling/v_BabyCrawling_g24_c03 3 -Skiing/v_Skiing_g23_c04 80 -HulaHoop/v_HulaHoop_g21_c01 42 -Diving/v_Diving_g09_c05 25 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c07 17 -SkateBoarding/v_SkateBoarding_g23_c03 79 -BreastStroke/v_BreastStroke_g10_c01 18 -BlowDryHair/v_BlowDryHair_g08_c06 12 -Hammering/v_Hammering_g16_c02 34 -StillRings/v_StillRings_g24_c02 85 -CuttingInKitchen/v_CuttingInKitchen_g21_c02 24 -Lunges/v_Lunges_g08_c02 51 -TableTennisShot/v_TableTennisShot_g24_c07 89 -PoleVault/v_PoleVault_g21_c02 67 -UnevenBars/v_UnevenBars_g19_c02 95 -ThrowDiscus/v_ThrowDiscus_g11_c07 92 -YoYo/v_YoYo_g22_c05 100 -WallPushups/v_WallPushups_g24_c04 98 -HighJump/v_HighJump_g23_c04 39 -BalanceBeam/v_BalanceBeam_g13_c04 4 -JumpingJack/v_JumpingJack_g08_c01 46 -Biking/v_Biking_g23_c03 10 -YoYo/v_YoYo_g25_c02 100 -FrisbeeCatch/v_FrisbeeCatch_g13_c02 30 -TennisSwing/v_TennisSwing_g09_c03 91 -Nunchucks/v_Nunchucks_g21_c04 55 -Punch/v_Punch_g24_c01 70 -JumpingJack/v_JumpingJack_g09_c04 46 -HorseRace/v_HorseRace_g21_c05 40 -SoccerPenalty/v_SoccerPenalty_g12_c01 84 -Basketball/v_Basketball_g10_c01 7 -Biking/v_Biking_g18_c05 10 -Billiards/v_Billiards_g14_c05 11 -Typing/v_Typing_g17_c04 94 -RopeClimbing/v_RopeClimbing_g10_c04 74 -BenchPress/v_BenchPress_g21_c01 9 -FrontCrawl/v_FrontCrawl_g22_c03 31 -HammerThrow/v_HammerThrow_g13_c07 35 -YoYo/v_YoYo_g20_c02 100 -CleanAndJerk/v_CleanAndJerk_g15_c03 20 -PlayingTabla/v_PlayingTabla_g08_c01 65 -Skiing/v_Skiing_g24_c04 80 -PlayingSitar/v_PlayingSitar_g09_c07 64 -Biking/v_Biking_g17_c05 10 -BreastStroke/v_BreastStroke_g11_c02 18 -HulaHoop/v_HulaHoop_g14_c05 42 -CliffDiving/v_CliffDiving_g13_c03 21 -GolfSwing/v_GolfSwing_g18_c04 32 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c05 16 -HorseRace/v_HorseRace_g23_c01 40 -SumoWrestling/v_SumoWrestling_g25_c04 86 -FieldHockeyPenalty/v_FieldHockeyPenalty_g09_c01 28 -ApplyEyeMakeup/v_ApplyEyeMakeup_g17_c03 0 -Billiards/v_Billiards_g21_c03 11 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c06 73 -Bowling/v_Bowling_g09_c05 15 -Lunges/v_Lunges_g12_c04 51 -PlayingTabla/v_PlayingTabla_g08_c02 65 -Hammering/v_Hammering_g21_c02 34 -BodyWeightSquats/v_BodyWeightSquats_g25_c06 14 -Hammering/v_Hammering_g14_c06 34 -HandstandWalking/v_HandstandWalking_g18_c03 37 -BoxingSpeedBag/v_BoxingSpeedBag_g20_c02 17 -Mixing/v_Mixing_g10_c02 53 -BoxingPunchingBag/v_BoxingPunchingBag_g17_c02 16 -SkateBoarding/v_SkateBoarding_g20_c01 79 -SoccerJuggling/v_SoccerJuggling_g09_c05 83 -PizzaTossing/v_PizzaTossing_g13_c03 57 -FloorGymnastics/v_FloorGymnastics_g16_c02 29 -SoccerPenalty/v_SoccerPenalty_g13_c06 84 -BandMarching/v_BandMarching_g14_c05 5 -PommelHorse/v_PommelHorse_g18_c04 68 -HighJump/v_HighJump_g08_c05 39 -Diving/v_Diving_g09_c02 25 -UnevenBars/v_UnevenBars_g15_c05 95 -BenchPress/v_BenchPress_g13_c02 9 -Skiing/v_Skiing_g22_c01 80 -BodyWeightSquats/v_BodyWeightSquats_g24_c04 14 -SoccerJuggling/v_SoccerJuggling_g24_c04 83 -PlayingFlute/v_PlayingFlute_g17_c04 61 -Hammering/v_Hammering_g19_c01 34 -Kayaking/v_Kayaking_g20_c04 48 -PlayingFlute/v_PlayingFlute_g20_c03 61 -SalsaSpin/v_SalsaSpin_g13_c03 76 -BrushingTeeth/v_BrushingTeeth_g09_c03 19 -SkyDiving/v_SkyDiving_g17_c03 82 -Rafting/v_Rafting_g23_c03 72 -Swing/v_Swing_g11_c05 88 -Archery/v_Archery_g09_c05 2 -JumpRope/v_JumpRope_g08_c04 47 -PlayingTabla/v_PlayingTabla_g25_c04 65 -ApplyEyeMakeup/v_ApplyEyeMakeup_g08_c02 0 -ApplyLipstick/v_ApplyLipstick_g16_c03 1 -Punch/v_Punch_g08_c01 70 -Skiing/v_Skiing_g08_c03 80 -ParallelBars/v_ParallelBars_g17_c03 56 -Swing/v_Swing_g22_c02 88 -HandstandPushups/v_HandStandPushups_g11_c04 36 -FrontCrawl/v_FrontCrawl_g22_c01 31 -HandstandWalking/v_HandstandWalking_g25_c04 37 -PlayingDaf/v_PlayingDaf_g24_c03 59 -BaseballPitch/v_BaseballPitch_g25_c02 6 -Billiards/v_Billiards_g09_c01 11 -Typing/v_Typing_g13_c04 94 -BlowDryHair/v_BlowDryHair_g11_c02 12 -BasketballDunk/v_BasketballDunk_g17_c01 8 -Archery/v_Archery_g08_c05 2 -YoYo/v_YoYo_g11_c02 100 -CricketShot/v_CricketShot_g18_c02 23 -PlayingGuitar/v_PlayingGuitar_g21_c04 62 -Punch/v_Punch_g15_c01 70 -PommelHorse/v_PommelHorse_g25_c03 68 -HorseRace/v_HorseRace_g19_c04 40 -Basketball/v_Basketball_g16_c05 7 -Drumming/v_Drumming_g20_c04 26 -Kayaking/v_Kayaking_g12_c04 48 -IceDancing/v_IceDancing_g14_c03 43 -Rowing/v_Rowing_g17_c01 75 -PommelHorse/v_PommelHorse_g20_c04 68 -CricketShot/v_CricketShot_g08_c02 23 -Rafting/v_Rafting_g20_c03 72 -ApplyLipstick/v_ApplyLipstick_g12_c03 1 -CuttingInKitchen/v_CuttingInKitchen_g22_c01 24 -SkyDiving/v_SkyDiving_g19_c03 82 -FrisbeeCatch/v_FrisbeeCatch_g23_c03 30 -Hammering/v_Hammering_g08_c01 34 -Punch/v_Punch_g25_c02 70 -TennisSwing/v_TennisSwing_g12_c03 91 -PlayingViolin/v_PlayingViolin_g19_c03 66 -CliffDiving/v_CliffDiving_g14_c05 21 -PlayingSitar/v_PlayingSitar_g22_c06 64 -SoccerPenalty/v_SoccerPenalty_g19_c04 84 -PoleVault/v_PoleVault_g17_c05 67 -IceDancing/v_IceDancing_g19_c07 43 -WallPushups/v_WallPushups_g08_c05 98 -Swing/v_Swing_g09_c02 88 -UnevenBars/v_UnevenBars_g16_c03 95 -BasketballDunk/v_BasketballDunk_g18_c04 8 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c02 16 -IceDancing/v_IceDancing_g25_c02 43 -BlowDryHair/v_BlowDryHair_g18_c02 12 -Skijet/v_Skijet_g16_c03 81 -PoleVault/v_PoleVault_g18_c05 67 -TennisSwing/v_TennisSwing_g21_c04 91 -SalsaSpin/v_SalsaSpin_g19_c01 76 -SkateBoarding/v_SkateBoarding_g20_c04 79 -PlayingFlute/v_PlayingFlute_g18_c05 61 -BlowingCandles/v_BlowingCandles_g22_c03 13 -WallPushups/v_WallPushups_g15_c05 98 -YoYo/v_YoYo_g23_c02 100 -Kayaking/v_Kayaking_g09_c06 48 -TrampolineJumping/v_TrampolineJumping_g10_c05 93 -FieldHockeyPenalty/v_FieldHockeyPenalty_g23_c01 28 -HighJump/v_HighJump_g11_c02 39 -Diving/v_Diving_g23_c04 25 -WritingOnBoard/v_WritingOnBoard_g11_c01 99 -Archery/v_Archery_g10_c02 2 -ApplyLipstick/v_ApplyLipstick_g09_c01 1 -Biking/v_Biking_g21_c02 10 -HeadMassage/v_HeadMassage_g19_c03 38 -HandstandWalking/v_HandstandWalking_g09_c03 37 -Knitting/v_Knitting_g08_c02 49 -PizzaTossing/v_PizzaTossing_g23_c01 57 -BoxingPunchingBag/v_BoxingPunchingBag_g14_c02 16 -PlayingPiano/v_PlayingPiano_g23_c02 63 -HulaHoop/v_HulaHoop_g15_c02 42 -PlayingFlute/v_PlayingFlute_g13_c01 61 -Surfing/v_Surfing_g17_c02 87 -Haircut/v_Haircut_g20_c05 33 -PullUps/v_PullUps_g11_c04 69 -Knitting/v_Knitting_g23_c03 49 -CricketShot/v_CricketShot_g12_c02 23 -Billiards/v_Billiards_g14_c06 11 -Swing/v_Swing_g19_c01 88 -JumpingJack/v_JumpingJack_g20_c03 46 -Diving/v_Diving_g20_c03 25 -IceDancing/v_IceDancing_g19_c03 43 -HighJump/v_HighJump_g13_c05 39 -PlayingFlute/v_PlayingFlute_g16_c04 61 -Biking/v_Biking_g17_c03 10 -TennisSwing/v_TennisSwing_g21_c06 91 -FrontCrawl/v_FrontCrawl_g24_c04 31 -TableTennisShot/v_TableTennisShot_g19_c06 89 -Haircut/v_Haircut_g17_c02 33 -BlowingCandles/v_BlowingCandles_g13_c02 13 -TableTennisShot/v_TableTennisShot_g19_c05 89 -Typing/v_Typing_g10_c03 94 -BlowingCandles/v_BlowingCandles_g25_c01 13 -HandstandWalking/v_HandstandWalking_g15_c04 37 -Kayaking/v_Kayaking_g20_c07 48 -CricketBowling/v_CricketBowling_g14_c02 22 -Bowling/v_Bowling_g16_c02 15 -PlayingTabla/v_PlayingTabla_g19_c04 65 -BoxingSpeedBag/v_BoxingSpeedBag_g12_c03 17 -PlayingFlute/v_PlayingFlute_g08_c02 61 -CliffDiving/v_CliffDiving_g22_c02 21 -SoccerJuggling/v_SoccerJuggling_g09_c07 83 -Rafting/v_Rafting_g08_c06 72 -RockClimbingIndoor/v_RockClimbingIndoor_g13_c04 73 -Kayaking/v_Kayaking_g17_c05 48 -PlayingCello/v_PlayingCello_g09_c06 58 -PlayingFlute/v_PlayingFlute_g09_c07 61 -MoppingFloor/v_MoppingFloor_g20_c02 54 -PushUps/v_PushUps_g20_c04 71 -HammerThrow/v_HammerThrow_g15_c03 35 -HorseRace/v_HorseRace_g20_c02 40 -WalkingWithDog/v_WalkingWithDog_g13_c01 97 -PlayingSitar/v_PlayingSitar_g12_c01 64 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c05 16 -BlowDryHair/v_BlowDryHair_g24_c03 12 -BasketballDunk/v_BasketballDunk_g23_c02 8 -CliffDiving/v_CliffDiving_g12_c06 21 -BlowingCandles/v_BlowingCandles_g10_c01 13 -PlayingViolin/v_PlayingViolin_g10_c02 66 -PushUps/v_PushUps_g25_c01 71 -Archery/v_Archery_g13_c07 2 -BaseballPitch/v_BaseballPitch_g24_c04 6 -Rowing/v_Rowing_g21_c01 75 -Skijet/v_Skijet_g12_c01 81 -PushUps/v_PushUps_g09_c01 71 -Nunchucks/v_Nunchucks_g17_c07 55 -SalsaSpin/v_SalsaSpin_g25_c01 76 -PlayingTabla/v_PlayingTabla_g24_c04 65 -PlayingCello/v_PlayingCello_g22_c02 58 -JavelinThrow/v_JavelinThrow_g22_c02 44 -BrushingTeeth/v_BrushingTeeth_g17_c05 19 -Basketball/v_Basketball_g23_c05 7 -Knitting/v_Knitting_g19_c02 49 -PlayingDaf/v_PlayingDaf_g14_c03 59 -Billiards/v_Billiards_g21_c04 11 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c03 73 -Hammering/v_Hammering_g24_c06 34 -BenchPress/v_BenchPress_g12_c04 9 -PlayingGuitar/v_PlayingGuitar_g23_c02 62 -WritingOnBoard/v_WritingOnBoard_g23_c01 99 -PlayingGuitar/v_PlayingGuitar_g24_c04 62 -FloorGymnastics/v_FloorGymnastics_g16_c01 29 -HandstandWalking/v_HandstandWalking_g15_c03 37 -WalkingWithDog/v_WalkingWithDog_g19_c01 97 -TennisSwing/v_TennisSwing_g22_c01 91 -Typing/v_Typing_g16_c04 94 -PullUps/v_PullUps_g20_c03 69 -WallPushups/v_WallPushups_g22_c01 98 -Lunges/v_Lunges_g20_c03 51 -Surfing/v_Surfing_g18_c03 87 -BlowingCandles/v_BlowingCandles_g23_c02 13 -PlayingGuitar/v_PlayingGuitar_g17_c04 62 -PullUps/v_PullUps_g23_c04 69 -Haircut/v_Haircut_g24_c01 33 -Skijet/v_Skijet_g09_c01 81 -SoccerPenalty/v_SoccerPenalty_g20_c05 84 -Skiing/v_Skiing_g19_c04 80 -PlayingSitar/v_PlayingSitar_g19_c07 64 -Rafting/v_Rafting_g22_c03 72 -Biking/v_Biking_g13_c06 10 -PullUps/v_PullUps_g21_c03 69 -BlowDryHair/v_BlowDryHair_g08_c05 12 -Archery/v_Archery_g23_c06 2 -CleanAndJerk/v_CleanAndJerk_g09_c02 20 -HorseRiding/v_HorseRiding_g11_c05 41 -Billiards/v_Billiards_g10_c04 11 -WalkingWithDog/v_WalkingWithDog_g18_c04 97 -HammerThrow/v_HammerThrow_g13_c03 35 -HorseRiding/v_HorseRiding_g16_c06 41 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c07 16 -BandMarching/v_BandMarching_g25_c07 5 -Punch/v_Punch_g13_c03 70 -HorseRiding/v_HorseRiding_g14_c06 41 -Skijet/v_Skijet_g09_c04 81 -ApplyEyeMakeup/v_ApplyEyeMakeup_g14_c04 0 -MoppingFloor/v_MoppingFloor_g14_c04 54 -BalanceBeam/v_BalanceBeam_g24_c04 4 -Mixing/v_Mixing_g08_c01 53 -MilitaryParade/v_MilitaryParade_g10_c02 52 -SalsaSpin/v_SalsaSpin_g20_c04 76 -Haircut/v_Haircut_g21_c02 33 -JumpingJack/v_JumpingJack_g14_c03 46 -HighJump/v_HighJump_g11_c07 39 -HeadMassage/v_HeadMassage_g11_c04 38 -Diving/v_Diving_g11_c01 25 -BlowDryHair/v_BlowDryHair_g11_c03 12 -WallPushups/v_WallPushups_g13_c02 98 -SkateBoarding/v_SkateBoarding_g13_c04 79 -UnevenBars/v_UnevenBars_g08_c03 95 -Hammering/v_Hammering_g13_c06 34 -ShavingBeard/v_ShavingBeard_g19_c02 77 -BandMarching/v_BandMarching_g11_c05 5 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c07 16 -SoccerJuggling/v_SoccerJuggling_g25_c01 83 -Biking/v_Biking_g08_c01 10 -PlayingDhol/v_PlayingDhol_g20_c02 60 -HorseRace/v_HorseRace_g14_c01 40 -HorseRace/v_HorseRace_g12_c03 40 -HulaHoop/v_HulaHoop_g19_c01 42 -FloorGymnastics/v_FloorGymnastics_g18_c04 29 -Swing/v_Swing_g22_c04 88 -Basketball/v_Basketball_g23_c02 7 -Basketball/v_Basketball_g25_c07 7 -PlayingDaf/v_PlayingDaf_g18_c04 59 -Rowing/v_Rowing_g22_c01 75 -CricketBowling/v_CricketBowling_g25_c03 22 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c07 17 -HammerThrow/v_HammerThrow_g21_c03 35 -FloorGymnastics/v_FloorGymnastics_g15_c05 29 -YoYo/v_YoYo_g12_c01 100 -Diving/v_Diving_g16_c04 25 -MilitaryParade/v_MilitaryParade_g17_c01 52 -TableTennisShot/v_TableTennisShot_g13_c04 89 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c04 16 -BlowDryHair/v_BlowDryHair_g12_c06 12 -BandMarching/v_BandMarching_g23_c02 5 -HighJump/v_HighJump_g11_c03 39 -FrontCrawl/v_FrontCrawl_g14_c05 31 -HorseRace/v_HorseRace_g20_c05 40 -Bowling/v_Bowling_g19_c04 15 -ParallelBars/v_ParallelBars_g10_c02 56 -SkateBoarding/v_SkateBoarding_g15_c03 79 -Kayaking/v_Kayaking_g21_c02 48 -TableTennisShot/v_TableTennisShot_g16_c02 89 -PizzaTossing/v_PizzaTossing_g14_c04 57 -FrisbeeCatch/v_FrisbeeCatch_g13_c01 30 -Fencing/v_Fencing_g17_c04 27 -WritingOnBoard/v_WritingOnBoard_g22_c03 99 -BlowDryHair/v_BlowDryHair_g21_c06 12 -Archery/v_Archery_g08_c04 2 -Rafting/v_Rafting_g15_c01 72 -HandstandPushups/v_HandStandPushups_g16_c06 36 -HorseRiding/v_HorseRiding_g25_c07 41 -Knitting/v_Knitting_g09_c02 49 -PlayingCello/v_PlayingCello_g24_c01 58 -PlayingPiano/v_PlayingPiano_g15_c01 63 -SoccerJuggling/v_SoccerJuggling_g13_c02 83 -WritingOnBoard/v_WritingOnBoard_g23_c06 99 -StillRings/v_StillRings_g21_c01 85 -PushUps/v_PushUps_g22_c01 71 -PullUps/v_PullUps_g16_c03 69 -Biking/v_Biking_g09_c03 10 -Rowing/v_Rowing_g24_c05 75 -Punch/v_Punch_g16_c05 70 -PlayingDhol/v_PlayingDhol_g10_c06 60 -PlayingViolin/v_PlayingViolin_g08_c04 66 -PlayingGuitar/v_PlayingGuitar_g25_c03 62 -HorseRace/v_HorseRace_g12_c01 40 -HorseRiding/v_HorseRiding_g21_c02 41 -StillRings/v_StillRings_g20_c01 85 -Knitting/v_Knitting_g21_c03 49 -PlayingDhol/v_PlayingDhol_g22_c04 60 -BlowingCandles/v_BlowingCandles_g12_c05 13 -Haircut/v_Haircut_g19_c02 33 -Hammering/v_Hammering_g10_c05 34 -BenchPress/v_BenchPress_g16_c02 9 -GolfSwing/v_GolfSwing_g09_c01 32 -JavelinThrow/v_JavelinThrow_g12_c03 44 -WritingOnBoard/v_WritingOnBoard_g09_c06 99 -Rafting/v_Rafting_g11_c02 72 -PlayingViolin/v_PlayingViolin_g23_c04 66 -JavelinThrow/v_JavelinThrow_g18_c02 44 -SumoWrestling/v_SumoWrestling_g18_c04 86 -Basketball/v_Basketball_g11_c01 7 -Skiing/v_Skiing_g11_c01 80 -WallPushups/v_WallPushups_g19_c04 98 -CricketBowling/v_CricketBowling_g25_c07 22 -PlayingSitar/v_PlayingSitar_g25_c03 64 -PlayingTabla/v_PlayingTabla_g18_c05 65 -WritingOnBoard/v_WritingOnBoard_g09_c03 99 -BalanceBeam/v_BalanceBeam_g22_c01 4 -JumpRope/v_JumpRope_g22_c05 47 -Fencing/v_Fencing_g21_c04 27 -PlayingFlute/v_PlayingFlute_g24_c04 61 -CliffDiving/v_CliffDiving_g14_c01 21 -VolleyballSpiking/v_VolleyballSpiking_g25_c04 96 -CricketBowling/v_CricketBowling_g16_c05 22 -BenchPress/v_BenchPress_g14_c02 9 -Surfing/v_Surfing_g25_c02 87 -JumpingJack/v_JumpingJack_g25_c02 46 -HorseRiding/v_HorseRiding_g13_c02 41 -BoxingPunchingBag/v_BoxingPunchingBag_g25_c06 16 -PlayingDaf/v_PlayingDaf_g14_c07 59 -PullUps/v_PullUps_g22_c02 69 -JumpRope/v_JumpRope_g15_c04 47 -Kayaking/v_Kayaking_g18_c03 48 -WallPushups/v_WallPushups_g16_c02 98 -Drumming/v_Drumming_g21_c06 26 -ApplyEyeMakeup/v_ApplyEyeMakeup_g18_c04 0 -CleanAndJerk/v_CleanAndJerk_g12_c04 20 -CricketShot/v_CricketShot_g17_c05 23 -Billiards/v_Billiards_g16_c01 11 -SumoWrestling/v_SumoWrestling_g18_c01 86 -HighJump/v_HighJump_g12_c02 39 -PullUps/v_PullUps_g18_c03 69 -PlayingSitar/v_PlayingSitar_g16_c03 64 -Archery/v_Archery_g15_c04 2 -Hammering/v_Hammering_g15_c07 34 -FrontCrawl/v_FrontCrawl_g12_c03 31 -PlayingGuitar/v_PlayingGuitar_g19_c07 62 -PizzaTossing/v_PizzaTossing_g25_c04 57 -PlayingDaf/v_PlayingDaf_g14_c05 59 -GolfSwing/v_GolfSwing_g09_c04 32 -ShavingBeard/v_ShavingBeard_g25_c06 77 -SalsaSpin/v_SalsaSpin_g20_c02 76 -PlayingViolin/v_PlayingViolin_g10_c03 66 -MoppingFloor/v_MoppingFloor_g08_c01 54 -Archery/v_Archery_g20_c04 2 -WallPushups/v_WallPushups_g13_c03 98 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c05 17 -Punch/v_Punch_g22_c01 70 -PlayingGuitar/v_PlayingGuitar_g17_c02 62 -Archery/v_Archery_g20_c01 2 -UnevenBars/v_UnevenBars_g10_c03 95 -Drumming/v_Drumming_g12_c05 26 -RopeClimbing/v_RopeClimbing_g20_c01 74 -WallPushups/v_WallPushups_g25_c05 98 -BlowingCandles/v_BlowingCandles_g19_c04 13 -Surfing/v_Surfing_g10_c01 87 -FrisbeeCatch/v_FrisbeeCatch_g12_c05 30 -Rafting/v_Rafting_g25_c04 72 -BaseballPitch/v_BaseballPitch_g22_c02 6 -Bowling/v_Bowling_g09_c07 15 -Shotput/v_Shotput_g08_c02 78 -CricketBowling/v_CricketBowling_g16_c02 22 -HighJump/v_HighJump_g08_c01 39 -Fencing/v_Fencing_g10_c01 27 -PlayingViolin/v_PlayingViolin_g25_c01 66 -Knitting/v_Knitting_g14_c02 49 -PushUps/v_PushUps_g14_c04 71 -LongJump/v_LongJump_g13_c06 50 -HorseRiding/v_HorseRiding_g12_c04 41 -BrushingTeeth/v_BrushingTeeth_g24_c07 19 -HulaHoop/v_HulaHoop_g24_c02 42 -BenchPress/v_BenchPress_g25_c02 9 -Bowling/v_Bowling_g25_c04 15 -JumpRope/v_JumpRope_g20_c06 47 -JugglingBalls/v_JugglingBalls_g23_c01 45 -Punch/v_Punch_g20_c04 70 -Basketball/v_Basketball_g23_c01 7 -SoccerPenalty/v_SoccerPenalty_g16_c01 84 -BodyWeightSquats/v_BodyWeightSquats_g08_c03 14 -HighJump/v_HighJump_g15_c04 39 -ThrowDiscus/v_ThrowDiscus_g12_c02 92 -Archery/v_Archery_g20_c06 2 -PlayingTabla/v_PlayingTabla_g21_c03 65 -PlayingTabla/v_PlayingTabla_g15_c02 65 -ApplyEyeMakeup/v_ApplyEyeMakeup_g22_c05 0 -Basketball/v_Basketball_g12_c03 7 -WallPushups/v_WallPushups_g10_c05 98 -BodyWeightSquats/v_BodyWeightSquats_g25_c01 14 -BenchPress/v_BenchPress_g25_c05 9 -PlayingViolin/v_PlayingViolin_g21_c01 66 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c02 73 -BlowingCandles/v_BlowingCandles_g10_c02 13 -Skijet/v_Skijet_g15_c02 81 -Rowing/v_Rowing_g16_c01 75 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c03 17 -GolfSwing/v_GolfSwing_g08_c03 32 -BlowDryHair/v_BlowDryHair_g22_c04 12 -PlayingDhol/v_PlayingDhol_g11_c03 60 -BabyCrawling/v_BabyCrawling_g11_c03 3 -IceDancing/v_IceDancing_g08_c01 43 -BaseballPitch/v_BaseballPitch_g17_c02 6 -Basketball/v_Basketball_g13_c01 7 -RopeClimbing/v_RopeClimbing_g20_c03 74 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c07 17 -WallPushups/v_WallPushups_g22_c03 98 -Swing/v_Swing_g12_c01 88 -MoppingFloor/v_MoppingFloor_g08_c03 54 -HighJump/v_HighJump_g18_c03 39 -WalkingWithDog/v_WalkingWithDog_g18_c02 97 -Lunges/v_Lunges_g12_c01 51 -VolleyballSpiking/v_VolleyballSpiking_g08_c05 96 -PushUps/v_PushUps_g19_c01 71 -PlayingSitar/v_PlayingSitar_g14_c01 64 -MoppingFloor/v_MoppingFloor_g17_c03 54 -BreastStroke/v_BreastStroke_g25_c02 18 -RopeClimbing/v_RopeClimbing_g15_c04 74 -PommelHorse/v_PommelHorse_g19_c03 68 -ApplyEyeMakeup/v_ApplyEyeMakeup_g21_c03 0 -Hammering/v_Hammering_g08_c04 34 -RopeClimbing/v_RopeClimbing_g11_c02 74 -MilitaryParade/v_MilitaryParade_g14_c02 52 -StillRings/v_StillRings_g15_c04 85 -ThrowDiscus/v_ThrowDiscus_g13_c04 92 -FrisbeeCatch/v_FrisbeeCatch_g18_c03 30 -WallPushups/v_WallPushups_g17_c07 98 -FieldHockeyPenalty/v_FieldHockeyPenalty_g22_c01 28 -HeadMassage/v_HeadMassage_g22_c05 38 -PlayingDhol/v_PlayingDhol_g13_c01 60 -Punch/v_Punch_g24_c04 70 -WalkingWithDog/v_WalkingWithDog_g22_c04 97 -PlayingSitar/v_PlayingSitar_g17_c04 64 -HulaHoop/v_HulaHoop_g14_c01 42 -CliffDiving/v_CliffDiving_g20_c05 21 -Surfing/v_Surfing_g20_c01 87 -Shotput/v_Shotput_g16_c06 78 -Shotput/v_Shotput_g23_c06 78 -PoleVault/v_PoleVault_g16_c03 67 -MilitaryParade/v_MilitaryParade_g10_c05 52 -CricketShot/v_CricketShot_g22_c03 23 -RockClimbingIndoor/v_RockClimbingIndoor_g14_c02 73 -PlayingTabla/v_PlayingTabla_g20_c04 65 -CliffDiving/v_CliffDiving_g15_c04 21 -PlayingTabla/v_PlayingTabla_g12_c05 65 -PizzaTossing/v_PizzaTossing_g11_c03 57 -JavelinThrow/v_JavelinThrow_g11_c01 44 -Hammering/v_Hammering_g18_c01 34 -TennisSwing/v_TennisSwing_g17_c03 91 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c03 73 -BenchPress/v_BenchPress_g11_c03 9 -HulaHoop/v_HulaHoop_g09_c04 42 -BenchPress/v_BenchPress_g08_c03 9 -Typing/v_Typing_g18_c03 94 -PlayingDhol/v_PlayingDhol_g18_c05 60 -PlayingFlute/v_PlayingFlute_g21_c02 61 -Hammering/v_Hammering_g23_c05 34 -Nunchucks/v_Nunchucks_g25_c03 55 -Surfing/v_Surfing_g24_c01 87 -WritingOnBoard/v_WritingOnBoard_g25_c03 99 -Drumming/v_Drumming_g24_c01 26 -Swing/v_Swing_g11_c01 88 -MoppingFloor/v_MoppingFloor_g23_c04 54 -TrampolineJumping/v_TrampolineJumping_g15_c05 93 -LongJump/v_LongJump_g15_c02 50 -BlowDryHair/v_BlowDryHair_g20_c05 12 -PlayingCello/v_PlayingCello_g17_c01 58 -MilitaryParade/v_MilitaryParade_g08_c04 52 -Kayaking/v_Kayaking_g11_c03 48 -FrisbeeCatch/v_FrisbeeCatch_g24_c02 30 -PizzaTossing/v_PizzaTossing_g15_c02 57 -PlayingDhol/v_PlayingDhol_g14_c03 60 -BaseballPitch/v_BaseballPitch_g08_c01 6 -BrushingTeeth/v_BrushingTeeth_g24_c03 19 -PlayingPiano/v_PlayingPiano_g13_c02 63 -CricketBowling/v_CricketBowling_g16_c03 22 -BalanceBeam/v_BalanceBeam_g18_c01 4 -MilitaryParade/v_MilitaryParade_g24_c03 52 -SalsaSpin/v_SalsaSpin_g19_c03 76 -Drumming/v_Drumming_g14_c01 26 -BaseballPitch/v_BaseballPitch_g16_c01 6 -WallPushups/v_WallPushups_g08_c04 98 -ThrowDiscus/v_ThrowDiscus_g25_c04 92 -HorseRiding/v_HorseRiding_g21_c04 41 -Basketball/v_Basketball_g13_c04 7 -Surfing/v_Surfing_g18_c01 87 -GolfSwing/v_GolfSwing_g19_c01 32 -PlayingSitar/v_PlayingSitar_g10_c03 64 -ShavingBeard/v_ShavingBeard_g19_c07 77 -SoccerJuggling/v_SoccerJuggling_g14_c02 83 -CliffDiving/v_CliffDiving_g20_c03 21 -PlayingDhol/v_PlayingDhol_g12_c01 60 -Rowing/v_Rowing_g11_c01 75 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c03 16 -CricketShot/v_CricketShot_g18_c01 23 -BlowDryHair/v_BlowDryHair_g10_c07 12 -LongJump/v_LongJump_g11_c01 50 -Rowing/v_Rowing_g25_c02 75 -WallPushups/v_WallPushups_g23_c04 98 -Knitting/v_Knitting_g11_c06 49 -TaiChi/v_TaiChi_g21_c02 90 -MilitaryParade/v_MilitaryParade_g10_c03 52 -Fencing/v_Fencing_g13_c01 27 -GolfSwing/v_GolfSwing_g25_c04 32 -StillRings/v_StillRings_g12_c03 85 -Punch/v_Punch_g22_c04 70 -SalsaSpin/v_SalsaSpin_g16_c04 76 -SkateBoarding/v_SkateBoarding_g15_c01 79 -ThrowDiscus/v_ThrowDiscus_g21_c02 92 -BlowDryHair/v_BlowDryHair_g21_c02 12 -HeadMassage/v_HeadMassage_g25_c01 38 -CricketShot/v_CricketShot_g18_c05 23 -Knitting/v_Knitting_g15_c06 49 -FrisbeeCatch/v_FrisbeeCatch_g17_c01 30 -BlowDryHair/v_BlowDryHair_g10_c06 12 -CricketBowling/v_CricketBowling_g09_c02 22 -WritingOnBoard/v_WritingOnBoard_g23_c07 99 -BabyCrawling/v_BabyCrawling_g13_c03 3 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c01 17 -FrontCrawl/v_FrontCrawl_g24_c01 31 -SoccerPenalty/v_SoccerPenalty_g08_c03 84 -BasketballDunk/v_BasketballDunk_g15_c03 8 -ApplyEyeMakeup/v_ApplyEyeMakeup_g16_c02 0 -VolleyballSpiking/v_VolleyballSpiking_g17_c03 96 -BodyWeightSquats/v_BodyWeightSquats_g24_c02 14 -Knitting/v_Knitting_g24_c01 49 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c05 17 -PlayingTabla/v_PlayingTabla_g19_c01 65 -Skijet/v_Skijet_g13_c03 81 -Rafting/v_Rafting_g12_c02 72 -CuttingInKitchen/v_CuttingInKitchen_g12_c04 24 -Archery/v_Archery_g10_c03 2 -Basketball/v_Basketball_g08_c04 7 -Biking/v_Biking_g08_c06 10 -PoleVault/v_PoleVault_g16_c04 67 -SoccerPenalty/v_SoccerPenalty_g23_c03 84 -FieldHockeyPenalty/v_FieldHockeyPenalty_g20_c04 28 -Skiing/v_Skiing_g18_c03 80 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c03 73 -PlayingDaf/v_PlayingDaf_g15_c03 59 -CliffDiving/v_CliffDiving_g21_c03 21 -HammerThrow/v_HammerThrow_g13_c06 35 -Skiing/v_Skiing_g23_c01 80 -Bowling/v_Bowling_g22_c04 15 -WritingOnBoard/v_WritingOnBoard_g19_c01 99 -MilitaryParade/v_MilitaryParade_g22_c04 52 -BlowDryHair/v_BlowDryHair_g15_c03 12 -Bowling/v_Bowling_g18_c02 15 -Surfing/v_Surfing_g08_c07 87 -HorseRiding/v_HorseRiding_g10_c05 41 -FrontCrawl/v_FrontCrawl_g16_c03 31 -SumoWrestling/v_SumoWrestling_g14_c02 86 -SalsaSpin/v_SalsaSpin_g11_c02 76 -PlayingPiano/v_PlayingPiano_g16_c03 63 -Archery/v_Archery_g20_c05 2 -TableTennisShot/v_TableTennisShot_g15_c01 89 -FloorGymnastics/v_FloorGymnastics_g13_c03 29 -PlayingGuitar/v_PlayingGuitar_g13_c04 62 -ParallelBars/v_ParallelBars_g13_c02 56 -HighJump/v_HighJump_g19_c04 39 -SoccerJuggling/v_SoccerJuggling_g16_c06 83 -HighJump/v_HighJump_g21_c04 39 -IceDancing/v_IceDancing_g18_c04 43 -BoxingSpeedBag/v_BoxingSpeedBag_g21_c04 17 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c07 73 -Diving/v_Diving_g20_c06 25 -CricketShot/v_CricketShot_g10_c02 23 -ParallelBars/v_ParallelBars_g21_c04 56 -HighJump/v_HighJump_g21_c02 39 -PlayingDaf/v_PlayingDaf_g25_c02 59 -ParallelBars/v_ParallelBars_g15_c02 56 -PlayingSitar/v_PlayingSitar_g11_c05 64 -PushUps/v_PushUps_g25_c03 71 -Billiards/v_Billiards_g10_c02 11 -BasketballDunk/v_BasketballDunk_g19_c02 8 -BlowingCandles/v_BlowingCandles_g24_c04 13 -WritingOnBoard/v_WritingOnBoard_g13_c05 99 -Knitting/v_Knitting_g08_c04 49 -Rafting/v_Rafting_g25_c02 72 -SoccerJuggling/v_SoccerJuggling_g18_c01 83 -BrushingTeeth/v_BrushingTeeth_g16_c03 19 -CricketBowling/v_CricketBowling_g12_c03 22 -Surfing/v_Surfing_g14_c03 87 -IceDancing/v_IceDancing_g19_c05 43 -UnevenBars/v_UnevenBars_g20_c02 95 -YoYo/v_YoYo_g16_c06 100 -BodyWeightSquats/v_BodyWeightSquats_g25_c03 14 -IceDancing/v_IceDancing_g17_c04 43 -Shotput/v_Shotput_g24_c03 78 -BlowDryHair/v_BlowDryHair_g08_c04 12 -TableTennisShot/v_TableTennisShot_g10_c04 89 -Typing/v_Typing_g17_c02 94 -SkateBoarding/v_SkateBoarding_g08_c05 79 -HighJump/v_HighJump_g17_c03 39 -PushUps/v_PushUps_g19_c04 71 -PizzaTossing/v_PizzaTossing_g14_c02 57 -JugglingBalls/v_JugglingBalls_g17_c03 45 -SumoWrestling/v_SumoWrestling_g19_c04 86 -PlayingSitar/v_PlayingSitar_g17_c05 64 -PlayingDaf/v_PlayingDaf_g19_c01 59 -Kayaking/v_Kayaking_g10_c02 48 -BalanceBeam/v_BalanceBeam_g11_c01 4 -HammerThrow/v_HammerThrow_g12_c01 35 -CricketShot/v_CricketShot_g16_c02 23 -HeadMassage/v_HeadMassage_g15_c07 38 -PlayingPiano/v_PlayingPiano_g20_c02 63 -MilitaryParade/v_MilitaryParade_g23_c01 52 -WalkingWithDog/v_WalkingWithDog_g15_c01 97 -FieldHockeyPenalty/v_FieldHockeyPenalty_g08_c04 28 -VolleyballSpiking/v_VolleyballSpiking_g08_c04 96 -CliffDiving/v_CliffDiving_g25_c02 21 -PlayingGuitar/v_PlayingGuitar_g25_c04 62 -BasketballDunk/v_BasketballDunk_g15_c07 8 -Bowling/v_Bowling_g25_c02 15 -WritingOnBoard/v_WritingOnBoard_g18_c02 99 -CliffDiving/v_CliffDiving_g11_c06 21 -StillRings/v_StillRings_g23_c01 85 -CleanAndJerk/v_CleanAndJerk_g18_c01 20 -BlowingCandles/v_BlowingCandles_g11_c03 13 -Nunchucks/v_Nunchucks_g25_c04 55 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c06 16 -Shotput/v_Shotput_g13_c04 78 -Rafting/v_Rafting_g20_c01 72 -IceDancing/v_IceDancing_g14_c04 43 -CricketShot/v_CricketShot_g22_c06 23 -Knitting/v_Knitting_g16_c03 49 -HandstandWalking/v_HandstandWalking_g18_c04 37 -SoccerJuggling/v_SoccerJuggling_g24_c05 83 -Skiing/v_Skiing_g08_c02 80 -FrisbeeCatch/v_FrisbeeCatch_g18_c02 30 -Hammering/v_Hammering_g21_c03 34 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c05 16 -HammerThrow/v_HammerThrow_g08_c01 35 -MilitaryParade/v_MilitaryParade_g18_c02 52 -CleanAndJerk/v_CleanAndJerk_g10_c01 20 -PlayingPiano/v_PlayingPiano_g10_c03 63 -CliffDiving/v_CliffDiving_g13_c02 21 -Nunchucks/v_Nunchucks_g14_c01 55 -BandMarching/v_BandMarching_g10_c01 5 -PushUps/v_PushUps_g23_c02 71 -ShavingBeard/v_ShavingBeard_g17_c07 77 -HandstandWalking/v_HandstandWalking_g22_c03 37 -WritingOnBoard/v_WritingOnBoard_g21_c02 99 -PlayingSitar/v_PlayingSitar_g11_c02 64 -TaiChi/v_TaiChi_g11_c02 90 -StillRings/v_StillRings_g11_c04 85 -Hammering/v_Hammering_g22_c06 34 -UnevenBars/v_UnevenBars_g15_c01 95 -Nunchucks/v_Nunchucks_g16_c03 55 -GolfSwing/v_GolfSwing_g23_c06 32 -Archery/v_Archery_g12_c04 2 -BodyWeightSquats/v_BodyWeightSquats_g22_c03 14 -Bowling/v_Bowling_g24_c02 15 -CliffDiving/v_CliffDiving_g17_c01 21 -Billiards/v_Billiards_g17_c01 11 -Punch/v_Punch_g11_c02 70 -BandMarching/v_BandMarching_g24_c02 5 -Rowing/v_Rowing_g23_c03 75 -SalsaSpin/v_SalsaSpin_g09_c02 76 -PlayingSitar/v_PlayingSitar_g21_c01 64 -BandMarching/v_BandMarching_g23_c04 5 -RockClimbingIndoor/v_RockClimbingIndoor_g25_c05 73 -Diving/v_Diving_g24_c05 25 -CuttingInKitchen/v_CuttingInKitchen_g08_c03 24 -Surfing/v_Surfing_g16_c07 87 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c04 28 -PullUps/v_PullUps_g13_c02 69 -JumpRope/v_JumpRope_g12_c04 47 -PlayingTabla/v_PlayingTabla_g09_c02 65 -HorseRiding/v_HorseRiding_g21_c03 41 -CleanAndJerk/v_CleanAndJerk_g17_c02 20 -BenchPress/v_BenchPress_g11_c02 9 -FieldHockeyPenalty/v_FieldHockeyPenalty_g25_c05 28 -WallPushups/v_WallPushups_g16_c01 98 -TennisSwing/v_TennisSwing_g24_c03 91 -CuttingInKitchen/v_CuttingInKitchen_g16_c01 24 -BabyCrawling/v_BabyCrawling_g22_c03 3 -MilitaryParade/v_MilitaryParade_g21_c04 52 -JugglingBalls/v_JugglingBalls_g22_c02 45 -SkateBoarding/v_SkateBoarding_g09_c02 79 -SkyDiving/v_SkyDiving_g19_c02 82 -Nunchucks/v_Nunchucks_g18_c01 55 -Fencing/v_Fencing_g11_c01 27 -FloorGymnastics/v_FloorGymnastics_g21_c03 29 -LongJump/v_LongJump_g24_c01 50 -Billiards/v_Billiards_g19_c02 11 -Shotput/v_Shotput_g12_c04 78 -YoYo/v_YoYo_g22_c03 100 -PlayingDaf/v_PlayingDaf_g15_c01 59 -FieldHockeyPenalty/v_FieldHockeyPenalty_g21_c04 28 -BalanceBeam/v_BalanceBeam_g17_c03 4 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c02 28 -BrushingTeeth/v_BrushingTeeth_g25_c01 19 -HorseRace/v_HorseRace_g17_c01 40 -LongJump/v_LongJump_g13_c02 50 -Typing/v_Typing_g14_c06 94 -SkyDiving/v_SkyDiving_g09_c04 82 -TableTennisShot/v_TableTennisShot_g23_c06 89 -PoleVault/v_PoleVault_g10_c06 67 -PlayingSitar/v_PlayingSitar_g09_c05 64 -CliffDiving/v_CliffDiving_g23_c04 21 -SumoWrestling/v_SumoWrestling_g17_c04 86 -CleanAndJerk/v_CleanAndJerk_g18_c04 20 -WritingOnBoard/v_WritingOnBoard_g09_c05 99 -Typing/v_Typing_g09_c01 94 -ShavingBeard/v_ShavingBeard_g19_c01 77 -Punch/v_Punch_g23_c01 70 -HeadMassage/v_HeadMassage_g08_c03 38 -GolfSwing/v_GolfSwing_g17_c07 32 -CuttingInKitchen/v_CuttingInKitchen_g10_c03 24 -BoxingSpeedBag/v_BoxingSpeedBag_g24_c04 17 -Archery/v_Archery_g10_c04 2 -Rafting/v_Rafting_g11_c04 72 -Skijet/v_Skijet_g21_c01 81 -CricketBowling/v_CricketBowling_g08_c04 22 -ApplyLipstick/v_ApplyLipstick_g25_c01 1 -PlayingDhol/v_PlayingDhol_g12_c02 60 -PlayingDaf/v_PlayingDaf_g14_c04 59 -FloorGymnastics/v_FloorGymnastics_g18_c03 29 -WalkingWithDog/v_WalkingWithDog_g18_c01 97 -Archery/v_Archery_g09_c02 2 -BasketballDunk/v_BasketballDunk_g09_c02 8 -Biking/v_Biking_g20_c04 10 -CricketShot/v_CricketShot_g21_c01 23 -PushUps/v_PushUps_g11_c03 71 -SkyDiving/v_SkyDiving_g09_c02 82 -BenchPress/v_BenchPress_g21_c03 9 -UnevenBars/v_UnevenBars_g24_c03 95 -Hammering/v_Hammering_g20_c02 34 -Surfing/v_Surfing_g21_c04 87 -PoleVault/v_PoleVault_g18_c06 67 -TennisSwing/v_TennisSwing_g10_c01 91 -Knitting/v_Knitting_g13_c03 49 -BoxingSpeedBag/v_BoxingSpeedBag_g19_c05 17 -Shotput/v_Shotput_g25_c04 78 -CliffDiving/v_CliffDiving_g10_c02 21 -MilitaryParade/v_MilitaryParade_g21_c03 52 -BlowingCandles/v_BlowingCandles_g12_c06 13 -FieldHockeyPenalty/v_FieldHockeyPenalty_g20_c01 28 -TrampolineJumping/v_TrampolineJumping_g24_c03 93 -PlayingDhol/v_PlayingDhol_g13_c03 60 -VolleyballSpiking/v_VolleyballSpiking_g09_c03 96 -FrisbeeCatch/v_FrisbeeCatch_g25_c02 30 -PlayingDhol/v_PlayingDhol_g13_c07 60 -PlayingFlute/v_PlayingFlute_g08_c01 61 -JumpRope/v_JumpRope_g08_c02 47 -SumoWrestling/v_SumoWrestling_g15_c02 86 -HorseRace/v_HorseRace_g25_c03 40 -Fencing/v_Fencing_g17_c02 27 -BlowingCandles/v_BlowingCandles_g09_c02 13 -FrisbeeCatch/v_FrisbeeCatch_g24_c04 30 -ParallelBars/v_ParallelBars_g10_c01 56 -UnevenBars/v_UnevenBars_g24_c02 95 -Fencing/v_Fencing_g09_c06 27 -BlowingCandles/v_BlowingCandles_g23_c03 13 -TrampolineJumping/v_TrampolineJumping_g20_c02 93 -HorseRiding/v_HorseRiding_g23_c03 41 -ParallelBars/v_ParallelBars_g15_c03 56 -BoxingSpeedBag/v_BoxingSpeedBag_g08_c05 17 -SumoWrestling/v_SumoWrestling_g08_c05 86 -WalkingWithDog/v_WalkingWithDog_g17_c04 97 -BandMarching/v_BandMarching_g23_c01 5 -WallPushups/v_WallPushups_g17_c03 98 -RopeClimbing/v_RopeClimbing_g23_c04 74 -Archery/v_Archery_g18_c02 2 -PlayingViolin/v_PlayingViolin_g21_c02 66 -PlayingCello/v_PlayingCello_g15_c04 58 -SoccerPenalty/v_SoccerPenalty_g08_c04 84 -YoYo/v_YoYo_g09_c02 100 -HulaHoop/v_HulaHoop_g11_c01 42 -HandstandWalking/v_HandstandWalking_g15_c02 37 -SoccerJuggling/v_SoccerJuggling_g25_c05 83 -Mixing/v_Mixing_g23_c01 53 -ThrowDiscus/v_ThrowDiscus_g24_c03 92 -PlayingDhol/v_PlayingDhol_g15_c01 60 -RockClimbingIndoor/v_RockClimbingIndoor_g16_c03 73 -StillRings/v_StillRings_g23_c03 85 -Hammering/v_Hammering_g11_c04 34 -PlayingGuitar/v_PlayingGuitar_g21_c06 62 -WritingOnBoard/v_WritingOnBoard_g25_c01 99 -JumpingJack/v_JumpingJack_g13_c05 46 -MilitaryParade/v_MilitaryParade_g20_c01 52 -CricketShot/v_CricketShot_g24_c01 23 -LongJump/v_LongJump_g11_c04 50 -Mixing/v_Mixing_g11_c04 53 -PlayingDhol/v_PlayingDhol_g19_c02 60 -MoppingFloor/v_MoppingFloor_g15_c02 54 -Hammering/v_Hammering_g21_c01 34 -YoYo/v_YoYo_g24_c02 100 -Archery/v_Archery_g08_c03 2 -Hammering/v_Hammering_g10_c03 34 -UnevenBars/v_UnevenBars_g25_c04 95 -VolleyballSpiking/v_VolleyballSpiking_g08_c06 96 -SkyDiving/v_SkyDiving_g15_c02 82 -PlayingDhol/v_PlayingDhol_g08_c05 60 -PlayingCello/v_PlayingCello_g17_c04 58 -HandstandWalking/v_HandstandWalking_g12_c02 37 -HorseRace/v_HorseRace_g11_c07 40 -HeadMassage/v_HeadMassage_g15_c03 38 -HorseRiding/v_HorseRiding_g25_c03 41 -TennisSwing/v_TennisSwing_g11_c02 91 -StillRings/v_StillRings_g18_c04 85 -IceDancing/v_IceDancing_g09_c01 43 -RopeClimbing/v_RopeClimbing_g19_c04 74 -TennisSwing/v_TennisSwing_g13_c03 91 -PlayingViolin/v_PlayingViolin_g09_c04 66 -WalkingWithDog/v_WalkingWithDog_g12_c05 97 -CricketShot/v_CricketShot_g08_c01 23 -SalsaSpin/v_SalsaSpin_g10_c03 76 -WallPushups/v_WallPushups_g18_c01 98 -BenchPress/v_BenchPress_g23_c04 9 -Biking/v_Biking_g21_c03 10 -BodyWeightSquats/v_BodyWeightSquats_g09_c06 14 -Punch/v_Punch_g19_c05 70 -ShavingBeard/v_ShavingBeard_g24_c03 77 -ShavingBeard/v_ShavingBeard_g16_c01 77 -PlayingDaf/v_PlayingDaf_g17_c02 59 -ParallelBars/v_ParallelBars_g09_c05 56 -ShavingBeard/v_ShavingBeard_g16_c02 77 -StillRings/v_StillRings_g17_c02 85 -ApplyLipstick/v_ApplyLipstick_g09_c02 1 -HammerThrow/v_HammerThrow_g20_c02 35 -HammerThrow/v_HammerThrow_g11_c04 35 -YoYo/v_YoYo_g18_c02 100 -JumpingJack/v_JumpingJack_g18_c03 46 -Diving/v_Diving_g12_c05 25 -Lunges/v_Lunges_g16_c01 51 -StillRings/v_StillRings_g19_c01 85 -Knitting/v_Knitting_g21_c01 49 -BrushingTeeth/v_BrushingTeeth_g25_c06 19 -HulaHoop/v_HulaHoop_g11_c04 42 -FloorGymnastics/v_FloorGymnastics_g17_c03 29 -HandstandPushups/v_HandStandPushups_g16_c05 36 -LongJump/v_LongJump_g25_c03 50 -Surfing/v_Surfing_g20_c06 87 -TennisSwing/v_TennisSwing_g25_c06 91 -Surfing/v_Surfing_g14_c02 87 -Punch/v_Punch_g17_c02 70 -Drumming/v_Drumming_g11_c03 26 -TableTennisShot/v_TableTennisShot_g08_c03 89 -HammerThrow/v_HammerThrow_g12_c04 35 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c05 28 -SoccerJuggling/v_SoccerJuggling_g24_c06 83 -BrushingTeeth/v_BrushingTeeth_g20_c04 19 -Kayaking/v_Kayaking_g23_c06 48 -BlowingCandles/v_BlowingCandles_g25_c05 13 -TrampolineJumping/v_TrampolineJumping_g22_c03 93 -PlayingDaf/v_PlayingDaf_g20_c06 59 -StillRings/v_StillRings_g19_c04 85 -LongJump/v_LongJump_g13_c03 50 -PushUps/v_PushUps_g22_c04 71 -JavelinThrow/v_JavelinThrow_g23_c01 44 -Hammering/v_Hammering_g25_c02 34 -CricketShot/v_CricketShot_g19_c03 23 -HammerThrow/v_HammerThrow_g09_c03 35 -BodyWeightSquats/v_BodyWeightSquats_g14_c03 14 -VolleyballSpiking/v_VolleyballSpiking_g11_c05 96 -PommelHorse/v_PommelHorse_g23_c02 68 -Kayaking/v_Kayaking_g20_c03 48 -Diving/v_Diving_g10_c06 25 -PlayingPiano/v_PlayingPiano_g13_c04 63 -SkateBoarding/v_SkateBoarding_g18_c04 79 -BasketballDunk/v_BasketballDunk_g17_c04 8 -CricketShot/v_CricketShot_g08_c07 23 -TableTennisShot/v_TableTennisShot_g09_c05 89 -FloorGymnastics/v_FloorGymnastics_g22_c02 29 -BlowDryHair/v_BlowDryHair_g20_c01 12 -PlayingFlute/v_PlayingFlute_g25_c05 61 -MilitaryParade/v_MilitaryParade_g12_c01 52 -CliffDiving/v_CliffDiving_g24_c04 21 -ApplyEyeMakeup/v_ApplyEyeMakeup_g17_c01 0 -HighJump/v_HighJump_g22_c01 39 -Skijet/v_Skijet_g17_c01 81 -HandstandPushups/v_HandStandPushups_g25_c06 36 -FrontCrawl/v_FrontCrawl_g18_c04 31 -BasketballDunk/v_BasketballDunk_g20_c06 8 -FrisbeeCatch/v_FrisbeeCatch_g24_c01 30 -PlayingTabla/v_PlayingTabla_g17_c02 65 -WallPushups/v_WallPushups_g25_c01 98 -PushUps/v_PushUps_g25_c04 71 -UnevenBars/v_UnevenBars_g09_c02 95 -TableTennisShot/v_TableTennisShot_g09_c02 89 -CuttingInKitchen/v_CuttingInKitchen_g10_c02 24 -Rowing/v_Rowing_g15_c06 75 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c06 17 -GolfSwing/v_GolfSwing_g08_c05 32 -BandMarching/v_BandMarching_g14_c01 5 -Shotput/v_Shotput_g13_c02 78 -Hammering/v_Hammering_g18_c05 34 -Diving/v_Diving_g13_c01 25 -HorseRace/v_HorseRace_g11_c04 40 -BasketballDunk/v_BasketballDunk_g16_c02 8 -Mixing/v_Mixing_g12_c05 53 -TennisSwing/v_TennisSwing_g08_c03 91 -ParallelBars/v_ParallelBars_g16_c03 56 -SalsaSpin/v_SalsaSpin_g18_c01 76 -PlayingViolin/v_PlayingViolin_g20_c04 66 -WalkingWithDog/v_WalkingWithDog_g11_c04 97 -HulaHoop/v_HulaHoop_g25_c04 42 -HorseRiding/v_HorseRiding_g11_c02 41 -Nunchucks/v_Nunchucks_g13_c03 55 -YoYo/v_YoYo_g19_c01 100 -Lunges/v_Lunges_g11_c06 51 -Diving/v_Diving_g11_c06 25 -JumpRope/v_JumpRope_g16_c01 47 -PlayingDhol/v_PlayingDhol_g18_c02 60 -Biking/v_Biking_g24_c07 10 -Punch/v_Punch_g19_c06 70 -WalkingWithDog/v_WalkingWithDog_g24_c04 97 -ShavingBeard/v_ShavingBeard_g14_c06 77 -FrontCrawl/v_FrontCrawl_g18_c05 31 -JumpingJack/v_JumpingJack_g25_c03 46 -PlayingSitar/v_PlayingSitar_g10_c01 64 -LongJump/v_LongJump_g23_c04 50 -HorseRiding/v_HorseRiding_g16_c04 41 -LongJump/v_LongJump_g15_c01 50 -Punch/v_Punch_g24_c06 70 -BandMarching/v_BandMarching_g17_c02 5 -BandMarching/v_BandMarching_g16_c02 5 -FrisbeeCatch/v_FrisbeeCatch_g08_c05 30 -BrushingTeeth/v_BrushingTeeth_g19_c01 19 -ApplyEyeMakeup/v_ApplyEyeMakeup_g10_c03 0 -HulaHoop/v_HulaHoop_g12_c03 42 -HorseRiding/v_HorseRiding_g17_c06 41 -PlayingCello/v_PlayingCello_g16_c07 58 -PlayingCello/v_PlayingCello_g16_c01 58 -Skiing/v_Skiing_g19_c02 80 -SoccerJuggling/v_SoccerJuggling_g10_c01 83 -JavelinThrow/v_JavelinThrow_g09_c03 44 -Drumming/v_Drumming_g10_c01 26 -MilitaryParade/v_MilitaryParade_g18_c03 52 -JumpRope/v_JumpRope_g22_c01 47 -BlowDryHair/v_BlowDryHair_g21_c03 12 -ApplyLipstick/v_ApplyLipstick_g24_c01 1 -FloorGymnastics/v_FloorGymnastics_g25_c04 29 -TrampolineJumping/v_TrampolineJumping_g15_c04 93 -PlayingDhol/v_PlayingDhol_g18_c04 60 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c05 16 -Punch/v_Punch_g19_c07 70 -Bowling/v_Bowling_g10_c03 15 -BrushingTeeth/v_BrushingTeeth_g20_c03 19 -HandstandPushups/v_HandStandPushups_g11_c02 36 -BodyWeightSquats/v_BodyWeightSquats_g18_c03 14 -Mixing/v_Mixing_g14_c02 53 -SoccerJuggling/v_SoccerJuggling_g11_c04 83 -PlayingCello/v_PlayingCello_g18_c06 58 -PlayingTabla/v_PlayingTabla_g21_c01 65 -PoleVault/v_PoleVault_g12_c07 67 -HandstandPushups/v_HandStandPushups_g08_c03 36 -JugglingBalls/v_JugglingBalls_g17_c02 45 -JumpingJack/v_JumpingJack_g24_c01 46 -Haircut/v_Haircut_g23_c03 33 -HandstandPushups/v_HandStandPushups_g13_c06 36 -YoYo/v_YoYo_g23_c03 100 -RopeClimbing/v_RopeClimbing_g14_c01 74 -JumpRope/v_JumpRope_g20_c03 47 -Skijet/v_Skijet_g22_c03 81 -HeadMassage/v_HeadMassage_g25_c04 38 -PommelHorse/v_PommelHorse_g23_c04 68 -CricketShot/v_CricketShot_g24_c05 23 -BoxingPunchingBag/v_BoxingPunchingBag_g09_c04 16 -HighJump/v_HighJump_g16_c01 39 -Surfing/v_Surfing_g20_c05 87 -JugglingBalls/v_JugglingBalls_g11_c03 45 -PlayingCello/v_PlayingCello_g10_c01 58 -Rowing/v_Rowing_g11_c03 75 -PlayingCello/v_PlayingCello_g20_c07 58 -IceDancing/v_IceDancing_g19_c06 43 -TableTennisShot/v_TableTennisShot_g12_c02 89 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c01 16 -BenchPress/v_BenchPress_g11_c04 9 -PushUps/v_PushUps_g16_c02 71 -HandstandPushups/v_HandStandPushups_g23_c04 36 -ShavingBeard/v_ShavingBeard_g25_c01 77 -Skiing/v_Skiing_g21_c01 80 -HulaHoop/v_HulaHoop_g14_c03 42 -VolleyballSpiking/v_VolleyballSpiking_g19_c02 96 -BlowDryHair/v_BlowDryHair_g13_c03 12 -YoYo/v_YoYo_g22_c01 100 -BodyWeightSquats/v_BodyWeightSquats_g21_c02 14 -BoxingSpeedBag/v_BoxingSpeedBag_g24_c03 17 -RopeClimbing/v_RopeClimbing_g24_c02 74 -PlayingViolin/v_PlayingViolin_g11_c03 66 -Punch/v_Punch_g19_c02 70 -BenchPress/v_BenchPress_g17_c02 9 -RopeClimbing/v_RopeClimbing_g18_c02 74 -Haircut/v_Haircut_g10_c05 33 -CliffDiving/v_CliffDiving_g25_c03 21 -Nunchucks/v_Nunchucks_g10_c04 55 -Skiing/v_Skiing_g19_c05 80 -Rowing/v_Rowing_g19_c06 75 -PlayingDhol/v_PlayingDhol_g25_c07 60 -ParallelBars/v_ParallelBars_g10_c04 56 -WalkingWithDog/v_WalkingWithDog_g11_c03 97 -Bowling/v_Bowling_g08_c02 15 -PlayingFlute/v_PlayingFlute_g16_c06 61 -Biking/v_Biking_g19_c02 10 -ParallelBars/v_ParallelBars_g19_c02 56 -ParallelBars/v_ParallelBars_g14_c01 56 -HandstandWalking/v_HandstandWalking_g23_c03 37 -UnevenBars/v_UnevenBars_g08_c01 95 -Bowling/v_Bowling_g10_c02 15 -Basketball/v_Basketball_g12_c02 7 -Nunchucks/v_Nunchucks_g10_c03 55 -Typing/v_Typing_g16_c02 94 -BabyCrawling/v_BabyCrawling_g09_c03 3 -TaiChi/v_TaiChi_g14_c01 90 -Drumming/v_Drumming_g20_c01 26 -HeadMassage/v_HeadMassage_g13_c02 38 -Kayaking/v_Kayaking_g13_c04 48 -Haircut/v_Haircut_g23_c07 33 -SalsaSpin/v_SalsaSpin_g22_c02 76 -Diving/v_Diving_g13_c03 25 -ApplyLipstick/v_ApplyLipstick_g14_c02 1 -TableTennisShot/v_TableTennisShot_g20_c03 89 -SumoWrestling/v_SumoWrestling_g09_c04 86 -PlayingTabla/v_PlayingTabla_g09_c01 65 -GolfSwing/v_GolfSwing_g25_c07 32 -CricketShot/v_CricketShot_g10_c01 23 -Shotput/v_Shotput_g15_c07 78 -Archery/v_Archery_g22_c04 2 -Rafting/v_Rafting_g14_c01 72 -WallPushups/v_WallPushups_g12_c05 98 -Billiards/v_Billiards_g09_c07 11 -TrampolineJumping/v_TrampolineJumping_g25_c01 93 -PizzaTossing/v_PizzaTossing_g08_c02 57 -MilitaryParade/v_MilitaryParade_g22_c01 52 -ParallelBars/v_ParallelBars_g23_c02 56 -Typing/v_Typing_g19_c02 94 -FrontCrawl/v_FrontCrawl_g23_c02 31 -PlayingTabla/v_PlayingTabla_g10_c03 65 -Skijet/v_Skijet_g20_c04 81 -PizzaTossing/v_PizzaTossing_g21_c04 57 -CleanAndJerk/v_CleanAndJerk_g19_c02 20 -LongJump/v_LongJump_g12_c02 50 -Rafting/v_Rafting_g20_c04 72 -PommelHorse/v_PommelHorse_g25_c01 68 -CricketBowling/v_CricketBowling_g18_c04 22 -JugglingBalls/v_JugglingBalls_g12_c05 45 -Biking/v_Biking_g19_c01 10 -BasketballDunk/v_BasketballDunk_g23_c04 8 -FloorGymnastics/v_FloorGymnastics_g23_c02 29 -Bowling/v_Bowling_g21_c02 15 -BenchPress/v_BenchPress_g20_c07 9 -HandstandWalking/v_HandstandWalking_g11_c03 37 -TrampolineJumping/v_TrampolineJumping_g23_c02 93 -BreastStroke/v_BreastStroke_g08_c01 18 -PlayingSitar/v_PlayingSitar_g08_c05 64 -PlayingViolin/v_PlayingViolin_g16_c03 66 -BoxingSpeedBag/v_BoxingSpeedBag_g20_c01 17 -FrontCrawl/v_FrontCrawl_g15_c02 31 -Rowing/v_Rowing_g16_c04 75 -TrampolineJumping/v_TrampolineJumping_g11_c06 93 -Swing/v_Swing_g25_c04 88 -CuttingInKitchen/v_CuttingInKitchen_g20_c01 24 -VolleyballSpiking/v_VolleyballSpiking_g14_c04 96 -CricketBowling/v_CricketBowling_g15_c02 22 -PlayingGuitar/v_PlayingGuitar_g09_c04 62 -ShavingBeard/v_ShavingBeard_g16_c05 77 -WallPushups/v_WallPushups_g17_c04 98 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c07 28 -LongJump/v_LongJump_g17_c02 50 -Skijet/v_Skijet_g08_c04 81 -JumpingJack/v_JumpingJack_g15_c01 46 -Lunges/v_Lunges_g18_c01 51 -BrushingTeeth/v_BrushingTeeth_g24_c05 19 -MilitaryParade/v_MilitaryParade_g19_c07 52 -RockClimbingIndoor/v_RockClimbingIndoor_g16_c01 73 -HorseRace/v_HorseRace_g12_c04 40 -CliffDiving/v_CliffDiving_g18_c04 21 -HorseRiding/v_HorseRiding_g11_c07 41 -HorseRiding/v_HorseRiding_g09_c01 41 -CuttingInKitchen/v_CuttingInKitchen_g16_c04 24 -Rowing/v_Rowing_g08_c03 75 -LongJump/v_LongJump_g23_c02 50 -HandstandPushups/v_HandStandPushups_g23_c05 36 -PoleVault/v_PoleVault_g19_c07 67 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c04 16 -Swing/v_Swing_g23_c04 88 -TableTennisShot/v_TableTennisShot_g24_c02 89 -Shotput/v_Shotput_g14_c04 78 -FloorGymnastics/v_FloorGymnastics_g18_c02 29 -PlayingDhol/v_PlayingDhol_g16_c04 60 -BreastStroke/v_BreastStroke_g18_c03 18 -ShavingBeard/v_ShavingBeard_g09_c03 77 -JumpRope/v_JumpRope_g21_c01 47 -PlayingSitar/v_PlayingSitar_g23_c04 64 -HorseRiding/v_HorseRiding_g15_c05 41 -HammerThrow/v_HammerThrow_g10_c04 35 -FieldHockeyPenalty/v_FieldHockeyPenalty_g20_c03 28 -JumpRope/v_JumpRope_g14_c03 47 -BandMarching/v_BandMarching_g16_c01 5 -SoccerPenalty/v_SoccerPenalty_g15_c03 84 -PoleVault/v_PoleVault_g17_c04 67 -Diving/v_Diving_g24_c07 25 -SoccerJuggling/v_SoccerJuggling_g08_c01 83 -LongJump/v_LongJump_g21_c01 50 -BenchPress/v_BenchPress_g25_c07 9 -TableTennisShot/v_TableTennisShot_g19_c01 89 -RockClimbingIndoor/v_RockClimbingIndoor_g16_c05 73 -HammerThrow/v_HammerThrow_g14_c01 35 -SumoWrestling/v_SumoWrestling_g21_c02 86 -UnevenBars/v_UnevenBars_g08_c02 95 -FloorGymnastics/v_FloorGymnastics_g25_c05 29 -HandstandPushups/v_HandStandPushups_g25_c04 36 -GolfSwing/v_GolfSwing_g20_c02 32 -Nunchucks/v_Nunchucks_g15_c02 55 -PlayingDaf/v_PlayingDaf_g20_c01 59 -PlayingCello/v_PlayingCello_g17_c02 58 -ShavingBeard/v_ShavingBeard_g25_c03 77 -HammerThrow/v_HammerThrow_g08_c02 35 -GolfSwing/v_GolfSwing_g18_c05 32 -Lunges/v_Lunges_g24_c01 51 -Basketball/v_Basketball_g24_c01 7 -Biking/v_Biking_g25_c03 10 -ShavingBeard/v_ShavingBeard_g14_c03 77 -SalsaSpin/v_SalsaSpin_g22_c04 76 -Rafting/v_Rafting_g24_c01 72 -Biking/v_Biking_g21_c07 10 -TableTennisShot/v_TableTennisShot_g11_c02 89 -HandstandWalking/v_HandstandWalking_g24_c01 37 -Punch/v_Punch_g20_c01 70 -SkateBoarding/v_SkateBoarding_g17_c01 79 -Swing/v_Swing_g21_c05 88 -MoppingFloor/v_MoppingFloor_g20_c01 54 -SoccerJuggling/v_SoccerJuggling_g13_c01 83 -Rowing/v_Rowing_g21_c04 75 -YoYo/v_YoYo_g19_c03 100 -BandMarching/v_BandMarching_g08_c04 5 -Knitting/v_Knitting_g15_c03 49 -Punch/v_Punch_g18_c03 70 -Rowing/v_Rowing_g25_c05 75 -BaseballPitch/v_BaseballPitch_g20_c01 6 -Billiards/v_Billiards_g13_c06 11 -Mixing/v_Mixing_g22_c04 53 -Haircut/v_Haircut_g20_c01 33 -BenchPress/v_BenchPress_g22_c05 9 -LongJump/v_LongJump_g15_c04 50 -PommelHorse/v_PommelHorse_g13_c05 68 -JugglingBalls/v_JugglingBalls_g13_c03 45 -SalsaSpin/v_SalsaSpin_g18_c04 76 -FrisbeeCatch/v_FrisbeeCatch_g12_c02 30 -YoYo/v_YoYo_g23_c01 100 -TableTennisShot/v_TableTennisShot_g09_c07 89 -Surfing/v_Surfing_g08_c04 87 -PlayingDaf/v_PlayingDaf_g18_c07 59 -BodyWeightSquats/v_BodyWeightSquats_g23_c04 14 -FieldHockeyPenalty/v_FieldHockeyPenalty_g10_c06 28 -ParallelBars/v_ParallelBars_g24_c01 56 -Biking/v_Biking_g19_c03 10 -Skiing/v_Skiing_g21_c07 80 -RockClimbingIndoor/v_RockClimbingIndoor_g19_c03 73 -BlowingCandles/v_BlowingCandles_g09_c04 13 -BoxingSpeedBag/v_BoxingSpeedBag_g23_c05 17 -WalkingWithDog/v_WalkingWithDog_g23_c03 97 -HandstandWalking/v_HandstandWalking_g14_c01 37 -TableTennisShot/v_TableTennisShot_g08_c04 89 -MilitaryParade/v_MilitaryParade_g09_c03 52 -Biking/v_Biking_g23_c02 10 -Punch/v_Punch_g21_c03 70 -BreastStroke/v_BreastStroke_g19_c04 18 -BreastStroke/v_BreastStroke_g13_c04 18 -LongJump/v_LongJump_g25_c04 50 -HulaHoop/v_HulaHoop_g22_c05 42 -HorseRiding/v_HorseRiding_g10_c04 41 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c03 28 -PoleVault/v_PoleVault_g15_c02 67 -JumpRope/v_JumpRope_g25_c01 47 -FrontCrawl/v_FrontCrawl_g11_c04 31 -HammerThrow/v_HammerThrow_g22_c07 35 -CricketBowling/v_CricketBowling_g21_c05 22 -HulaHoop/v_HulaHoop_g10_c02 42 -Kayaking/v_Kayaking_g11_c04 48 -BoxingSpeedBag/v_BoxingSpeedBag_g24_c01 17 -Diving/v_Diving_g09_c06 25 -Kayaking/v_Kayaking_g25_c04 48 -TableTennisShot/v_TableTennisShot_g25_c02 89 -WritingOnBoard/v_WritingOnBoard_g13_c04 99 -Bowling/v_Bowling_g09_c04 15 -HeadMassage/v_HeadMassage_g08_c04 38 -HorseRiding/v_HorseRiding_g14_c04 41 -BlowingCandles/v_BlowingCandles_g11_c04 13 -Swing/v_Swing_g16_c03 88 -HulaHoop/v_HulaHoop_g22_c01 42 -FloorGymnastics/v_FloorGymnastics_g15_c06 29 -JugglingBalls/v_JugglingBalls_g21_c01 45 -PullUps/v_PullUps_g10_c04 69 -PlayingViolin/v_PlayingViolin_g20_c01 66 -Surfing/v_Surfing_g19_c04 87 -BandMarching/v_BandMarching_g10_c04 5 -FrisbeeCatch/v_FrisbeeCatch_g09_c04 30 -Billiards/v_Billiards_g25_c01 11 -Skijet/v_Skijet_g12_c04 81 -Drumming/v_Drumming_g12_c02 26 -SoccerPenalty/v_SoccerPenalty_g17_c01 84 -WalkingWithDog/v_WalkingWithDog_g09_c03 97 -PushUps/v_PushUps_g13_c01 71 -GolfSwing/v_GolfSwing_g13_c04 32 -HammerThrow/v_HammerThrow_g10_c01 35 -Shotput/v_Shotput_g25_c03 78 -TrampolineJumping/v_TrampolineJumping_g10_c02 93 -BoxingSpeedBag/v_BoxingSpeedBag_g17_c02 17 -PlayingDhol/v_PlayingDhol_g22_c07 60 -WritingOnBoard/v_WritingOnBoard_g25_c02 99 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c02 16 -BaseballPitch/v_BaseballPitch_g14_c04 6 -Kayaking/v_Kayaking_g16_c03 48 -PlayingFlute/v_PlayingFlute_g17_c02 61 -Haircut/v_Haircut_g18_c02 33 -Punch/v_Punch_g16_c06 70 -FrisbeeCatch/v_FrisbeeCatch_g11_c01 30 -FloorGymnastics/v_FloorGymnastics_g10_c05 29 -GolfSwing/v_GolfSwing_g19_c02 32 -ThrowDiscus/v_ThrowDiscus_g22_c02 92 -ParallelBars/v_ParallelBars_g21_c01 56 -ParallelBars/v_ParallelBars_g12_c03 56 -ThrowDiscus/v_ThrowDiscus_g10_c05 92 -LongJump/v_LongJump_g08_c03 50 -PlayingSitar/v_PlayingSitar_g10_c04 64 -BenchPress/v_BenchPress_g23_c01 9 -SkateBoarding/v_SkateBoarding_g16_c03 79 -BlowDryHair/v_BlowDryHair_g15_c05 12 -TaiChi/v_TaiChi_g18_c04 90 -SumoWrestling/v_SumoWrestling_g08_c07 86 -Biking/v_Biking_g22_c03 10 -WallPushups/v_WallPushups_g18_c05 98 -BrushingTeeth/v_BrushingTeeth_g10_c05 19 -Basketball/v_Basketball_g20_c04 7 -BrushingTeeth/v_BrushingTeeth_g21_c02 19 -HulaHoop/v_HulaHoop_g24_c03 42 -PlayingPiano/v_PlayingPiano_g20_c03 63 -Drumming/v_Drumming_g08_c01 26 -YoYo/v_YoYo_g14_c04 100 -BabyCrawling/v_BabyCrawling_g15_c02 3 -TennisSwing/v_TennisSwing_g20_c06 91 -TennisSwing/v_TennisSwing_g23_c04 91 -SkyDiving/v_SkyDiving_g14_c02 82 -RockClimbingIndoor/v_RockClimbingIndoor_g15_c02 73 -HandstandWalking/v_HandstandWalking_g18_c05 37 -Lunges/v_Lunges_g13_c03 51 -CricketShot/v_CricketShot_g17_c06 23 -JumpingJack/v_JumpingJack_g11_c02 46 -StillRings/v_StillRings_g21_c07 85 -RockClimbingIndoor/v_RockClimbingIndoor_g10_c06 73 -HeadMassage/v_HeadMassage_g12_c02 38 -HammerThrow/v_HammerThrow_g14_c04 35 -PlayingFlute/v_PlayingFlute_g11_c01 61 -ShavingBeard/v_ShavingBeard_g21_c02 77 -JumpingJack/v_JumpingJack_g19_c05 46 -Mixing/v_Mixing_g11_c03 53 -Mixing/v_Mixing_g13_c05 53 -RopeClimbing/v_RopeClimbing_g13_c02 74 -PullUps/v_PullUps_g13_c04 69 -HammerThrow/v_HammerThrow_g25_c02 35 -ApplyEyeMakeup/v_ApplyEyeMakeup_g14_c05 0 -SkyDiving/v_SkyDiving_g10_c02 82 -FieldHockeyPenalty/v_FieldHockeyPenalty_g17_c01 28 -GolfSwing/v_GolfSwing_g15_c01 32 -CleanAndJerk/v_CleanAndJerk_g22_c03 20 -Archery/v_Archery_g16_c01 2 -Haircut/v_Haircut_g11_c02 33 -Nunchucks/v_Nunchucks_g10_c05 55 -PommelHorse/v_PommelHorse_g19_c04 68 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c02 28 -PlayingDaf/v_PlayingDaf_g10_c05 59 -BrushingTeeth/v_BrushingTeeth_g25_c02 19 -HorseRiding/v_HorseRiding_g22_c04 41 -HammerThrow/v_HammerThrow_g22_c01 35 -PommelHorse/v_PommelHorse_g21_c03 68 -HandstandPushups/v_HandStandPushups_g14_c04 36 -YoYo/v_YoYo_g19_c06 100 -ThrowDiscus/v_ThrowDiscus_g14_c04 92 -Rafting/v_Rafting_g18_c04 72 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c06 73 -WalkingWithDog/v_WalkingWithDog_g23_c02 97 -CleanAndJerk/v_CleanAndJerk_g20_c05 20 -PlayingDhol/v_PlayingDhol_g11_c05 60 -BrushingTeeth/v_BrushingTeeth_g21_c03 19 -WallPushups/v_WallPushups_g19_c01 98 -BandMarching/v_BandMarching_g23_c06 5 -Hammering/v_Hammering_g09_c02 34 -BasketballDunk/v_BasketballDunk_g21_c03 8 -TrampolineJumping/v_TrampolineJumping_g19_c05 93 -BrushingTeeth/v_BrushingTeeth_g20_c05 19 -TaiChi/v_TaiChi_g19_c04 90 -HorseRace/v_HorseRace_g19_c02 40 -MilitaryParade/v_MilitaryParade_g25_c02 52 -BlowDryHair/v_BlowDryHair_g16_c03 12 -Diving/v_Diving_g23_c06 25 -BrushingTeeth/v_BrushingTeeth_g13_c03 19 -BlowDryHair/v_BlowDryHair_g18_c04 12 -Haircut/v_Haircut_g18_c04 33 -WritingOnBoard/v_WritingOnBoard_g20_c01 99 -MoppingFloor/v_MoppingFloor_g14_c02 54 -SalsaSpin/v_SalsaSpin_g17_c02 76 -PlayingSitar/v_PlayingSitar_g23_c07 64 -FieldHockeyPenalty/v_FieldHockeyPenalty_g08_c01 28 -SalsaSpin/v_SalsaSpin_g25_c02 76 -CuttingInKitchen/v_CuttingInKitchen_g15_c02 24 -BasketballDunk/v_BasketballDunk_g11_c02 8 -TaiChi/v_TaiChi_g16_c04 90 -CleanAndJerk/v_CleanAndJerk_g13_c04 20 -PushUps/v_PushUps_g21_c01 71 -WallPushups/v_WallPushups_g21_c01 98 -Punch/v_Punch_g09_c07 70 -Haircut/v_Haircut_g13_c03 33 -Skijet/v_Skijet_g24_c01 81 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c04 16 -Typing/v_Typing_g11_c03 94 -Skiing/v_Skiing_g12_c04 80 -SoccerJuggling/v_SoccerJuggling_g18_c03 83 -Mixing/v_Mixing_g14_c06 53 -HandstandPushups/v_HandStandPushups_g20_c07 36 -FrisbeeCatch/v_FrisbeeCatch_g11_c02 30 -Typing/v_Typing_g12_c07 94 -Bowling/v_Bowling_g13_c03 15 -Skijet/v_Skijet_g08_c03 81 -Swing/v_Swing_g11_c04 88 -TrampolineJumping/v_TrampolineJumping_g25_c04 93 -YoYo/v_YoYo_g17_c04 100 -HammerThrow/v_HammerThrow_g25_c01 35 -RockClimbingIndoor/v_RockClimbingIndoor_g20_c01 73 -FieldHockeyPenalty/v_FieldHockeyPenalty_g13_c01 28 -SkyDiving/v_SkyDiving_g13_c01 82 -HandstandPushups/v_HandStandPushups_g16_c07 36 -Nunchucks/v_Nunchucks_g22_c04 55 -PlayingDhol/v_PlayingDhol_g09_c02 60 -BasketballDunk/v_BasketballDunk_g21_c04 8 -StillRings/v_StillRings_g25_c06 85 -Nunchucks/v_Nunchucks_g10_c06 55 -TennisSwing/v_TennisSwing_g25_c02 91 -JumpRope/v_JumpRope_g19_c03 47 -TrampolineJumping/v_TrampolineJumping_g12_c05 93 -ApplyEyeMakeup/v_ApplyEyeMakeup_g18_c05 0 -PlayingTabla/v_PlayingTabla_g09_c04 65 -PoleVault/v_PoleVault_g23_c06 67 -BasketballDunk/v_BasketballDunk_g22_c02 8 -Basketball/v_Basketball_g16_c06 7 -PlayingSitar/v_PlayingSitar_g14_c04 64 -IceDancing/v_IceDancing_g23_c06 43 -TrampolineJumping/v_TrampolineJumping_g09_c03 93 -JavelinThrow/v_JavelinThrow_g24_c05 44 -WritingOnBoard/v_WritingOnBoard_g22_c04 99 -HorseRiding/v_HorseRiding_g12_c03 41 -JugglingBalls/v_JugglingBalls_g15_c03 45 -CuttingInKitchen/v_CuttingInKitchen_g20_c04 24 -Mixing/v_Mixing_g08_c04 53 -IceDancing/v_IceDancing_g20_c01 43 -BandMarching/v_BandMarching_g22_c05 5 -HeadMassage/v_HeadMassage_g18_c03 38 -CleanAndJerk/v_CleanAndJerk_g09_c03 20 -FloorGymnastics/v_FloorGymnastics_g12_c06 29 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c05 0 -BabyCrawling/v_BabyCrawling_g22_c01 3 -Knitting/v_Knitting_g13_c05 49 -Bowling/v_Bowling_g21_c04 15 -Swing/v_Swing_g17_c03 88 -JumpingJack/v_JumpingJack_g13_c07 46 -Rowing/v_Rowing_g18_c04 75 -JumpRope/v_JumpRope_g23_c03 47 -BoxingPunchingBag/v_BoxingPunchingBag_g24_c06 16 -JumpingJack/v_JumpingJack_g18_c02 46 -PushUps/v_PushUps_g13_c04 71 -PlayingCello/v_PlayingCello_g09_c03 58 -SkyDiving/v_SkyDiving_g24_c01 82 -Mixing/v_Mixing_g16_c03 53 -UnevenBars/v_UnevenBars_g10_c02 95 -SoccerPenalty/v_SoccerPenalty_g15_c04 84 -Bowling/v_Bowling_g09_c01 15 -ShavingBeard/v_ShavingBeard_g20_c06 77 -FieldHockeyPenalty/v_FieldHockeyPenalty_g24_c02 28 -BreastStroke/v_BreastStroke_g24_c02 18 -Drumming/v_Drumming_g23_c03 26 -Surfing/v_Surfing_g17_c05 87 -Surfing/v_Surfing_g09_c03 87 -StillRings/v_StillRings_g11_c03 85 -BodyWeightSquats/v_BodyWeightSquats_g25_c07 14 -Billiards/v_Billiards_g11_c06 11 -PoleVault/v_PoleVault_g09_c02 67 -BandMarching/v_BandMarching_g19_c03 5 -Mixing/v_Mixing_g25_c01 53 -BenchPress/v_BenchPress_g19_c02 9 -FrisbeeCatch/v_FrisbeeCatch_g20_c06 30 -Drumming/v_Drumming_g16_c03 26 -Shotput/v_Shotput_g14_c01 78 -LongJump/v_LongJump_g16_c02 50 -MilitaryParade/v_MilitaryParade_g15_c03 52 -Diving/v_Diving_g21_c01 25 -RopeClimbing/v_RopeClimbing_g12_c01 74 -SoccerPenalty/v_SoccerPenalty_g23_c06 84 -UnevenBars/v_UnevenBars_g23_c01 95 -Bowling/v_Bowling_g10_c07 15 -PullUps/v_PullUps_g19_c03 69 -PoleVault/v_PoleVault_g22_c04 67 -TennisSwing/v_TennisSwing_g13_c07 91 -Skiing/v_Skiing_g14_c04 80 -Punch/v_Punch_g16_c03 70 -Haircut/v_Haircut_g19_c03 33 -YoYo/v_YoYo_g08_c02 100 -PlayingDaf/v_PlayingDaf_g19_c07 59 -Fencing/v_Fencing_g14_c04 27 -Diving/v_Diving_g19_c04 25 -PlayingSitar/v_PlayingSitar_g14_c07 64 -HeadMassage/v_HeadMassage_g18_c04 38 -Lunges/v_Lunges_g23_c02 51 -MoppingFloor/v_MoppingFloor_g16_c04 54 -FieldHockeyPenalty/v_FieldHockeyPenalty_g11_c02 28 -BlowingCandles/v_BlowingCandles_g09_c03 13 -Archery/v_Archery_g25_c03 2 -FrisbeeCatch/v_FrisbeeCatch_g19_c02 30 -MoppingFloor/v_MoppingFloor_g09_c03 54 -CliffDiving/v_CliffDiving_g10_c03 21 -GolfSwing/v_GolfSwing_g13_c03 32 -Knitting/v_Knitting_g17_c02 49 -Lunges/v_Lunges_g16_c02 51 -Skiing/v_Skiing_g20_c07 80 -JumpRope/v_JumpRope_g21_c06 47 -Rafting/v_Rafting_g15_c03 72 -Kayaking/v_Kayaking_g08_c03 48 -IceDancing/v_IceDancing_g12_c01 43 -BoxingSpeedBag/v_BoxingSpeedBag_g23_c03 17 -CricketShot/v_CricketShot_g20_c05 23 -JugglingBalls/v_JugglingBalls_g23_c04 45 -Hammering/v_Hammering_g15_c03 34 -PlayingCello/v_PlayingCello_g16_c06 58 -BoxingSpeedBag/v_BoxingSpeedBag_g20_c03 17 -Shotput/v_Shotput_g12_c07 78 -SoccerPenalty/v_SoccerPenalty_g14_c05 84 -TrampolineJumping/v_TrampolineJumping_g14_c03 93 -JumpingJack/v_JumpingJack_g22_c04 46 -YoYo/v_YoYo_g21_c01 100 -CliffDiving/v_CliffDiving_g20_c02 21 -Nunchucks/v_Nunchucks_g17_c04 55 -Mixing/v_Mixing_g09_c01 53 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c03 16 -PlayingDhol/v_PlayingDhol_g16_c01 60 -Biking/v_Biking_g11_c03 10 -FrisbeeCatch/v_FrisbeeCatch_g21_c02 30 -PlayingDhol/v_PlayingDhol_g21_c06 60 -Surfing/v_Surfing_g10_c04 87 -PlayingSitar/v_PlayingSitar_g18_c06 64 -BenchPress/v_BenchPress_g25_c04 9 -Fencing/v_Fencing_g15_c03 27 -PlayingCello/v_PlayingCello_g18_c04 58 -Biking/v_Biking_g10_c03 10 -BenchPress/v_BenchPress_g08_c02 9 -JugglingBalls/v_JugglingBalls_g19_c04 45 -TennisSwing/v_TennisSwing_g19_c04 91 -IceDancing/v_IceDancing_g13_c03 43 -WallPushups/v_WallPushups_g16_c05 98 -HorseRiding/v_HorseRiding_g20_c06 41 -SalsaSpin/v_SalsaSpin_g15_c06 76 -BenchPress/v_BenchPress_g18_c01 9 -JugglingBalls/v_JugglingBalls_g19_c01 45 -PlayingDhol/v_PlayingDhol_g19_c01 60 -FloorGymnastics/v_FloorGymnastics_g17_c01 29 -VolleyballSpiking/v_VolleyballSpiking_g13_c01 96 -Haircut/v_Haircut_g18_c01 33 -SoccerJuggling/v_SoccerJuggling_g23_c06 83 -Shotput/v_Shotput_g23_c03 78 -PoleVault/v_PoleVault_g25_c03 67 -Knitting/v_Knitting_g13_c01 49 -Shotput/v_Shotput_g10_c06 78 -JumpRope/v_JumpRope_g20_c01 47 -JumpingJack/v_JumpingJack_g13_c04 46 -BasketballDunk/v_BasketballDunk_g17_c07 8 -BaseballPitch/v_BaseballPitch_g09_c01 6 -CleanAndJerk/v_CleanAndJerk_g24_c02 20 -MilitaryParade/v_MilitaryParade_g12_c04 52 -JavelinThrow/v_JavelinThrow_g16_c05 44 -HandstandWalking/v_HandstandWalking_g14_c03 37 -MilitaryParade/v_MilitaryParade_g15_c06 52 -Shotput/v_Shotput_g12_c05 78 -Drumming/v_Drumming_g10_c07 26 -CliffDiving/v_CliffDiving_g11_c02 21 -Diving/v_Diving_g17_c03 25 -PlayingDaf/v_PlayingDaf_g11_c02 59 -SoccerPenalty/v_SoccerPenalty_g08_c01 84 -CricketBowling/v_CricketBowling_g23_c02 22 -PlayingViolin/v_PlayingViolin_g16_c02 66 -Biking/v_Biking_g22_c01 10 -PizzaTossing/v_PizzaTossing_g12_c01 57 -Kayaking/v_Kayaking_g18_c05 48 -PushUps/v_PushUps_g10_c02 71 -Typing/v_Typing_g21_c02 94 -Lunges/v_Lunges_g14_c06 51 -JumpingJack/v_JumpingJack_g13_c06 46 -Skijet/v_Skijet_g15_c01 81 -SkateBoarding/v_SkateBoarding_g14_c02 79 -BoxingSpeedBag/v_BoxingSpeedBag_g10_c03 17 -ParallelBars/v_ParallelBars_g14_c03 56 -RockClimbingIndoor/v_RockClimbingIndoor_g08_c05 73 -MoppingFloor/v_MoppingFloor_g11_c02 54 -UnevenBars/v_UnevenBars_g25_c02 95 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c04 28 -Mixing/v_Mixing_g21_c04 53 -ApplyLipstick/v_ApplyLipstick_g23_c04 1 -Archery/v_Archery_g10_c05 2 -CleanAndJerk/v_CleanAndJerk_g13_c01 20 -Drumming/v_Drumming_g10_c03 26 -Nunchucks/v_Nunchucks_g13_c02 55 -ApplyLipstick/v_ApplyLipstick_g21_c04 1 -YoYo/v_YoYo_g21_c02 100 -Haircut/v_Haircut_g13_c04 33 -Bowling/v_Bowling_g15_c03 15 -PizzaTossing/v_PizzaTossing_g19_c05 57 -Skijet/v_Skijet_g25_c04 81 -JumpRope/v_JumpRope_g11_c06 47 -Knitting/v_Knitting_g19_c04 49 -Rowing/v_Rowing_g09_c06 75 -PlayingPiano/v_PlayingPiano_g12_c02 63 -Hammering/v_Hammering_g25_c04 34 -SalsaSpin/v_SalsaSpin_g14_c05 76 -HandstandWalking/v_HandstandWalking_g22_c04 37 -MoppingFloor/v_MoppingFloor_g23_c01 54 -HeadMassage/v_HeadMassage_g24_c04 38 -Typing/v_Typing_g10_c01 94 -Kayaking/v_Kayaking_g18_c06 48 -CricketShot/v_CricketShot_g25_c04 23 -CricketShot/v_CricketShot_g20_c02 23 -FieldHockeyPenalty/v_FieldHockeyPenalty_g19_c02 28 -Lunges/v_Lunges_g12_c02 51 -Swing/v_Swing_g17_c02 88 -SoccerPenalty/v_SoccerPenalty_g25_c02 84 -VolleyballSpiking/v_VolleyballSpiking_g12_c01 96 -Rowing/v_Rowing_g10_c01 75 -PushUps/v_PushUps_g10_c03 71 -BlowingCandles/v_BlowingCandles_g15_c01 13 -HighJump/v_HighJump_g14_c04 39 -PlayingGuitar/v_PlayingGuitar_g18_c03 62 -CricketBowling/v_CricketBowling_g15_c01 22 -TaiChi/v_TaiChi_g20_c03 90 -Fencing/v_Fencing_g21_c03 27 -SalsaSpin/v_SalsaSpin_g24_c02 76 -ShavingBeard/v_ShavingBeard_g09_c01 77 -Archery/v_Archery_g25_c04 2 -BasketballDunk/v_BasketballDunk_g25_c01 8 -BoxingSpeedBag/v_BoxingSpeedBag_g12_c05 17 -Bowling/v_Bowling_g17_c05 15 -Hammering/v_Hammering_g14_c03 34 -PlayingCello/v_PlayingCello_g19_c01 58 -SoccerPenalty/v_SoccerPenalty_g20_c02 84 -TrampolineJumping/v_TrampolineJumping_g23_c01 93 -PlayingDhol/v_PlayingDhol_g21_c02 60 -PlayingDaf/v_PlayingDaf_g22_c04 59 -Typing/v_Typing_g15_c02 94 -Basketball/v_Basketball_g19_c01 7 -PushUps/v_PushUps_g08_c01 71 -TrampolineJumping/v_TrampolineJumping_g17_c03 93 -Rowing/v_Rowing_g18_c02 75 -PlayingDhol/v_PlayingDhol_g20_c03 60 -Kayaking/v_Kayaking_g08_c01 48 -SalsaSpin/v_SalsaSpin_g23_c01 76 -Haircut/v_Haircut_g10_c04 33 -SoccerPenalty/v_SoccerPenalty_g25_c04 84 -FrisbeeCatch/v_FrisbeeCatch_g08_c03 30 -HorseRiding/v_HorseRiding_g17_c01 41 -BoxingSpeedBag/v_BoxingSpeedBag_g21_c01 17 -BlowingCandles/v_BlowingCandles_g17_c04 13 -Fencing/v_Fencing_g17_c01 27 -ThrowDiscus/v_ThrowDiscus_g23_c05 92 -BabyCrawling/v_BabyCrawling_g11_c01 3 -Nunchucks/v_Nunchucks_g11_c06 55 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c03 73 -Swing/v_Swing_g17_c04 88 -CricketBowling/v_CricketBowling_g17_c04 22 -WritingOnBoard/v_WritingOnBoard_g22_c05 99 -PlayingDaf/v_PlayingDaf_g09_c03 59 -Rowing/v_Rowing_g25_c01 75 -PoleVault/v_PoleVault_g20_c04 67 -Rowing/v_Rowing_g11_c02 75 -Diving/v_Diving_g24_c01 25 -SkateBoarding/v_SkateBoarding_g17_c04 79 -CricketShot/v_CricketShot_g21_c06 23 -PushUps/v_PushUps_g24_c04 71 -Swing/v_Swing_g15_c06 88 -Punch/v_Punch_g12_c05 70 -ShavingBeard/v_ShavingBeard_g10_c02 77 -Typing/v_Typing_g24_c02 94 -PlayingPiano/v_PlayingPiano_g11_c01 63 -HighJump/v_HighJump_g19_c05 39 -RockClimbingIndoor/v_RockClimbingIndoor_g14_c01 73 -Rafting/v_Rafting_g24_c03 72 -HammerThrow/v_HammerThrow_g22_c03 35 -BodyWeightSquats/v_BodyWeightSquats_g19_c01 14 -HulaHoop/v_HulaHoop_g08_c01 42 -BandMarching/v_BandMarching_g12_c06 5 -UnevenBars/v_UnevenBars_g22_c02 95 -BoxingPunchingBag/v_BoxingPunchingBag_g19_c06 16 -JumpRope/v_JumpRope_g25_c04 47 -TennisSwing/v_TennisSwing_g10_c05 91 -Hammering/v_Hammering_g15_c01 34 -BalanceBeam/v_BalanceBeam_g10_c01 4 -Mixing/v_Mixing_g24_c01 53 -SalsaSpin/v_SalsaSpin_g14_c02 76 -Rafting/v_Rafting_g15_c04 72 -BabyCrawling/v_BabyCrawling_g21_c01 3 -PlayingCello/v_PlayingCello_g14_c03 58 -CricketShot/v_CricketShot_g15_c04 23 -JumpingJack/v_JumpingJack_g24_c02 46 -Rafting/v_Rafting_g18_c03 72 -TaiChi/v_TaiChi_g18_c02 90 -BandMarching/v_BandMarching_g19_c05 5 -HeadMassage/v_HeadMassage_g25_c05 38 -PullUps/v_PullUps_g14_c02 69 -BoxingPunchingBag/v_BoxingPunchingBag_g20_c07 16 -HighJump/v_HighJump_g23_c06 39 -Diving/v_Diving_g13_c02 25 -SoccerJuggling/v_SoccerJuggling_g18_c07 83 -Drumming/v_Drumming_g25_c05 26 -Nunchucks/v_Nunchucks_g09_c01 55 -ApplyEyeMakeup/v_ApplyEyeMakeup_g22_c04 0 -GolfSwing/v_GolfSwing_g24_c03 32 -BenchPress/v_BenchPress_g19_c01 9 -Archery/v_Archery_g15_c06 2 -Billiards/v_Billiards_g18_c06 11 -YoYo/v_YoYo_g17_c01 100 -HulaHoop/v_HulaHoop_g10_c03 42 -MoppingFloor/v_MoppingFloor_g24_c02 54 -Nunchucks/v_Nunchucks_g08_c04 55 -HulaHoop/v_HulaHoop_g14_c02 42 -TaiChi/v_TaiChi_g15_c02 90 -Skijet/v_Skijet_g18_c04 81 -BrushingTeeth/v_BrushingTeeth_g12_c02 19 -BasketballDunk/v_BasketballDunk_g14_c05 8 -Hammering/v_Hammering_g13_c07 34 -BrushingTeeth/v_BrushingTeeth_g22_c02 19 -Surfing/v_Surfing_g10_c06 87 -CuttingInKitchen/v_CuttingInKitchen_g25_c01 24 -HeadMassage/v_HeadMassage_g17_c06 38 -ShavingBeard/v_ShavingBeard_g18_c03 77 -Diving/v_Diving_g10_c04 25 -HandstandPushups/v_HandStandPushups_g19_c02 36 -SoccerPenalty/v_SoccerPenalty_g23_c04 84 -WalkingWithDog/v_WalkingWithDog_g24_c05 97 -BaseballPitch/v_BaseballPitch_g20_c03 6 -CuttingInKitchen/v_CuttingInKitchen_g19_c04 24 -JavelinThrow/v_JavelinThrow_g24_c04 44 -TennisSwing/v_TennisSwing_g15_c02 91 -SkyDiving/v_SkyDiving_g18_c04 82 -RopeClimbing/v_RopeClimbing_g16_c03 74 -StillRings/v_StillRings_g23_c02 85 -HandstandWalking/v_HandstandWalking_g23_c02 37 -CuttingInKitchen/v_CuttingInKitchen_g24_c03 24 -ApplyEyeMakeup/v_ApplyEyeMakeup_g16_c05 0 -PlayingViolin/v_PlayingViolin_g09_c03 66 -PlayingDhol/v_PlayingDhol_g13_c04 60 -PlayingCello/v_PlayingCello_g23_c06 58 -TableTennisShot/v_TableTennisShot_g18_c02 89 -CliffDiving/v_CliffDiving_g11_c04 21 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c03 0 -TaiChi/v_TaiChi_g11_c03 90 -RockClimbingIndoor/v_RockClimbingIndoor_g17_c06 73 -BabyCrawling/v_BabyCrawling_g18_c03 3 -ShavingBeard/v_ShavingBeard_g20_c01 77 -Diving/v_Diving_g21_c03 25 -PushUps/v_PushUps_g18_c04 71 -IceDancing/v_IceDancing_g25_c07 43 -PlayingGuitar/v_PlayingGuitar_g15_c04 62 -HammerThrow/v_HammerThrow_g19_c06 35 -BasketballDunk/v_BasketballDunk_g16_c04 8 -PlayingSitar/v_PlayingSitar_g09_c03 64 -WallPushups/v_WallPushups_g12_c03 98 -Swing/v_Swing_g14_c04 88 -HulaHoop/v_HulaHoop_g19_c02 42 -BenchPress/v_BenchPress_g15_c06 9 -HeadMassage/v_HeadMassage_g25_c02 38 -Lunges/v_Lunges_g14_c05 51 -CricketShot/v_CricketShot_g21_c03 23 -CleanAndJerk/v_CleanAndJerk_g14_c02 20 -FieldHockeyPenalty/v_FieldHockeyPenalty_g24_c01 28 -ShavingBeard/v_ShavingBeard_g17_c04 77 -PlayingGuitar/v_PlayingGuitar_g19_c06 62 -Diving/v_Diving_g18_c03 25 -Billiards/v_Billiards_g22_c01 11 -BenchPress/v_BenchPress_g18_c05 9 -ApplyEyeMakeup/v_ApplyEyeMakeup_g08_c01 0 -FloorGymnastics/v_FloorGymnastics_g20_c05 29 -CliffDiving/v_CliffDiving_g12_c02 21 -Drumming/v_Drumming_g18_c06 26 -TaiChi/v_TaiChi_g10_c02 90 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c01 73 -JumpingJack/v_JumpingJack_g17_c04 46 -TaiChi/v_TaiChi_g23_c03 90 -TennisSwing/v_TennisSwing_g19_c02 91 -PlayingViolin/v_PlayingViolin_g19_c02 66 -CuttingInKitchen/v_CuttingInKitchen_g11_c03 24 -CricketBowling/v_CricketBowling_g20_c02 22 -SalsaSpin/v_SalsaSpin_g19_c04 76 -Bowling/v_Bowling_g17_c03 15 -SumoWrestling/v_SumoWrestling_g10_c04 86 -HorseRace/v_HorseRace_g25_c01 40 -Diving/v_Diving_g25_c01 25 -SkateBoarding/v_SkateBoarding_g08_c01 79 -BalanceBeam/v_BalanceBeam_g08_c03 4 -JumpingJack/v_JumpingJack_g08_c03 46 -MoppingFloor/v_MoppingFloor_g09_c02 54 -TaiChi/v_TaiChi_g14_c04 90 -HorseRace/v_HorseRace_g16_c04 40 -WalkingWithDog/v_WalkingWithDog_g20_c02 97 -PlayingDaf/v_PlayingDaf_g08_c07 59 -PushUps/v_PushUps_g12_c01 71 -MilitaryParade/v_MilitaryParade_g14_c05 52 -Nunchucks/v_Nunchucks_g10_c02 55 -IceDancing/v_IceDancing_g16_c04 43 -PlayingGuitar/v_PlayingGuitar_g25_c07 62 -Fencing/v_Fencing_g08_c02 27 -PlayingGuitar/v_PlayingGuitar_g09_c03 62 -Shotput/v_Shotput_g09_c02 78 -Rowing/v_Rowing_g17_c06 75 -Hammering/v_Hammering_g24_c02 34 -BandMarching/v_BandMarching_g15_c04 5 -PommelHorse/v_PommelHorse_g12_c01 68 -PlayingTabla/v_PlayingTabla_g25_c02 65 -SkateBoarding/v_SkateBoarding_g10_c05 79 -PlayingCello/v_PlayingCello_g10_c03 58 -LongJump/v_LongJump_g17_c01 50 -TrampolineJumping/v_TrampolineJumping_g16_c01 93 -Billiards/v_Billiards_g20_c01 11 -Punch/v_Punch_g24_c05 70 -PlayingSitar/v_PlayingSitar_g22_c01 64 -JavelinThrow/v_JavelinThrow_g10_c02 44 -Mixing/v_Mixing_g20_c03 53 -PlayingPiano/v_PlayingPiano_g24_c03 63 -BaseballPitch/v_BaseballPitch_g24_c02 6 -SkateBoarding/v_SkateBoarding_g09_c03 79 -PlayingDaf/v_PlayingDaf_g11_c05 59 -Drumming/v_Drumming_g15_c05 26 -SkyDiving/v_SkyDiving_g16_c01 82 -JumpingJack/v_JumpingJack_g19_c07 46 -HandstandPushups/v_HandStandPushups_g12_c07 36 -ShavingBeard/v_ShavingBeard_g22_c06 77 -HeadMassage/v_HeadMassage_g16_c02 38 -PlayingGuitar/v_PlayingGuitar_g23_c03 62 -PlayingDaf/v_PlayingDaf_g23_c01 59 -IceDancing/v_IceDancing_g08_c04 43 -HorseRace/v_HorseRace_g18_c02 40 -BreastStroke/v_BreastStroke_g15_c04 18 -WallPushups/v_WallPushups_g18_c04 98 -BandMarching/v_BandMarching_g11_c02 5 -Lunges/v_Lunges_g11_c01 51 -LongJump/v_LongJump_g18_c01 50 -BreastStroke/v_BreastStroke_g23_c02 18 -PlayingCello/v_PlayingCello_g19_c05 58 -SumoWrestling/v_SumoWrestling_g23_c04 86 -PlayingCello/v_PlayingCello_g24_c02 58 -SalsaSpin/v_SalsaSpin_g25_c04 76 -Typing/v_Typing_g09_c02 94 -LongJump/v_LongJump_g18_c05 50 -LongJump/v_LongJump_g23_c01 50 -FrisbeeCatch/v_FrisbeeCatch_g15_c02 30 -PizzaTossing/v_PizzaTossing_g09_c01 57 -Drumming/v_Drumming_g25_c03 26 -TrampolineJumping/v_TrampolineJumping_g14_c04 93 -HorseRiding/v_HorseRiding_g19_c04 41 -BabyCrawling/v_BabyCrawling_g20_c02 3 -LongJump/v_LongJump_g17_c05 50 -SkateBoarding/v_SkateBoarding_g15_c04 79 -PlayingPiano/v_PlayingPiano_g18_c01 63 -JavelinThrow/v_JavelinThrow_g10_c05 44 -HighJump/v_HighJump_g13_c03 39 -PlayingDaf/v_PlayingDaf_g24_c04 59 -Nunchucks/v_Nunchucks_g16_c04 55 -Billiards/v_Billiards_g25_c04 11 -HorseRace/v_HorseRace_g09_c02 40 -HighJump/v_HighJump_g19_c03 39 -CliffDiving/v_CliffDiving_g14_c02 21 -HandstandPushups/v_HandStandPushups_g14_c02 36 -RopeClimbing/v_RopeClimbing_g18_c05 74 -CricketShot/v_CricketShot_g11_c01 23 -BreastStroke/v_BreastStroke_g21_c02 18 -SoccerJuggling/v_SoccerJuggling_g20_c06 83 -Lunges/v_Lunges_g21_c04 51 -TableTennisShot/v_TableTennisShot_g23_c05 89 -FloorGymnastics/v_FloorGymnastics_g09_c02 29 -SoccerJuggling/v_SoccerJuggling_g24_c07 83 -Rowing/v_Rowing_g24_c04 75 -Haircut/v_Haircut_g10_c02 33 -BlowingCandles/v_BlowingCandles_g08_c02 13 -TrampolineJumping/v_TrampolineJumping_g23_c04 93 -Archery/v_Archery_g19_c01 2 -CuttingInKitchen/v_CuttingInKitchen_g10_c07 24 -HorseRiding/v_HorseRiding_g13_c01 41 -ApplyLipstick/v_ApplyLipstick_g22_c03 1 -ShavingBeard/v_ShavingBeard_g17_c06 77 -BasketballDunk/v_BasketballDunk_g14_c07 8 -Bowling/v_Bowling_g25_c03 15 -JumpingJack/v_JumpingJack_g16_c03 46 -HandstandPushups/v_HandStandPushups_g21_c04 36 -TennisSwing/v_TennisSwing_g13_c04 91 -Typing/v_Typing_g08_c02 94 -Knitting/v_Knitting_g22_c03 49 -HeadMassage/v_HeadMassage_g23_c07 38 -CricketShot/v_CricketShot_g09_c06 23 -Diving/v_Diving_g21_c07 25 -MoppingFloor/v_MoppingFloor_g20_c03 54 -LongJump/v_LongJump_g11_c03 50 -JumpingJack/v_JumpingJack_g16_c04 46 -Diving/v_Diving_g08_c03 25 -Punch/v_Punch_g09_c05 70 -IceDancing/v_IceDancing_g11_c04 43 -HighJump/v_HighJump_g14_c01 39 -TrampolineJumping/v_TrampolineJumping_g17_c02 93 -PlayingFlute/v_PlayingFlute_g20_c01 61 -UnevenBars/v_UnevenBars_g11_c02 95 -JugglingBalls/v_JugglingBalls_g10_c03 45 -HeadMassage/v_HeadMassage_g18_c06 38 -Bowling/v_Bowling_g15_c07 15 -BaseballPitch/v_BaseballPitch_g17_c07 6 -PlayingCello/v_PlayingCello_g10_c05 58 -MilitaryParade/v_MilitaryParade_g15_c02 52 -RockClimbingIndoor/v_RockClimbingIndoor_g09_c01 73 -HorseRace/v_HorseRace_g17_c05 40 -PlayingFlute/v_PlayingFlute_g09_c01 61 -PlayingDaf/v_PlayingDaf_g10_c02 59 -Knitting/v_Knitting_g10_c06 49 -BenchPress/v_BenchPress_g20_c03 9 -ShavingBeard/v_ShavingBeard_g12_c06 77 -BoxingPunchingBag/v_BoxingPunchingBag_g23_c05 16 -PlayingDhol/v_PlayingDhol_g25_c05 60 -CricketShot/v_CricketShot_g13_c06 23 -Kayaking/v_Kayaking_g18_c07 48 -Nunchucks/v_Nunchucks_g20_c02 55 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c04 16 -BreastStroke/v_BreastStroke_g23_c03 18 -SumoWrestling/v_SumoWrestling_g15_c03 86 -TennisSwing/v_TennisSwing_g20_c05 91 -BreastStroke/v_BreastStroke_g23_c01 18 -Kayaking/v_Kayaking_g19_c05 48 -ApplyEyeMakeup/v_ApplyEyeMakeup_g21_c01 0 -BlowDryHair/v_BlowDryHair_g09_c01 12 -CuttingInKitchen/v_CuttingInKitchen_g15_c04 24 -PlayingTabla/v_PlayingTabla_g24_c03 65 -PushUps/v_PushUps_g20_c02 71 -Mixing/v_Mixing_g08_c03 53 -TableTennisShot/v_TableTennisShot_g22_c03 89 -TrampolineJumping/v_TrampolineJumping_g13_c02 93 -Drumming/v_Drumming_g19_c01 26 -Knitting/v_Knitting_g14_c01 49 -ThrowDiscus/v_ThrowDiscus_g09_c03 92 -Punch/v_Punch_g12_c04 70 -HorseRace/v_HorseRace_g19_c06 40 -Skiing/v_Skiing_g15_c01 80 -FrisbeeCatch/v_FrisbeeCatch_g22_c02 30 -CleanAndJerk/v_CleanAndJerk_g19_c04 20 -BaseballPitch/v_BaseballPitch_g20_c04 6 -BenchPress/v_BenchPress_g22_c06 9 -HeadMassage/v_HeadMassage_g11_c03 38 -UnevenBars/v_UnevenBars_g21_c04 95 -Typing/v_Typing_g08_c03 94 -CricketShot/v_CricketShot_g15_c06 23 -JumpRope/v_JumpRope_g24_c04 47 -GolfSwing/v_GolfSwing_g09_c03 32 -JumpingJack/v_JumpingJack_g19_c03 46 -SalsaSpin/v_SalsaSpin_g23_c02 76 -PlayingFlute/v_PlayingFlute_g12_c05 61 -PlayingFlute/v_PlayingFlute_g10_c02 61 -PushUps/v_PushUps_g17_c01 71 -PushUps/v_PushUps_g14_c03 71 -Diving/v_Diving_g14_c02 25 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c04 0 -HorseRiding/v_HorseRiding_g09_c06 41 -PlayingDhol/v_PlayingDhol_g16_c06 60 -BodyWeightSquats/v_BodyWeightSquats_g19_c04 14 -SoccerPenalty/v_SoccerPenalty_g18_c04 84 -CricketBowling/v_CricketBowling_g18_c05 22 -BodyWeightSquats/v_BodyWeightSquats_g08_c02 14 -CliffDiving/v_CliffDiving_g14_c07 21 -PlayingTabla/v_PlayingTabla_g16_c03 65 -Punch/v_Punch_g14_c04 70 -ShavingBeard/v_ShavingBeard_g19_c03 77 -PlayingGuitar/v_PlayingGuitar_g08_c06 62 -SoccerPenalty/v_SoccerPenalty_g11_c05 84 -BenchPress/v_BenchPress_g09_c06 9 -BandMarching/v_BandMarching_g18_c03 5 -CleanAndJerk/v_CleanAndJerk_g22_c01 20 -Diving/v_Diving_g25_c03 25 -TrampolineJumping/v_TrampolineJumping_g08_c01 93 -Bowling/v_Bowling_g24_c05 15 -BenchPress/v_BenchPress_g25_c06 9 -Archery/v_Archery_g21_c04 2 -SumoWrestling/v_SumoWrestling_g09_c02 86 -BreastStroke/v_BreastStroke_g12_c02 18 -PlayingViolin/v_PlayingViolin_g11_c02 66 -Swing/v_Swing_g25_c01 88 -BreastStroke/v_BreastStroke_g18_c05 18 -BabyCrawling/v_BabyCrawling_g22_c07 3 -IceDancing/v_IceDancing_g24_c04 43 -CricketBowling/v_CricketBowling_g24_c04 22 -HorseRiding/v_HorseRiding_g22_c07 41 -BabyCrawling/v_BabyCrawling_g22_c06 3 -Shotput/v_Shotput_g23_c04 78 -TennisSwing/v_TennisSwing_g10_c02 91 -Lunges/v_Lunges_g15_c01 51 -FieldHockeyPenalty/v_FieldHockeyPenalty_g13_c03 28 -Diving/v_Diving_g19_c03 25 -Typing/v_Typing_g20_c07 94 -SalsaSpin/v_SalsaSpin_g13_c02 76 -HulaHoop/v_HulaHoop_g11_c02 42 -Kayaking/v_Kayaking_g21_c05 48 -HorseRiding/v_HorseRiding_g23_c04 41 -CleanAndJerk/v_CleanAndJerk_g16_c01 20 -Nunchucks/v_Nunchucks_g22_c01 55 -PullUps/v_PullUps_g09_c02 69 -BabyCrawling/v_BabyCrawling_g08_c01 3 -CricketShot/v_CricketShot_g23_c04 23 -UnevenBars/v_UnevenBars_g13_c03 95 -Lunges/v_Lunges_g19_c07 51 -HandstandPushups/v_HandStandPushups_g18_c04 36 -MilitaryParade/v_MilitaryParade_g11_c05 52 -YoYo/v_YoYo_g18_c04 100 -Haircut/v_Haircut_g23_c04 33 -Shotput/v_Shotput_g23_c05 78 -TennisSwing/v_TennisSwing_g24_c06 91 -BodyWeightSquats/v_BodyWeightSquats_g17_c04 14 -CricketShot/v_CricketShot_g13_c02 23 -UnevenBars/v_UnevenBars_g16_c05 95 -PlayingFlute/v_PlayingFlute_g14_c06 61 -PlayingGuitar/v_PlayingGuitar_g23_c01 62 -Typing/v_Typing_g10_c05 94 -SoccerPenalty/v_SoccerPenalty_g23_c02 84 -Rafting/v_Rafting_g22_c01 72 -UnevenBars/v_UnevenBars_g15_c07 95 -SkateBoarding/v_SkateBoarding_g21_c02 79 -Skiing/v_Skiing_g08_c01 80 -PlayingViolin/v_PlayingViolin_g10_c04 66 -FrontCrawl/v_FrontCrawl_g14_c03 31 -Rowing/v_Rowing_g13_c02 75 -BenchPress/v_BenchPress_g12_c07 9 -MilitaryParade/v_MilitaryParade_g23_c02 52 -Drumming/v_Drumming_g20_c02 26 -Typing/v_Typing_g21_c04 94 -BodyWeightSquats/v_BodyWeightSquats_g25_c05 14 -Rafting/v_Rafting_g08_c02 72 -MilitaryParade/v_MilitaryParade_g15_c01 52 -PushUps/v_PushUps_g15_c01 71 -Rafting/v_Rafting_g18_c02 72 -TaiChi/v_TaiChi_g25_c01 90 -PlayingDaf/v_PlayingDaf_g09_c02 59 -Fencing/v_Fencing_g23_c04 27 -WalkingWithDog/v_WalkingWithDog_g18_c03 97 -HeadMassage/v_HeadMassage_g17_c02 38 -Archery/v_Archery_g24_c05 2 -Swing/v_Swing_g21_c04 88 -CricketShot/v_CricketShot_g22_c07 23 -Surfing/v_Surfing_g14_c04 87 -BaseballPitch/v_BaseballPitch_g23_c04 6 -BandMarching/v_BandMarching_g21_c06 5 -ShavingBeard/v_ShavingBeard_g11_c01 77 -PlayingPiano/v_PlayingPiano_g24_c01 63 -Typing/v_Typing_g20_c02 94 -WalkingWithDog/v_WalkingWithDog_g24_c02 97 -PlayingGuitar/v_PlayingGuitar_g10_c04 62 -UnevenBars/v_UnevenBars_g11_c04 95 -BodyWeightSquats/v_BodyWeightSquats_g23_c01 14 -Knitting/v_Knitting_g25_c04 49 -Lunges/v_Lunges_g10_c02 51 -FrontCrawl/v_FrontCrawl_g08_c02 31 -Diving/v_Diving_g22_c01 25 -Rowing/v_Rowing_g09_c05 75 -HandstandPushups/v_HandStandPushups_g25_c03 36 -Swing/v_Swing_g10_c03 88 -HammerThrow/v_HammerThrow_g24_c02 35 -Hammering/v_Hammering_g14_c02 34 -TennisSwing/v_TennisSwing_g08_c05 91 -Swing/v_Swing_g12_c04 88 -HeadMassage/v_HeadMassage_g11_c07 38 -Kayaking/v_Kayaking_g13_c01 48 -WritingOnBoard/v_WritingOnBoard_g22_c06 99 -HulaHoop/v_HulaHoop_g23_c03 42 -FloorGymnastics/v_FloorGymnastics_g14_c05 29 -HulaHoop/v_HulaHoop_g16_c03 42 -Punch/v_Punch_g10_c06 70 -CricketBowling/v_CricketBowling_g15_c06 22 -CricketShot/v_CricketShot_g25_c05 23 -YoYo/v_YoYo_g11_c06 100 -BandMarching/v_BandMarching_g09_c07 5 -RopeClimbing/v_RopeClimbing_g18_c03 74 -Surfing/v_Surfing_g17_c06 87 -PlayingCello/v_PlayingCello_g22_c04 58 -Fencing/v_Fencing_g18_c04 27 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c04 73 -BasketballDunk/v_BasketballDunk_g12_c04 8 -HighJump/v_HighJump_g09_c02 39 -PlayingCello/v_PlayingCello_g17_c06 58 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c06 17 -FloorGymnastics/v_FloorGymnastics_g09_c01 29 -Basketball/v_Basketball_g15_c06 7 -Skiing/v_Skiing_g22_c04 80 -FloorGymnastics/v_FloorGymnastics_g14_c03 29 -BasketballDunk/v_BasketballDunk_g09_c01 8 -CuttingInKitchen/v_CuttingInKitchen_g20_c03 24 -SkateBoarding/v_SkateBoarding_g19_c03 79 -Diving/v_Diving_g19_c02 25 -Basketball/v_Basketball_g20_c01 7 -CuttingInKitchen/v_CuttingInKitchen_g17_c03 24 -YoYo/v_YoYo_g20_c03 100 -PlayingCello/v_PlayingCello_g09_c07 58 -SumoWrestling/v_SumoWrestling_g15_c01 86 -HeadMassage/v_HeadMassage_g11_c06 38 -CricketShot/v_CricketShot_g16_c07 23 -SumoWrestling/v_SumoWrestling_g18_c06 86 -HandstandWalking/v_HandstandWalking_g18_c07 37 -HighJump/v_HighJump_g24_c05 39 -IceDancing/v_IceDancing_g18_c01 43 -BabyCrawling/v_BabyCrawling_g16_c06 3 -MoppingFloor/v_MoppingFloor_g17_c01 54 -Shotput/v_Shotput_g15_c04 78 -MoppingFloor/v_MoppingFloor_g25_c03 54 -BaseballPitch/v_BaseballPitch_g25_c03 6 -IceDancing/v_IceDancing_g25_c03 43 -Biking/v_Biking_g13_c01 10 -PlayingCello/v_PlayingCello_g15_c06 58 -Drumming/v_Drumming_g11_c07 26 -PlayingViolin/v_PlayingViolin_g18_c01 66 -RockClimbingIndoor/v_RockClimbingIndoor_g19_c04 73 -Drumming/v_Drumming_g25_c07 26 -Hammering/v_Hammering_g19_c06 34 -VolleyballSpiking/v_VolleyballSpiking_g22_c02 96 -Basketball/v_Basketball_g25_c02 7 -LongJump/v_LongJump_g19_c05 50 -PizzaTossing/v_PizzaTossing_g16_c01 57 -BreastStroke/v_BreastStroke_g17_c02 18 -JugglingBalls/v_JugglingBalls_g22_c03 45 -BaseballPitch/v_BaseballPitch_g09_c02 6 -Punch/v_Punch_g10_c05 70 -Diving/v_Diving_g09_c04 25 -BrushingTeeth/v_BrushingTeeth_g18_c01 19 -Punch/v_Punch_g18_c04 70 -HandstandWalking/v_HandstandWalking_g16_c04 37 -SumoWrestling/v_SumoWrestling_g20_c03 86 -BodyWeightSquats/v_BodyWeightSquats_g17_c03 14 -JugglingBalls/v_JugglingBalls_g23_c02 45 -MilitaryParade/v_MilitaryParade_g08_c05 52 -Shotput/v_Shotput_g24_c04 78 -HeadMassage/v_HeadMassage_g17_c01 38 -PommelHorse/v_PommelHorse_g23_c03 68 -HorseRace/v_HorseRace_g23_c05 40 -PlayingSitar/v_PlayingSitar_g19_c06 64 -Lunges/v_Lunges_g17_c01 51 -BandMarching/v_BandMarching_g10_c06 5 -ApplyEyeMakeup/v_ApplyEyeMakeup_g17_c05 0 -BlowDryHair/v_BlowDryHair_g16_c02 12 -BaseballPitch/v_BaseballPitch_g22_c05 6 -SkateBoarding/v_SkateBoarding_g18_c02 79 -Fencing/v_Fencing_g20_c01 27 -WritingOnBoard/v_WritingOnBoard_g20_c05 99 -SkyDiving/v_SkyDiving_g24_c02 82 -JumpRope/v_JumpRope_g10_c04 47 -ApplyEyeMakeup/v_ApplyEyeMakeup_g16_c04 0 -BasketballDunk/v_BasketballDunk_g23_c05 8 -HandstandPushups/v_HandStandPushups_g12_c04 36 -BlowDryHair/v_BlowDryHair_g14_c01 12 -UnevenBars/v_UnevenBars_g17_c03 95 -CuttingInKitchen/v_CuttingInKitchen_g17_c02 24 -Billiards/v_Billiards_g25_c02 11 -Swing/v_Swing_g14_c03 88 -Lunges/v_Lunges_g25_c04 51 -BasketballDunk/v_BasketballDunk_g08_c02 8 -FrontCrawl/v_FrontCrawl_g16_c01 31 -Rafting/v_Rafting_g17_c06 72 -JugglingBalls/v_JugglingBalls_g20_c02 45 -BoxingPunchingBag/v_BoxingPunchingBag_g12_c07 16 -Surfing/v_Surfing_g09_c02 87 -PlayingCello/v_PlayingCello_g25_c07 58 -CliffDiving/v_CliffDiving_g17_c04 21 -Fencing/v_Fencing_g24_c03 27 -BoxingPunchingBag/v_BoxingPunchingBag_g11_c02 16 -HeadMassage/v_HeadMassage_g08_c02 38 -PlayingFlute/v_PlayingFlute_g14_c04 61 -SalsaSpin/v_SalsaSpin_g14_c04 76 -PizzaTossing/v_PizzaTossing_g10_c02 57 -PizzaTossing/v_PizzaTossing_g13_c02 57 -HammerThrow/v_HammerThrow_g18_c01 35 -PommelHorse/v_PommelHorse_g13_c02 68 -SkateBoarding/v_SkateBoarding_g11_c03 79 -Rowing/v_Rowing_g14_c07 75 -PlayingTabla/v_PlayingTabla_g16_c02 65 -PlayingDaf/v_PlayingDaf_g10_c06 59 -RopeClimbing/v_RopeClimbing_g17_c02 74 -PlayingDaf/v_PlayingDaf_g25_c03 59 -PlayingViolin/v_PlayingViolin_g08_c02 66 -HighJump/v_HighJump_g08_c04 39 -Archery/v_Archery_g13_c05 2 -HammerThrow/v_HammerThrow_g08_c04 35 -HeadMassage/v_HeadMassage_g20_c02 38 -Hammering/v_Hammering_g18_c03 34 -Typing/v_Typing_g20_c05 94 -PlayingDaf/v_PlayingDaf_g20_c05 59 -ShavingBeard/v_ShavingBeard_g17_c05 77 -SkyDiving/v_SkyDiving_g25_c03 82 -BodyWeightSquats/v_BodyWeightSquats_g10_c03 14 -Haircut/v_Haircut_g16_c05 33 -PlayingGuitar/v_PlayingGuitar_g19_c02 62 -Diving/v_Diving_g20_c07 25 -HandstandPushups/v_HandStandPushups_g20_c03 36 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c06 0 -BreastStroke/v_BreastStroke_g22_c02 18 -WritingOnBoard/v_WritingOnBoard_g25_c05 99 -FrontCrawl/v_FrontCrawl_g23_c05 31 -BasketballDunk/v_BasketballDunk_g17_c02 8 -Typing/v_Typing_g19_c04 94 -BandMarching/v_BandMarching_g21_c05 5 -BoxingSpeedBag/v_BoxingSpeedBag_g08_c01 17 -SumoWrestling/v_SumoWrestling_g13_c04 86 -SalsaSpin/v_SalsaSpin_g24_c01 76 -ApplyLipstick/v_ApplyLipstick_g22_c06 1 -Mixing/v_Mixing_g13_c04 53 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c07 73 -PlayingFlute/v_PlayingFlute_g22_c05 61 -Mixing/v_Mixing_g09_c05 53 -Rafting/v_Rafting_g17_c03 72 -Mixing/v_Mixing_g25_c02 53 -PlayingViolin/v_PlayingViolin_g13_c04 66 -PommelHorse/v_PommelHorse_g22_c06 68 -Archery/v_Archery_g11_c04 2 -JavelinThrow/v_JavelinThrow_g23_c05 44 -HorseRiding/v_HorseRiding_g10_c06 41 -PullUps/v_PullUps_g21_c01 69 -HandstandWalking/v_HandstandWalking_g22_c01 37 -HighJump/v_HighJump_g16_c03 39 -Swing/v_Swing_g15_c01 88 -PlayingViolin/v_PlayingViolin_g12_c04 66 -ApplyLipstick/v_ApplyLipstick_g12_c04 1 -BandMarching/v_BandMarching_g09_c05 5 -BlowDryHair/v_BlowDryHair_g13_c04 12 -RockClimbingIndoor/v_RockClimbingIndoor_g12_c03 73 -CricketBowling/v_CricketBowling_g17_c02 22 -BandMarching/v_BandMarching_g15_c06 5 -WallPushups/v_WallPushups_g22_c02 98 -HeadMassage/v_HeadMassage_g14_c06 38 -PlayingTabla/v_PlayingTabla_g15_c04 65 -Lunges/v_Lunges_g19_c05 51 -GolfSwing/v_GolfSwing_g14_c01 32 -PlayingPiano/v_PlayingPiano_g17_c04 63 -Drumming/v_Drumming_g13_c05 26 -HandstandWalking/v_HandstandWalking_g17_c02 37 -IceDancing/v_IceDancing_g16_c02 43 -PlayingSitar/v_PlayingSitar_g13_c04 64 -LongJump/v_LongJump_g12_c05 50 -YoYo/v_YoYo_g22_c06 100 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c03 0 -CricketShot/v_CricketShot_g17_c03 23 -BrushingTeeth/v_BrushingTeeth_g22_c01 19 -ParallelBars/v_ParallelBars_g12_c01 56 -YoYo/v_YoYo_g16_c03 100 -ParallelBars/v_ParallelBars_g25_c03 56 -Rafting/v_Rafting_g14_c02 72 -CleanAndJerk/v_CleanAndJerk_g19_c03 20 -TrampolineJumping/v_TrampolineJumping_g19_c03 93 -StillRings/v_StillRings_g14_c01 85 -BoxingSpeedBag/v_BoxingSpeedBag_g11_c05 17 -Biking/v_Biking_g10_c01 10 -HorseRiding/v_HorseRiding_g16_c02 41 -JumpingJack/v_JumpingJack_g15_c04 46 -BabyCrawling/v_BabyCrawling_g21_c03 3 -RockClimbingIndoor/v_RockClimbingIndoor_g11_c03 73 -PoleVault/v_PoleVault_g11_c05 67 -PommelHorse/v_PommelHorse_g22_c04 68 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c06 0 -HulaHoop/v_HulaHoop_g22_c02 42 -BlowingCandles/v_BlowingCandles_g18_c04 13 -PullUps/v_PullUps_g15_c03 69 -Mixing/v_Mixing_g15_c01 53 -PlayingFlute/v_PlayingFlute_g23_c02 61 -IceDancing/v_IceDancing_g20_c04 43 -PlayingPiano/v_PlayingPiano_g16_c06 63 -YoYo/v_YoYo_g17_c06 100 -PlayingDaf/v_PlayingDaf_g11_c01 59 -RockClimbingIndoor/v_RockClimbingIndoor_g14_c03 73 -VolleyballSpiking/v_VolleyballSpiking_g15_c01 96 -PlayingCello/v_PlayingCello_g11_c01 58 -RopeClimbing/v_RopeClimbing_g21_c01 74 -Drumming/v_Drumming_g23_c02 26 -SkyDiving/v_SkyDiving_g25_c02 82 -WallPushups/v_WallPushups_g17_c01 98 -PlayingPiano/v_PlayingPiano_g11_c03 63 -PlayingTabla/v_PlayingTabla_g22_c03 65 -PizzaTossing/v_PizzaTossing_g20_c04 57 -Biking/v_Biking_g24_c03 10 -StillRings/v_StillRings_g24_c04 85 -YoYo/v_YoYo_g13_c02 100 -TableTennisShot/v_TableTennisShot_g09_c01 89 -Billiards/v_Billiards_g12_c06 11 -YoYo/v_YoYo_g10_c04 100 -ThrowDiscus/v_ThrowDiscus_g16_c04 92 -TaiChi/v_TaiChi_g13_c01 90 -Skiing/v_Skiing_g18_c02 80 -SalsaSpin/v_SalsaSpin_g20_c03 76 -HulaHoop/v_HulaHoop_g15_c03 42 -ParallelBars/v_ParallelBars_g08_c05 56 -Lunges/v_Lunges_g18_c04 51 -FloorGymnastics/v_FloorGymnastics_g12_c05 29 -PlayingViolin/v_PlayingViolin_g22_c02 66 -Biking/v_Biking_g15_c04 10 -PlayingGuitar/v_PlayingGuitar_g20_c01 62 -BalanceBeam/v_BalanceBeam_g21_c01 4 -FrontCrawl/v_FrontCrawl_g10_c04 31 -TrampolineJumping/v_TrampolineJumping_g09_c05 93 -LongJump/v_LongJump_g17_c04 50 -VolleyballSpiking/v_VolleyballSpiking_g12_c04 96 -PlayingFlute/v_PlayingFlute_g09_c03 61 -BodyWeightSquats/v_BodyWeightSquats_g09_c05 14 -Rowing/v_Rowing_g14_c05 75 -MoppingFloor/v_MoppingFloor_g13_c03 54 -HeadMassage/v_HeadMassage_g22_c07 38 -TaiChi/v_TaiChi_g14_c02 90 -BodyWeightSquats/v_BodyWeightSquats_g18_c04 14 -Billiards/v_Billiards_g13_c07 11 -Swing/v_Swing_g12_c03 88 -YoYo/v_YoYo_g09_c03 100 -PlayingPiano/v_PlayingPiano_g18_c02 63 -PlayingDhol/v_PlayingDhol_g23_c05 60 -BoxingSpeedBag/v_BoxingSpeedBag_g14_c01 17 -Billiards/v_Billiards_g14_c07 11 -MilitaryParade/v_MilitaryParade_g25_c04 52 -PlayingViolin/v_PlayingViolin_g14_c04 66 -HorseRiding/v_HorseRiding_g10_c03 41 -CricketBowling/v_CricketBowling_g15_c03 22 -PlayingSitar/v_PlayingSitar_g24_c01 64 -CuttingInKitchen/v_CuttingInKitchen_g21_c01 24 -IceDancing/v_IceDancing_g18_c03 43 -LongJump/v_LongJump_g10_c04 50 -Skiing/v_Skiing_g21_c03 80 -HeadMassage/v_HeadMassage_g19_c04 38 -HorseRace/v_HorseRace_g22_c01 40 -SoccerJuggling/v_SoccerJuggling_g09_c04 83 -BalanceBeam/v_BalanceBeam_g23_c03 4 -TaiChi/v_TaiChi_g09_c03 90 -JumpingJack/v_JumpingJack_g13_c03 46 -PushUps/v_PushUps_g12_c02 71 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c04 28 -Skiing/v_Skiing_g24_c05 80 -Nunchucks/v_Nunchucks_g23_c04 55 -Haircut/v_Haircut_g16_c02 33 -ThrowDiscus/v_ThrowDiscus_g21_c05 92 -JavelinThrow/v_JavelinThrow_g24_c02 44 -BoxingSpeedBag/v_BoxingSpeedBag_g25_c04 17 -TaiChi/v_TaiChi_g24_c01 90 -SumoWrestling/v_SumoWrestling_g12_c03 86 -Kayaking/v_Kayaking_g12_c02 48 -CricketShot/v_CricketShot_g19_c05 23 -HeadMassage/v_HeadMassage_g12_c07 38 -JumpRope/v_JumpRope_g19_c01 47 -TennisSwing/v_TennisSwing_g08_c04 91 -Basketball/v_Basketball_g13_c02 7 -JumpRope/v_JumpRope_g11_c03 47 -BenchPress/v_BenchPress_g23_c02 9 -PoleVault/v_PoleVault_g19_c02 67 -BasketballDunk/v_BasketballDunk_g24_c03 8 -HorseRace/v_HorseRace_g24_c04 40 -SoccerJuggling/v_SoccerJuggling_g23_c01 83 -SkyDiving/v_SkyDiving_g21_c03 82 -JavelinThrow/v_JavelinThrow_g20_c02 44 -BenchPress/v_BenchPress_g13_c07 9 -Diving/v_Diving_g13_c05 25 -Knitting/v_Knitting_g16_c05 49 -Archery/v_Archery_g15_c03 2 -BrushingTeeth/v_BrushingTeeth_g22_c04 19 -HandstandPushups/v_HandStandPushups_g14_c01 36 -BenchPress/v_BenchPress_g08_c07 9 -VolleyballSpiking/v_VolleyballSpiking_g11_c02 96 -SkateBoarding/v_SkateBoarding_g10_c06 79 -PullUps/v_PullUps_g24_c01 69 -SoccerJuggling/v_SoccerJuggling_g21_c04 83 -Bowling/v_Bowling_g20_c07 15 -Drumming/v_Drumming_g13_c03 26 -BandMarching/v_BandMarching_g18_c06 5 -ShavingBeard/v_ShavingBeard_g09_c04 77 -HammerThrow/v_HammerThrow_g23_c06 35 -ThrowDiscus/v_ThrowDiscus_g18_c01 92 -BandMarching/v_BandMarching_g21_c02 5 -BasketballDunk/v_BasketballDunk_g14_c04 8 -FieldHockeyPenalty/v_FieldHockeyPenalty_g24_c03 28 -HammerThrow/v_HammerThrow_g21_c02 35 -CricketBowling/v_CricketBowling_g24_c02 22 -TaiChi/v_TaiChi_g20_c01 90 -ParallelBars/v_ParallelBars_g15_c04 56 -Haircut/v_Haircut_g23_c01 33 -SumoWrestling/v_SumoWrestling_g19_c01 86 -BalanceBeam/v_BalanceBeam_g17_c01 4 -Lunges/v_Lunges_g13_c04 51 -RopeClimbing/v_RopeClimbing_g25_c05 74 -ParallelBars/v_ParallelBars_g08_c04 56 -BasketballDunk/v_BasketballDunk_g25_c03 8 -FloorGymnastics/v_FloorGymnastics_g18_c05 29 -PoleVault/v_PoleVault_g25_c04 67 -Biking/v_Biking_g08_c02 10 -StillRings/v_StillRings_g09_c04 85 -VolleyballSpiking/v_VolleyballSpiking_g21_c01 96 -Nunchucks/v_Nunchucks_g23_c02 55 -TaiChi/v_TaiChi_g12_c02 90 -Shotput/v_Shotput_g23_c02 78 -FrontCrawl/v_FrontCrawl_g18_c07 31 -UnevenBars/v_UnevenBars_g14_c04 95 -BenchPress/v_BenchPress_g14_c05 9 -Diving/v_Diving_g21_c06 25 -RopeClimbing/v_RopeClimbing_g13_c05 74 -PullUps/v_PullUps_g17_c04 69 -HandstandPushups/v_HandStandPushups_g22_c01 36 -PlayingCello/v_PlayingCello_g25_c02 58 -Kayaking/v_Kayaking_g24_c02 48 -SkateBoarding/v_SkateBoarding_g25_c01 79 -JumpRope/v_JumpRope_g15_c02 47 -IceDancing/v_IceDancing_g16_c01 43 -WallPushups/v_WallPushups_g10_c03 98 -TaiChi/v_TaiChi_g13_c04 90 -WallPushups/v_WallPushups_g20_c06 98 -LongJump/v_LongJump_g18_c02 50 -WritingOnBoard/v_WritingOnBoard_g20_c02 99 -PlayingDhol/v_PlayingDhol_g23_c07 60 -IceDancing/v_IceDancing_g12_c05 43 -Billiards/v_Billiards_g24_c02 11 -Bowling/v_Bowling_g15_c01 15 -PlayingCello/v_PlayingCello_g11_c05 58 -Nunchucks/v_Nunchucks_g13_c04 55 -WalkingWithDog/v_WalkingWithDog_g20_c06 97 -BaseballPitch/v_BaseballPitch_g24_c07 6 -FrontCrawl/v_FrontCrawl_g13_c01 31 -Basketball/v_Basketball_g21_c01 7 -BoxingSpeedBag/v_BoxingSpeedBag_g22_c01 17 -SoccerPenalty/v_SoccerPenalty_g17_c03 84 -WritingOnBoard/v_WritingOnBoard_g24_c03 99 -BrushingTeeth/v_BrushingTeeth_g08_c03 19 -BlowingCandles/v_BlowingCandles_g17_c01 13 -HorseRiding/v_HorseRiding_g11_c04 41 -Skiing/v_Skiing_g13_c06 80 -JugglingBalls/v_JugglingBalls_g18_c02 45 -PoleVault/v_PoleVault_g14_c07 67 -ApplyEyeMakeup/v_ApplyEyeMakeup_g10_c01 0 -Drumming/v_Drumming_g12_c06 26 -CricketBowling/v_CricketBowling_g23_c04 22 -PoleVault/v_PoleVault_g10_c02 67 -Biking/v_Biking_g16_c01 10 -Rowing/v_Rowing_g14_c01 75 -PizzaTossing/v_PizzaTossing_g21_c01 57 -Typing/v_Typing_g15_c03 94 -PlayingPiano/v_PlayingPiano_g23_c04 63 -SkateBoarding/v_SkateBoarding_g17_c02 79 -PlayingCello/v_PlayingCello_g11_c06 58 -HorseRace/v_HorseRace_g23_c02 40 -BandMarching/v_BandMarching_g25_c04 5 -BasketballDunk/v_BasketballDunk_g10_c03 8 -PlayingDhol/v_PlayingDhol_g23_c03 60 -BandMarching/v_BandMarching_g21_c04 5 -BenchPress/v_BenchPress_g19_c05 9 -TennisSwing/v_TennisSwing_g11_c03 91 -BrushingTeeth/v_BrushingTeeth_g18_c05 19 -Typing/v_Typing_g12_c01 94 -MoppingFloor/v_MoppingFloor_g17_c06 54 -PlayingSitar/v_PlayingSitar_g08_c04 64 -WallPushups/v_WallPushups_g16_c07 98 -MilitaryParade/v_MilitaryParade_g14_c04 52 -UnevenBars/v_UnevenBars_g12_c04 95 -ShavingBeard/v_ShavingBeard_g23_c02 77 -TrampolineJumping/v_TrampolineJumping_g16_c06 93 -ThrowDiscus/v_ThrowDiscus_g12_c06 92 -BabyCrawling/v_BabyCrawling_g23_c02 3 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c02 0 -Knitting/v_Knitting_g22_c04 49 -TrampolineJumping/v_TrampolineJumping_g12_c04 93 -BalanceBeam/v_BalanceBeam_g21_c05 4 -Billiards/v_Billiards_g22_c05 11 -Bowling/v_Bowling_g19_c05 15 -Skiing/v_Skiing_g13_c01 80 -HeadMassage/v_HeadMassage_g23_c05 38 -Shotput/v_Shotput_g13_c03 78 -CricketShot/v_CricketShot_g13_c03 23 -WallPushups/v_WallPushups_g15_c04 98 -ParallelBars/v_ParallelBars_g14_c02 56 -Hammering/v_Hammering_g17_c04 34 -ParallelBars/v_ParallelBars_g09_c01 56 -RopeClimbing/v_RopeClimbing_g14_c03 74 -CricketShot/v_CricketShot_g12_c01 23 -PlayingTabla/v_PlayingTabla_g25_c05 65 -Punch/v_Punch_g11_c03 70 -CuttingInKitchen/v_CuttingInKitchen_g14_c02 24 -CricketShot/v_CricketShot_g13_c05 23 -Surfing/v_Surfing_g12_c07 87 -WalkingWithDog/v_WalkingWithDog_g10_c01 97 -FrisbeeCatch/v_FrisbeeCatch_g17_c04 30 -Basketball/v_Basketball_g21_c04 7 -BandMarching/v_BandMarching_g15_c07 5 -HorseRace/v_HorseRace_g16_c03 40 -BreastStroke/v_BreastStroke_g10_c04 18 -LongJump/v_LongJump_g14_c03 50 -IceDancing/v_IceDancing_g23_c01 43 -FrontCrawl/v_FrontCrawl_g14_c06 31 -Billiards/v_Billiards_g24_c05 11 -RopeClimbing/v_RopeClimbing_g18_c01 74 -VolleyballSpiking/v_VolleyballSpiking_g24_c01 96 -Drumming/v_Drumming_g16_c02 26 -TrampolineJumping/v_TrampolineJumping_g11_c01 93 -Hammering/v_Hammering_g18_c07 34 -JumpRope/v_JumpRope_g12_c02 47 -PlayingTabla/v_PlayingTabla_g19_c02 65 -HorseRace/v_HorseRace_g08_c01 40 -BaseballPitch/v_BaseballPitch_g23_c05 6 -TrampolineJumping/v_TrampolineJumping_g20_c04 93 -BodyWeightSquats/v_BodyWeightSquats_g24_c01 14 -Drumming/v_Drumming_g19_c07 26 -TableTennisShot/v_TableTennisShot_g16_c05 89 -StillRings/v_StillRings_g21_c06 85 -SoccerPenalty/v_SoccerPenalty_g16_c04 84 -PlayingPiano/v_PlayingPiano_g19_c03 63 -JumpRope/v_JumpRope_g15_c05 47 -WritingOnBoard/v_WritingOnBoard_g18_c06 99 -SoccerJuggling/v_SoccerJuggling_g17_c05 83 -PlayingDaf/v_PlayingDaf_g08_c03 59 -HorseRace/v_HorseRace_g11_c05 40 -WritingOnBoard/v_WritingOnBoard_g18_c04 99 -Archery/v_Archery_g08_c01 2 -FrontCrawl/v_FrontCrawl_g08_c01 31 -Hammering/v_Hammering_g15_c05 34 -BabyCrawling/v_BabyCrawling_g16_c02 3 -JavelinThrow/v_JavelinThrow_g17_c03 44 -BandMarching/v_BandMarching_g11_c01 5 -PushUps/v_PushUps_g11_c02 71 -Nunchucks/v_Nunchucks_g08_c01 55 -JavelinThrow/v_JavelinThrow_g24_c06 44 -HandstandWalking/v_HandstandWalking_g13_c04 37 -PullUps/v_PullUps_g13_c03 69 -ApplyEyeMakeup/v_ApplyEyeMakeup_g20_c06 0 -PlayingPiano/v_PlayingPiano_g08_c01 63 -HulaHoop/v_HulaHoop_g25_c03 42 -Billiards/v_Billiards_g18_c07 11 -PlayingTabla/v_PlayingTabla_g15_c03 65 -Kayaking/v_Kayaking_g21_c06 48 -CricketShot/v_CricketShot_g15_c03 23 -LongJump/v_LongJump_g25_c01 50 -CliffDiving/v_CliffDiving_g19_c03 21 -Surfing/v_Surfing_g19_c02 87 -MilitaryParade/v_MilitaryParade_g11_c04 52 -HulaHoop/v_HulaHoop_g20_c03 42 -WallPushups/v_WallPushups_g17_c06 98 -Haircut/v_Haircut_g19_c06 33 -PlayingCello/v_PlayingCello_g14_c02 58 -BenchPress/v_BenchPress_g21_c02 9 -Basketball/v_Basketball_g25_c05 7 -PlayingGuitar/v_PlayingGuitar_g22_c03 62 -WalkingWithDog/v_WalkingWithDog_g21_c01 97 -JumpingJack/v_JumpingJack_g17_c03 46 -BlowingCandles/v_BlowingCandles_g14_c01 13 -Punch/v_Punch_g08_c03 70 -Haircut/v_Haircut_g17_c01 33 -PoleVault/v_PoleVault_g23_c02 67 -CricketShot/v_CricketShot_g21_c02 23 -HeadMassage/v_HeadMassage_g15_c06 38 -BoxingPunchingBag/v_BoxingPunchingBag_g15_c01 16 -Archery/v_Archery_g23_c02 2 -StillRings/v_StillRings_g08_c02 85 -SoccerJuggling/v_SoccerJuggling_g17_c06 83 -CliffDiving/v_CliffDiving_g13_c01 21 -Billiards/v_Billiards_g23_c04 11 -Mixing/v_Mixing_g25_c03 53 -Surfing/v_Surfing_g15_c07 87 -Rowing/v_Rowing_g09_c04 75 -ApplyLipstick/v_ApplyLipstick_g21_c02 1 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c04 17 -Skiing/v_Skiing_g09_c01 80 -WritingOnBoard/v_WritingOnBoard_g13_c01 99 -Hammering/v_Hammering_g12_c05 34 -TennisSwing/v_TennisSwing_g22_c04 91 -HorseRiding/v_HorseRiding_g10_c07 41 -Bowling/v_Bowling_g11_c01 15 -Biking/v_Biking_g23_c01 10 -PlayingDhol/v_PlayingDhol_g12_c03 60 -Diving/v_Diving_g20_c02 25 -HulaHoop/v_HulaHoop_g10_c01 42 -CuttingInKitchen/v_CuttingInKitchen_g10_c04 24 -HandstandWalking/v_HandstandWalking_g23_c04 37 -BrushingTeeth/v_BrushingTeeth_g15_c04 19 -TaiChi/v_TaiChi_g24_c03 90 -Swing/v_Swing_g21_c03 88 -HandstandWalking/v_HandstandWalking_g25_c02 37 -Punch/v_Punch_g19_c03 70 -BlowDryHair/v_BlowDryHair_g25_c04 12 -Skiing/v_Skiing_g22_c05 80 -PommelHorse/v_PommelHorse_g13_c03 68 -TennisSwing/v_TennisSwing_g14_c03 91 -Hammering/v_Hammering_g10_c01 34 -SoccerJuggling/v_SoccerJuggling_g15_c03 83 -Rowing/v_Rowing_g09_c03 75 -SkateBoarding/v_SkateBoarding_g11_c05 79 -HandstandWalking/v_HandstandWalking_g08_c02 37 -PullUps/v_PullUps_g22_c03 69 -Archery/v_Archery_g11_c05 2 -BabyCrawling/v_BabyCrawling_g13_c01 3 -PlayingCello/v_PlayingCello_g09_c04 58 -VolleyballSpiking/v_VolleyballSpiking_g15_c03 96 -SkyDiving/v_SkyDiving_g11_c04 82 -Mixing/v_Mixing_g19_c03 53 -HighJump/v_HighJump_g09_c03 39 -Punch/v_Punch_g18_c02 70 -HammerThrow/v_HammerThrow_g12_c07 35 -BalanceBeam/v_BalanceBeam_g25_c03 4 -JugglingBalls/v_JugglingBalls_g22_c04 45 -PlayingGuitar/v_PlayingGuitar_g09_c01 62 -Surfing/v_Surfing_g13_c05 87 -Diving/v_Diving_g10_c02 25 -Basketball/v_Basketball_g19_c07 7 -HulaHoop/v_HulaHoop_g16_c04 42 -HighJump/v_HighJump_g25_c01 39 -TableTennisShot/v_TableTennisShot_g13_c02 89 -BrushingTeeth/v_BrushingTeeth_g20_c02 19 -BandMarching/v_BandMarching_g08_c01 5 -JumpingJack/v_JumpingJack_g22_c01 46 -Hammering/v_Hammering_g17_c07 34 -HorseRiding/v_HorseRiding_g15_c01 41 -CricketBowling/v_CricketBowling_g19_c07 22 -ApplyLipstick/v_ApplyLipstick_g17_c03 1 -GolfSwing/v_GolfSwing_g21_c01 32 -TrampolineJumping/v_TrampolineJumping_g11_c04 93 -ApplyEyeMakeup/v_ApplyEyeMakeup_g15_c06 0 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c03 73 -GolfSwing/v_GolfSwing_g12_c03 32 -BasketballDunk/v_BasketballDunk_g11_c05 8 -StillRings/v_StillRings_g15_c03 85 -Hammering/v_Hammering_g23_c04 34 -Kayaking/v_Kayaking_g24_c01 48 -TaiChi/v_TaiChi_g15_c04 90 -IceDancing/v_IceDancing_g09_c06 43 -BasketballDunk/v_BasketballDunk_g18_c01 8 -CuttingInKitchen/v_CuttingInKitchen_g14_c01 24 -BaseballPitch/v_BaseballPitch_g18_c07 6 -PlayingDhol/v_PlayingDhol_g18_c03 60 -CliffDiving/v_CliffDiving_g18_c06 21 -HeadMassage/v_HeadMassage_g09_c01 38 -BalanceBeam/v_BalanceBeam_g20_c04 4 -JumpRope/v_JumpRope_g10_c01 47 -ShavingBeard/v_ShavingBeard_g15_c07 77 -FrisbeeCatch/v_FrisbeeCatch_g19_c01 30 -Drumming/v_Drumming_g18_c02 26 -MilitaryParade/v_MilitaryParade_g12_c05 52 -Rafting/v_Rafting_g08_c01 72 -TrampolineJumping/v_TrampolineJumping_g10_c06 93 -JugglingBalls/v_JugglingBalls_g09_c02 45 -Drumming/v_Drumming_g11_c04 26 -Hammering/v_Hammering_g18_c06 34 -VolleyballSpiking/v_VolleyballSpiking_g20_c03 96 -PoleVault/v_PoleVault_g11_c02 67 -GolfSwing/v_GolfSwing_g11_c05 32 -IceDancing/v_IceDancing_g13_c05 43 -Biking/v_Biking_g14_c03 10 -Drumming/v_Drumming_g18_c05 26 -WritingOnBoard/v_WritingOnBoard_g14_c03 99 -PullUps/v_PullUps_g13_c01 69 -BaseballPitch/v_BaseballPitch_g17_c06 6 -SumoWrestling/v_SumoWrestling_g25_c01 86 -Swing/v_Swing_g20_c01 88 -JavelinThrow/v_JavelinThrow_g23_c02 44 -PlayingGuitar/v_PlayingGuitar_g10_c05 62 -Hammering/v_Hammering_g08_c03 34 -MoppingFloor/v_MoppingFloor_g18_c01 54 -Biking/v_Biking_g16_c02 10 -WritingOnBoard/v_WritingOnBoard_g12_c04 99 -Typing/v_Typing_g09_c04 94 -WallPushups/v_WallPushups_g15_c01 98 -Basketball/v_Basketball_g18_c03 7 -PoleVault/v_PoleVault_g21_c03 67 -PlayingFlute/v_PlayingFlute_g25_c01 61 -HorseRiding/v_HorseRiding_g19_c05 41 -Hammering/v_Hammering_g09_c03 34 -BreastStroke/v_BreastStroke_g18_c01 18 -BandMarching/v_BandMarching_g24_c04 5 -BenchPress/v_BenchPress_g12_c05 9 -BenchPress/v_BenchPress_g13_c01 9 -TableTennisShot/v_TableTennisShot_g09_c04 89 -PizzaTossing/v_PizzaTossing_g19_c02 57 -Swing/v_Swing_g13_c02 88 -SoccerPenalty/v_SoccerPenalty_g24_c06 84 -PlayingSitar/v_PlayingSitar_g22_c04 64 -RockClimbingIndoor/v_RockClimbingIndoor_g22_c01 73 -Rowing/v_Rowing_g08_c01 75 -PoleVault/v_PoleVault_g14_c01 67 -PullUps/v_PullUps_g14_c04 69 -BenchPress/v_BenchPress_g15_c02 9 -ParallelBars/v_ParallelBars_g18_c02 56 -BlowingCandles/v_BlowingCandles_g19_c02 13 -BasketballDunk/v_BasketballDunk_g14_c06 8 -BodyWeightSquats/v_BodyWeightSquats_g10_c02 14 -BoxingSpeedBag/v_BoxingSpeedBag_g13_c02 17 -BenchPress/v_BenchPress_g09_c04 9 -IceDancing/v_IceDancing_g13_c04 43 -ShavingBeard/v_ShavingBeard_g13_c01 77 -PlayingPiano/v_PlayingPiano_g16_c05 63 -CleanAndJerk/v_CleanAndJerk_g25_c01 20 -StillRings/v_StillRings_g16_c01 85 -PlayingDaf/v_PlayingDaf_g14_c01 59 -Shotput/v_Shotput_g08_c03 78 -FloorGymnastics/v_FloorGymnastics_g08_c01 29 -Swing/v_Swing_g18_c01 88 -SalsaSpin/v_SalsaSpin_g22_c03 76 -IceDancing/v_IceDancing_g25_c05 43 -BandMarching/v_BandMarching_g20_c02 5 -PlayingViolin/v_PlayingViolin_g21_c04 66 -PlayingGuitar/v_PlayingGuitar_g23_c05 62 -PlayingDaf/v_PlayingDaf_g16_c04 59 -MoppingFloor/v_MoppingFloor_g18_c05 54 -BoxingSpeedBag/v_BoxingSpeedBag_g08_c04 17 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c02 16 -Nunchucks/v_Nunchucks_g17_c01 55 -Lunges/v_Lunges_g15_c03 51 -Biking/v_Biking_g13_c05 10 -Archery/v_Archery_g23_c01 2 -BoxingPunchingBag/v_BoxingPunchingBag_g22_c06 16 -TableTennisShot/v_TableTennisShot_g19_c04 89 -Nunchucks/v_Nunchucks_g21_c01 55 -Diving/v_Diving_g17_c04 25 -Fencing/v_Fencing_g13_c04 27 -SoccerJuggling/v_SoccerJuggling_g19_c03 83 -Kayaking/v_Kayaking_g14_c04 48 -HeadMassage/v_HeadMassage_g22_c04 38 -HeadMassage/v_HeadMassage_g09_c03 38 -WallPushups/v_WallPushups_g25_c03 98 -Skiing/v_Skiing_g24_c03 80 -SalsaSpin/v_SalsaSpin_g18_c03 76 -Lunges/v_Lunges_g23_c03 51 -Typing/v_Typing_g21_c01 94 -CleanAndJerk/v_CleanAndJerk_g17_c04 20 -Punch/v_Punch_g17_c03 70 -PlayingCello/v_PlayingCello_g18_c02 58 -Bowling/v_Bowling_g13_c01 15 -SoccerJuggling/v_SoccerJuggling_g10_c02 83 -YoYo/v_YoYo_g13_c01 100 -CuttingInKitchen/v_CuttingInKitchen_g13_c03 24 -Fencing/v_Fencing_g22_c01 27 -BrushingTeeth/v_BrushingTeeth_g15_c02 19 -SkyDiving/v_SkyDiving_g08_c04 82 -Hammering/v_Hammering_g13_c01 34 -PlayingTabla/v_PlayingTabla_g16_c05 65 -LongJump/v_LongJump_g20_c01 50 -PlayingGuitar/v_PlayingGuitar_g25_c06 62 -BenchPress/v_BenchPress_g22_c02 9 -HammerThrow/v_HammerThrow_g13_c02 35 -ParallelBars/v_ParallelBars_g22_c03 56 -SoccerPenalty/v_SoccerPenalty_g13_c02 84 -SoccerJuggling/v_SoccerJuggling_g16_c02 83 -WallPushups/v_WallPushups_g12_c02 98 -BoxingPunchingBag/v_BoxingPunchingBag_g10_c04 16 -HammerThrow/v_HammerThrow_g19_c03 35 -ApplyEyeMakeup/v_ApplyEyeMakeup_g12_c05 0 -HammerThrow/v_HammerThrow_g24_c01 35 -Knitting/v_Knitting_g24_c03 49 -TaiChi/v_TaiChi_g24_c02 90 -CliffDiving/v_CliffDiving_g25_c04 21 -SoccerJuggling/v_SoccerJuggling_g12_c02 83 -YoYo/v_YoYo_g15_c02 100 -BrushingTeeth/v_BrushingTeeth_g08_c06 19 -ParallelBars/v_ParallelBars_g19_c01 56 -PommelHorse/v_PommelHorse_g08_c01 68 -ShavingBeard/v_ShavingBeard_g18_c04 77 -PlayingPiano/v_PlayingPiano_g08_c03 63 -SoccerJuggling/v_SoccerJuggling_g14_c07 83 -TableTennisShot/v_TableTennisShot_g11_c05 89 -PlayingFlute/v_PlayingFlute_g19_c05 61 -PullUps/v_PullUps_g19_c04 69 -BaseballPitch/v_BaseballPitch_g18_c05 6 -PlayingTabla/v_PlayingTabla_g23_c01 65 -Diving/v_Diving_g10_c07 25 -SumoWrestling/v_SumoWrestling_g17_c03 86 -FieldHockeyPenalty/v_FieldHockeyPenalty_g09_c03 28 -PlayingTabla/v_PlayingTabla_g20_c02 65 -Punch/v_Punch_g13_c02 70 -Mixing/v_Mixing_g16_c01 53 -GolfSwing/v_GolfSwing_g22_c05 32 -Basketball/v_Basketball_g25_c01 7 -Basketball/v_Basketball_g09_c05 7 -Drumming/v_Drumming_g08_c02 26 -Kayaking/v_Kayaking_g09_c02 48 -PlayingGuitar/v_PlayingGuitar_g16_c07 62 -Nunchucks/v_Nunchucks_g08_c06 55 -YoYo/v_YoYo_g08_c04 100 -YoYo/v_YoYo_g25_c04 100 -Knitting/v_Knitting_g14_c03 49 -PlayingFlute/v_PlayingFlute_g22_c04 61 -PlayingPiano/v_PlayingPiano_g22_c04 63 -SumoWrestling/v_SumoWrestling_g10_c02 86 -Rowing/v_Rowing_g21_c03 75 -TennisSwing/v_TennisSwing_g22_c03 91 -HandstandPushups/v_HandStandPushups_g18_c03 36 -WritingOnBoard/v_WritingOnBoard_g17_c02 99 -IceDancing/v_IceDancing_g20_c07 43 -HammerThrow/v_HammerThrow_g10_c07 35 -Typing/v_Typing_g25_c02 94 -Archery/v_Archery_g17_c04 2 -FloorGymnastics/v_FloorGymnastics_g12_c01 29 -HammerThrow/v_HammerThrow_g20_c05 35 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c06 16 -MoppingFloor/v_MoppingFloor_g15_c03 54 -JumpRope/v_JumpRope_g13_c02 47 -ApplyEyeMakeup/v_ApplyEyeMakeup_g24_c03 0 -Hammering/v_Hammering_g20_c01 34 -RopeClimbing/v_RopeClimbing_g16_c04 74 -PlayingCello/v_PlayingCello_g12_c01 58 -Skiing/v_Skiing_g11_c02 80 -PlayingGuitar/v_PlayingGuitar_g24_c02 62 -FloorGymnastics/v_FloorGymnastics_g25_c01 29 -YoYo/v_YoYo_g10_c02 100 -BreastStroke/v_BreastStroke_g09_c02 18 -VolleyballSpiking/v_VolleyballSpiking_g09_c02 96 -PlayingViolin/v_PlayingViolin_g16_c01 66 -BenchPress/v_BenchPress_g08_c05 9 -Bowling/v_Bowling_g18_c04 15 -WritingOnBoard/v_WritingOnBoard_g24_c06 99 -JugglingBalls/v_JugglingBalls_g10_c04 45 -ShavingBeard/v_ShavingBeard_g16_c04 77 -BlowDryHair/v_BlowDryHair_g23_c03 12 -HandstandPushups/v_HandStandPushups_g23_c01 36 -PizzaTossing/v_PizzaTossing_g24_c04 57 -SkateBoarding/v_SkateBoarding_g08_c03 79 -Shotput/v_Shotput_g10_c02 78 -ThrowDiscus/v_ThrowDiscus_g10_c02 92 -CricketBowling/v_CricketBowling_g25_c02 22 -GolfSwing/v_GolfSwing_g19_c05 32 -CricketBowling/v_CricketBowling_g14_c05 22 -PullUps/v_PullUps_g25_c04 69 -VolleyballSpiking/v_VolleyballSpiking_g15_c02 96 -MilitaryParade/v_MilitaryParade_g10_c04 52 -BreastStroke/v_BreastStroke_g14_c02 18 -Diving/v_Diving_g17_c02 25 -BrushingTeeth/v_BrushingTeeth_g24_c01 19 -HandstandPushups/v_HandStandPushups_g11_c05 36 -WalkingWithDog/v_WalkingWithDog_g20_c05 97 -JavelinThrow/v_JavelinThrow_g15_c05 44 -Mixing/v_Mixing_g17_c02 53 -BabyCrawling/v_BabyCrawling_g09_c02 3 -TennisSwing/v_TennisSwing_g23_c06 91 -BandMarching/v_BandMarching_g08_c06 5 -HeadMassage/v_HeadMassage_g22_c01 38 -SalsaSpin/v_SalsaSpin_g09_c04 76 -BenchPress/v_BenchPress_g16_c01 9 -Nunchucks/v_Nunchucks_g19_c01 55 -TennisSwing/v_TennisSwing_g13_c02 91 -Knitting/v_Knitting_g13_c04 49 -Swing/v_Swing_g08_c02 88 -PushUps/v_PushUps_g18_c01 71 -HorseRace/v_HorseRace_g25_c04 40 -HorseRace/v_HorseRace_g13_c01 40 -HulaHoop/v_HulaHoop_g20_c01 42 -StillRings/v_StillRings_g24_c03 85 -FloorGymnastics/v_FloorGymnastics_g15_c02 29 -Biking/v_Biking_g21_c01 10 -RopeClimbing/v_RopeClimbing_g14_c04 74 -Swing/v_Swing_g14_c02 88 -HorseRiding/v_HorseRiding_g15_c02 41 -PlayingTabla/v_PlayingTabla_g24_c01 65 -Bowling/v_Bowling_g22_c01 15 -Knitting/v_Knitting_g11_c01 49 -BasketballDunk/v_BasketballDunk_g21_c01 8 -PoleVault/v_PoleVault_g21_c01 67 -ShavingBeard/v_ShavingBeard_g15_c06 77 -MoppingFloor/v_MoppingFloor_g18_c06 54 -ApplyLipstick/v_ApplyLipstick_g10_c03 1 -VolleyballSpiking/v_VolleyballSpiking_g20_c01 96 -Haircut/v_Haircut_g21_c01 33 -HighJump/v_HighJump_g23_c01 39 -CliffDiving/v_CliffDiving_g18_c01 21 -PizzaTossing/v_PizzaTossing_g19_c03 57 -YoYo/v_YoYo_g18_c01 100 -Skiing/v_Skiing_g16_c05 80 -Haircut/v_Haircut_g11_c04 33 -Billiards/v_Billiards_g21_c02 11 -BalanceBeam/v_BalanceBeam_g23_c05 4 -Archery/v_Archery_g18_c06 2 -Lunges/v_Lunges_g24_c04 51 -PushUps/v_PushUps_g15_c03 71 -BandMarching/v_BandMarching_g25_c03 5 -Drumming/v_Drumming_g14_c05 26 -PlayingGuitar/v_PlayingGuitar_g22_c01 62 -WritingOnBoard/v_WritingOnBoard_g14_c04 99 -Bowling/v_Bowling_g20_c02 15 -BaseballPitch/v_BaseballPitch_g10_c04 6 -Typing/v_Typing_g22_c04 94 -HammerThrow/v_HammerThrow_g15_c05 35 -SalsaSpin/v_SalsaSpin_g12_c03 76 -CuttingInKitchen/v_CuttingInKitchen_g23_c04 24 -PlayingTabla/v_PlayingTabla_g12_c02 65 -PoleVault/v_PoleVault_g25_c07 67 -TaiChi/v_TaiChi_g12_c03 90 -PlayingFlute/v_PlayingFlute_g11_c06 61 -SalsaSpin/v_SalsaSpin_g22_c01 76 -HorseRiding/v_HorseRiding_g12_c01 41 -Mixing/v_Mixing_g20_c04 53 -PushUps/v_PushUps_g09_c04 71 -PlayingFlute/v_PlayingFlute_g10_c03 61 -SoccerPenalty/v_SoccerPenalty_g15_c01 84 -Lunges/v_Lunges_g25_c02 51 -Punch/v_Punch_g17_c05 70 -FloorGymnastics/v_FloorGymnastics_g12_c04 29 -HighJump/v_HighJump_g10_c01 39 -BenchPress/v_BenchPress_g09_c05 9 -Hammering/v_Hammering_g22_c04 34 -Drumming/v_Drumming_g16_c04 26 -BreastStroke/v_BreastStroke_g15_c02 18 -BalanceBeam/v_BalanceBeam_g19_c01 4 -PlayingTabla/v_PlayingTabla_g13_c05 65 -BandMarching/v_BandMarching_g22_c03 5 -CricketBowling/v_CricketBowling_g24_c01 22 -MoppingFloor/v_MoppingFloor_g10_c01 54 -HorseRace/v_HorseRace_g08_c02 40 -Basketball/v_Basketball_g22_c03 7 -CricketBowling/v_CricketBowling_g23_c01 22 -Basketball/v_Basketball_g19_c02 7 -Billiards/v_Billiards_g21_c05 11 -FloorGymnastics/v_FloorGymnastics_g11_c04 29 -ShavingBeard/v_ShavingBeard_g12_c02 77 -Rafting/v_Rafting_g21_c04 72 -BasketballDunk/v_BasketballDunk_g09_c04 8 -FloorGymnastics/v_FloorGymnastics_g09_c06 29 -Biking/v_Biking_g18_c04 10 -WalkingWithDog/v_WalkingWithDog_g14_c01 97 -ShavingBeard/v_ShavingBeard_g22_c04 77 -HorseRiding/v_HorseRiding_g24_c01 41 -FieldHockeyPenalty/v_FieldHockeyPenalty_g20_c02 28 -SumoWrestling/v_SumoWrestling_g17_c02 86 -PommelHorse/v_PommelHorse_g09_c03 68 -PlayingDaf/v_PlayingDaf_g08_c02 59 -HammerThrow/v_HammerThrow_g10_c03 35 -Mixing/v_Mixing_g18_c02 53 -JugglingBalls/v_JugglingBalls_g16_c01 45 -LongJump/v_LongJump_g16_c03 50 -ApplyLipstick/v_ApplyLipstick_g20_c04 1 -BrushingTeeth/v_BrushingTeeth_g25_c05 19 -Skiing/v_Skiing_g21_c06 80 -ParallelBars/v_ParallelBars_g17_c02 56 -Surfing/v_Surfing_g16_c01 87 -LongJump/v_LongJump_g21_c02 50 -BenchPress/v_BenchPress_g24_c03 9 -FloorGymnastics/v_FloorGymnastics_g15_c01 29 -Basketball/v_Basketball_g22_c06 7 -Knitting/v_Knitting_g21_c04 49 -HandstandWalking/v_HandstandWalking_g19_c01 37 -JumpRope/v_JumpRope_g21_c02 47 -BoxingPunchingBag/v_BoxingPunchingBag_g18_c05 16 -ThrowDiscus/v_ThrowDiscus_g14_c03 92 -BabyCrawling/v_BabyCrawling_g18_c01 3 -BandMarching/v_BandMarching_g08_c03 5 -FieldHockeyPenalty/v_FieldHockeyPenalty_g18_c02 28 -HeadMassage/v_HeadMassage_g11_c05 38 -CricketShot/v_CricketShot_g21_c05 23 -BandMarching/v_BandMarching_g20_c06 5 -HandstandWalking/v_HandstandWalking_g09_c02 37 -BalanceBeam/v_BalanceBeam_g24_c03 4 -CricketBowling/v_CricketBowling_g22_c06 22 -BandMarching/v_BandMarching_g11_c04 5 -TableTennisShot/v_TableTennisShot_g10_c01 89 -JumpingJack/v_JumpingJack_g10_c02 46 -StillRings/v_StillRings_g13_c02 85 -BaseballPitch/v_BaseballPitch_g19_c05 6 -BasketballDunk/v_BasketballDunk_g20_c03 8 -GolfSwing/v_GolfSwing_g24_c06 32 -Kayaking/v_Kayaking_g20_c06 48 -Typing/v_Typing_g13_c02 94 -Lunges/v_Lunges_g18_c05 51 -BalanceBeam/v_BalanceBeam_g13_c03 4 -HeadMassage/v_HeadMassage_g16_c04 38 -RockClimbingIndoor/v_RockClimbingIndoor_g23_c02 73 -BandMarching/v_BandMarching_g22_c02 5 -ApplyEyeMakeup/v_ApplyEyeMakeup_g18_c01 0 -TrampolineJumping/v_TrampolineJumping_g08_c02 93 -HorseRace/v_HorseRace_g17_c04 40 -PlayingDhol/v_PlayingDhol_g24_c05 60 -TableTennisShot/v_TableTennisShot_g21_c02 89 -PlayingPiano/v_PlayingPiano_g10_c01 63 -CricketBowling/v_CricketBowling_g19_c03 22 -Bowling/v_Bowling_g13_c05 15 -PoleVault/v_PoleVault_g21_c06 67 -PullUps/v_PullUps_g12_c01 69 -Drumming/v_Drumming_g15_c07 26 -IceDancing/v_IceDancing_g23_c03 43 -FloorGymnastics/v_FloorGymnastics_g14_c01 29 -Hammering/v_Hammering_g13_c04 34 -ThrowDiscus/v_ThrowDiscus_g25_c03 92 -HandstandWalking/v_HandstandWalking_g20_c02 37 -Basketball/v_Basketball_g14_c01 7 -CliffDiving/v_CliffDiving_g21_c01 21 -Archery/v_Archery_g15_c02 2 -BreastStroke/v_BreastStroke_g21_c04 18 -WalkingWithDog/v_WalkingWithDog_g12_c01 97 -PommelHorse/v_PommelHorse_g25_c02 68 -PlayingPiano/v_PlayingPiano_g17_c02 63 -Fencing/v_Fencing_g09_c05 27 -PlayingGuitar/v_PlayingGuitar_g23_c07 62 -Biking/v_Biking_g23_c04 10 -TaiChi/v_TaiChi_g16_c03 90 -JavelinThrow/v_JavelinThrow_g12_c04 44 -PlayingPiano/v_PlayingPiano_g16_c07 63 -PlayingSitar/v_PlayingSitar_g21_c07 64 -TableTennisShot/v_TableTennisShot_g21_c04 89 -Hammering/v_Hammering_g21_c04 34 -Swing/v_Swing_g16_c01 88 -BabyCrawling/v_BabyCrawling_g09_c01 3 -JugglingBalls/v_JugglingBalls_g14_c04 45 -CricketBowling/v_CricketBowling_g12_c01 22 -Drumming/v_Drumming_g22_c01 26 -Bowling/v_Bowling_g11_c04 15 -Drumming/v_Drumming_g09_c01 26 -CricketShot/v_CricketShot_g22_c02 23 -BodyWeightSquats/v_BodyWeightSquats_g12_c02 14 -SoccerJuggling/v_SoccerJuggling_g25_c06 83 -HandstandPushups/v_HandStandPushups_g12_c05 36 -HammerThrow/v_HammerThrow_g12_c03 35 -Bowling/v_Bowling_g08_c04 15 -WritingOnBoard/v_WritingOnBoard_g21_c07 99 -BenchPress/v_BenchPress_g13_c04 9 -IceDancing/v_IceDancing_g22_c04 43 -HorseRace/v_HorseRace_g18_c01 40 -PlayingDaf/v_PlayingDaf_g09_c01 59 -VolleyballSpiking/v_VolleyballSpiking_g11_c06 96 -JavelinThrow/v_JavelinThrow_g12_c01 44 -ApplyEyeMakeup/v_ApplyEyeMakeup_g08_c04 0 -Rafting/v_Rafting_g16_c02 72 -JugglingBalls/v_JugglingBalls_g14_c05 45 -SoccerPenalty/v_SoccerPenalty_g25_c01 84 -BabyCrawling/v_BabyCrawling_g21_c02 3 -BrushingTeeth/v_BrushingTeeth_g08_c04 19 -BabyCrawling/v_BabyCrawling_g10_c05 3 -WallPushups/v_WallPushups_g20_c02 98 -HandstandWalking/v_HandstandWalking_g12_c04 37 -VolleyballSpiking/v_VolleyballSpiking_g23_c01 96 -MoppingFloor/v_MoppingFloor_g18_c03 54 -ParallelBars/v_ParallelBars_g18_c04 56 -Kayaking/v_Kayaking_g24_c03 48 -Skijet/v_Skijet_g12_c02 81 -HorseRiding/v_HorseRiding_g09_c04 41 -SalsaSpin/v_SalsaSpin_g23_c03 76 -PlayingFlute/v_PlayingFlute_g16_c05 61 -SkateBoarding/v_SkateBoarding_g11_c02 79 -BlowDryHair/v_BlowDryHair_g17_c04 12 -HandstandPushups/v_HandStandPushups_g14_c03 36 -Haircut/v_Haircut_g09_c01 33 -PlayingCello/v_PlayingCello_g21_c04 58 -FrontCrawl/v_FrontCrawl_g20_c04 31 -CricketBowling/v_CricketBowling_g13_c03 22 -Haircut/v_Haircut_g19_c05 33 -PlayingDaf/v_PlayingDaf_g20_c02 59 -BlowDryHair/v_BlowDryHair_g23_c06 12 -Shotput/v_Shotput_g12_c01 78 -PlayingGuitar/v_PlayingGuitar_g25_c01 62 -TrampolineJumping/v_TrampolineJumping_g19_c01 93 -Biking/v_Biking_g21_c06 10 -CliffDiving/v_CliffDiving_g12_c01 21 -PlayingSitar/v_PlayingSitar_g18_c05 64 -TennisSwing/v_TennisSwing_g19_c05 91 -BodyWeightSquats/v_BodyWeightSquats_g11_c01 14 -BandMarching/v_BandMarching_g12_c01 5 -PullUps/v_PullUps_g09_c04 69 -Archery/v_Archery_g23_c03 2 -SalsaSpin/v_SalsaSpin_g12_c02 76 -FrisbeeCatch/v_FrisbeeCatch_g21_c05 30 -JugglingBalls/v_JugglingBalls_g18_c01 45 -SoccerPenalty/v_SoccerPenalty_g10_c03 84 -CricketBowling/v_CricketBowling_g19_c06 22 -PizzaTossing/v_PizzaTossing_g08_c04 57 -Billiards/v_Billiards_g17_c02 11 -BasketballDunk/v_BasketballDunk_g17_c06 8 -PlayingPiano/v_PlayingPiano_g16_c01 63 -BasketballDunk/v_BasketballDunk_g08_c01 8 -PlayingGuitar/v_PlayingGuitar_g13_c01 62 -PoleVault/v_PoleVault_g25_c05 67 -BoxingPunchingBag/v_BoxingPunchingBag_g21_c07 16 -Punch/v_Punch_g15_c06 70 -HammerThrow/v_HammerThrow_g11_c01 35 -CricketBowling/v_CricketBowling_g13_c05 22 -BlowDryHair/v_BlowDryHair_g13_c02 12 -Knitting/v_Knitting_g10_c01 49 -PushUps/v_PushUps_g23_c03 71 -CricketShot/v_CricketShot_g25_c02 23 -MilitaryParade/v_MilitaryParade_g18_c06 52 -Diving/v_Diving_g08_c01 25 -PlayingDaf/v_PlayingDaf_g18_c02 59 -MilitaryParade/v_MilitaryParade_g25_c05 52 -Surfing/v_Surfing_g22_c04 87 -Kayaking/v_Kayaking_g11_c01 48 -PlayingDhol/v_PlayingDhol_g14_c07 60 -BodyWeightSquats/v_BodyWeightSquats_g13_c01 14 -PlayingViolin/v_PlayingViolin_g19_c01 66 -BandMarching/v_BandMarching_g15_c05 5 -HammerThrow/v_HammerThrow_g16_c03 35 -TaiChi/v_TaiChi_g23_c02 90 -JumpingJack/v_JumpingJack_g21_c01 46 -PizzaTossing/v_PizzaTossing_g25_c02 57 -FrisbeeCatch/v_FrisbeeCatch_g08_c02 30 -HorseRiding/v_HorseRiding_g11_c01 41 -BlowDryHair/v_BlowDryHair_g15_c01 12 -SoccerPenalty/v_SoccerPenalty_g18_c02 84 -PushUps/v_PushUps_g08_c03 71 -Nunchucks/v_Nunchucks_g12_c02 55 -BandMarching/v_BandMarching_g18_c04 5 -BaseballPitch/v_BaseballPitch_g23_c02 6 -HammerThrow/v_HammerThrow_g25_c04 35 -Biking/v_Biking_g09_c02 10 -BalanceBeam/v_BalanceBeam_g11_c04 4 -PlayingDaf/v_PlayingDaf_g22_c02 59 -Bowling/v_Bowling_g13_c06 15 -HighJump/v_HighJump_g15_c03 39 -PlayingCello/v_PlayingCello_g23_c03 58 -BodyWeightSquats/v_BodyWeightSquats_g10_c04 14 -Swing/v_Swing_g24_c02 88 -Fencing/v_Fencing_g20_c03 27 -BlowDryHair/v_BlowDryHair_g16_c01 12 -PommelHorse/v_PommelHorse_g12_c04 68 -ThrowDiscus/v_ThrowDiscus_g11_c06 92 -PlayingFlute/v_PlayingFlute_g21_c06 61 -CliffDiving/v_CliffDiving_g08_c03 21 -Skiing/v_Skiing_g25_c05 80 -BalanceBeam/v_BalanceBeam_g23_c02 4 -PoleVault/v_PoleVault_g13_c04 67 -WalkingWithDog/v_WalkingWithDog_g11_c05 97 -Typing/v_Typing_g25_c03 94 -PullUps/v_PullUps_g15_c04 69 -Archery/v_Archery_g16_c04 2 -PlayingPiano/v_PlayingPiano_g15_c02 63 -SalsaSpin/v_SalsaSpin_g13_c04 76 -Shotput/v_Shotput_g22_c05 78 -CricketBowling/v_CricketBowling_g08_c05 22 -BaseballPitch/v_BaseballPitch_g17_c05 6 -Shotput/v_Shotput_g09_c06 78 -ParallelBars/v_ParallelBars_g17_c04 56 -BodyWeightSquats/v_BodyWeightSquats_g20_c01 14 -FrontCrawl/v_FrontCrawl_g21_c03 31 -JumpRope/v_JumpRope_g20_c05 47 -MilitaryParade/v_MilitaryParade_g19_c06 52 -JugglingBalls/v_JugglingBalls_g22_c01 45 -BlowingCandles/v_BlowingCandles_g14_c04 13 -Swing/v_Swing_g15_c05 88 -Rowing/v_Rowing_g14_c06 75 -Fencing/v_Fencing_g09_c04 27 -HorseRiding/v_HorseRiding_g15_c06 41 -PlayingViolin/v_PlayingViolin_g22_c01 66 -Skiing/v_Skiing_g20_c02 80 -BaseballPitch/v_BaseballPitch_g14_c01 6 -Skiing/v_Skiing_g08_c07 80 -FieldHockeyPenalty/v_FieldHockeyPenalty_g12_c06 28 -BreastStroke/v_BreastStroke_g19_c02 18 -SkyDiving/v_SkyDiving_g18_c01 82 -HandstandWalking/v_HandstandWalking_g16_c02 37 -HandstandPushups/v_HandStandPushups_g21_c02 36 -Swing/v_Swing_g20_c02 88 -JumpingJack/v_JumpingJack_g12_c01 46 -PlayingDhol/v_PlayingDhol_g23_c02 60 -PommelHorse/v_PommelHorse_g10_c01 68 -Nunchucks/v_Nunchucks_g18_c04 55 -HorseRiding/v_HorseRiding_g09_c03 41 -Rowing/v_Rowing_g13_c05 75 -ApplyLipstick/v_ApplyLipstick_g15_c05 1 -MilitaryParade/v_MilitaryParade_g16_c02 52 -SumoWrestling/v_SumoWrestling_g12_c05 86 -TableTennisShot/v_TableTennisShot_g13_c01 89 -IceDancing/v_IceDancing_g18_c06 43 -CricketShot/v_CricketShot_g25_c06 23 -BabyCrawling/v_BabyCrawling_g17_c03 3 -PizzaTossing/v_PizzaTossing_g15_c04 57 -Rafting/v_Rafting_g08_c05 72 -Hammering/v_Hammering_g19_c02 34 -JavelinThrow/v_JavelinThrow_g15_c02 44 -LongJump/v_LongJump_g24_c03 50 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c06 28 -GolfSwing/v_GolfSwing_g15_c03 32 -WallPushups/v_WallPushups_g11_c02 98 -FieldHockeyPenalty/v_FieldHockeyPenalty_g23_c02 28 -RockClimbingIndoor/v_RockClimbingIndoor_g21_c01 73 -Billiards/v_Billiards_g09_c06 11 -PushUps/v_PushUps_g25_c02 71 -PlayingCello/v_PlayingCello_g20_c01 58 -PlayingGuitar/v_PlayingGuitar_g09_c02 62 -JugglingBalls/v_JugglingBalls_g18_c03 45 -PlayingDaf/v_PlayingDaf_g08_c01 59 -FieldHockeyPenalty/v_FieldHockeyPenalty_g09_c02 28 -VolleyballSpiking/v_VolleyballSpiking_g24_c02 96 -BodyWeightSquats/v_BodyWeightSquats_g24_c03 14 -Diving/v_Diving_g20_c01 25 -CricketShot/v_CricketShot_g16_c04 23 -WritingOnBoard/v_WritingOnBoard_g09_c02 99 -TennisSwing/v_TennisSwing_g15_c01 91 -Drumming/v_Drumming_g11_c05 26 -Lunges/v_Lunges_g13_c05 51 -ApplyLipstick/v_ApplyLipstick_g13_c01 1 -Skiing/v_Skiing_g10_c02 80 -Rowing/v_Rowing_g24_c03 75 -FieldHockeyPenalty/v_FieldHockeyPenalty_g09_c05 28 -HulaHoop/v_HulaHoop_g18_c04 42 -PlayingDhol/v_PlayingDhol_g11_c06 60 -Billiards/v_Billiards_g15_c03 11 -JugglingBalls/v_JugglingBalls_g25_c03 45 -Fencing/v_Fencing_g12_c05 27 -JumpRope/v_JumpRope_g16_c05 47 -VolleyballSpiking/v_VolleyballSpiking_g18_c02 96 -FrisbeeCatch/v_FrisbeeCatch_g23_c01 30 -HorseRace/v_HorseRace_g08_c04 40 -JumpRope/v_JumpRope_g24_c01 47 -VolleyballSpiking/v_VolleyballSpiking_g12_c02 96 -Diving/v_Diving_g08_c02 25 -PlayingCello/v_PlayingCello_g11_c04 58 -TableTennisShot/v_TableTennisShot_g16_c01 89 -Typing/v_Typing_g09_c06 94 -HandstandPushups/v_HandStandPushups_g16_c02 36 -UnevenBars/v_UnevenBars_g14_c03 95 -Fencing/v_Fencing_g25_c03 27 -CliffDiving/v_CliffDiving_g23_c05 21 -HorseRiding/v_HorseRiding_g19_c02 41 -HandstandPushups/v_HandStandPushups_g10_c01 36 -Surfing/v_Surfing_g11_c04 87 -PlayingDhol/v_PlayingDhol_g25_c04 60 -BlowingCandles/v_BlowingCandles_g13_c01 13 -PlayingDaf/v_PlayingDaf_g22_c05 59 -Nunchucks/v_Nunchucks_g08_c07 55 -Biking/v_Biking_g11_c02 10 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c04 0 -Surfing/v_Surfing_g16_c03 87 -Haircut/v_Haircut_g24_c07 33 -PlayingDaf/v_PlayingDaf_g13_c04 59 -Typing/v_Typing_g25_c04 94 -TrampolineJumping/v_TrampolineJumping_g24_c02 93 -MoppingFloor/v_MoppingFloor_g24_c01 54 -PlayingCello/v_PlayingCello_g13_c04 58 -BlowingCandles/v_BlowingCandles_g16_c04 13 -HammerThrow/v_HammerThrow_g18_c02 35 -PlayingGuitar/v_PlayingGuitar_g11_c01 62 -SkateBoarding/v_SkateBoarding_g09_c04 79 -HorseRace/v_HorseRace_g18_c04 40 -SkateBoarding/v_SkateBoarding_g20_c02 79 -Typing/v_Typing_g09_c05 94 -ParallelBars/v_ParallelBars_g21_c03 56 -GolfSwing/v_GolfSwing_g24_c02 32 -MilitaryParade/v_MilitaryParade_g24_c04 52 -BenchPress/v_BenchPress_g09_c03 9 -PlayingDaf/v_PlayingDaf_g22_c03 59 -BabyCrawling/v_BabyCrawling_g17_c02 3 -HandstandPushups/v_HandStandPushups_g08_c02 36 -Skijet/v_Skijet_g09_c02 81 -Biking/v_Biking_g24_c02 10 -HighJump/v_HighJump_g20_c01 39 -Drumming/v_Drumming_g20_c05 26 -HighJump/v_HighJump_g11_c01 39 -ApplyEyeMakeup/v_ApplyEyeMakeup_g09_c02 0 -Swing/v_Swing_g21_c06 88 -CricketShot/v_CricketShot_g08_c03 23 -PizzaTossing/v_PizzaTossing_g25_c03 57 -PlayingDaf/v_PlayingDaf_g21_c01 59 -HandstandPushups/v_HandStandPushups_g19_c04 36 -WritingOnBoard/v_WritingOnBoard_g14_c02 99 -BabyCrawling/v_BabyCrawling_g16_c05 3 -BreastStroke/v_BreastStroke_g17_c03 18 -BoxingSpeedBag/v_BoxingSpeedBag_g12_c04 17 -FrisbeeCatch/v_FrisbeeCatch_g23_c02 30 -BlowDryHair/v_BlowDryHair_g18_c01 12 -BandMarching/v_BandMarching_g14_c06 5 -CricketBowling/v_CricketBowling_g08_c01 22 -JugglingBalls/v_JugglingBalls_g21_c02 45 -BalanceBeam/v_BalanceBeam_g09_c03 4 -PlayingFlute/v_PlayingFlute_g14_c05 61 -PlayingViolin/v_PlayingViolin_g23_c02 66 -CliffDiving/v_CliffDiving_g13_c04 21 -PlayingGuitar/v_PlayingGuitar_g25_c05 62 -HulaHoop/v_HulaHoop_g20_c07 42 -Bowling/v_Bowling_g16_c03 15 -Archery/v_Archery_g21_c01 2 -WritingOnBoard/v_WritingOnBoard_g10_c04 99 -PlayingFlute/v_PlayingFlute_g25_c02 61 -Rowing/v_Rowing_g24_c01 75 -PlayingDhol/v_PlayingDhol_g22_c06 60 -HorseRace/v_HorseRace_g24_c06 40 -PlayingSitar/v_PlayingSitar_g19_c03 64 -PizzaTossing/v_PizzaTossing_g09_c02 57 -SalsaSpin/v_SalsaSpin_g16_c02 76 -BoxingPunchingBag/v_BoxingPunchingBag_g16_c05 16 -PushUps/v_PushUps_g14_c01 71 -Punch/v_Punch_g14_c06 70 -PoleVault/v_PoleVault_g17_c02 67 -JumpingJack/v_JumpingJack_g16_c02 46 -ThrowDiscus/v_ThrowDiscus_g16_c01 92 -SkyDiving/v_SkyDiving_g12_c01 82 -BoxingPunchingBag/v_BoxingPunchingBag_g08_c01 16 -Lunges/v_Lunges_g18_c02 51 -LongJump/v_LongJump_g14_c04 50 -Typing/v_Typing_g15_c01 94 -YoYo/v_YoYo_g19_c04 100 -PoleVault/v_PoleVault_g13_c03 67 -StillRings/v_StillRings_g20_c02 85 -SoccerJuggling/v_SoccerJuggling_g08_c04 83 -Hammering/v_Hammering_g09_c07 34 -Skijet/v_Skijet_g12_c03 81 -Rafting/v_Rafting_g15_c02 72 -PlayingGuitar/v_PlayingGuitar_g19_c04 62 -Haircut/v_Haircut_g24_c03 33 -Shotput/v_Shotput_g10_c03 78 -PlayingGuitar/v_PlayingGuitar_g25_c02 62 -Skiing/v_Skiing_g09_c04 80 -JavelinThrow/v_JavelinThrow_g25_c03 44 -PlayingTabla/v_PlayingTabla_g15_c01 65 -CuttingInKitchen/v_CuttingInKitchen_g11_c04 24 -Mixing/v_Mixing_g15_c02 53 -ApplyLipstick/v_ApplyLipstick_g09_c04 1 -PizzaTossing/v_PizzaTossing_g13_c01 57 -PlayingPiano/v_PlayingPiano_g13_c01 63 -TrampolineJumping/v_TrampolineJumping_g18_c01 93 -FieldHockeyPenalty/v_FieldHockeyPenalty_g17_c03 28 -PoleVault/v_PoleVault_g19_c03 67 -Rowing/v_Rowing_g20_c03 75 -JumpRope/v_JumpRope_g16_c04 47 -Fencing/v_Fencing_g09_c02 27 -PullUps/v_PullUps_g08_c01 69 -HammerThrow/v_HammerThrow_g13_c04 35 -RopeClimbing/v_RopeClimbing_g22_c01 74 -PlayingSitar/v_PlayingSitar_g21_c03 64 -PoleVault/v_PoleVault_g25_c06 67 -SalsaSpin/v_SalsaSpin_g12_c06 76 -ShavingBeard/v_ShavingBeard_g15_c01 77 -HammerThrow/v_HammerThrow_g10_c06 35 -StillRings/v_StillRings_g21_c02 85 -ShavingBeard/v_ShavingBeard_g09_c02 77 -Drumming/v_Drumming_g15_c02 26 -BasketballDunk/v_BasketballDunk_g18_c03 8 -Haircut/v_Haircut_g09_c05 33 -Kayaking/v_Kayaking_g21_c04 48 -PlayingFlute/v_PlayingFlute_g15_c03 61 -UnevenBars/v_UnevenBars_g14_c01 95 -WallPushups/v_WallPushups_g17_c02 98 -HandstandPushups/v_HandStandPushups_g19_c03 36 -BodyWeightSquats/v_BodyWeightSquats_g11_c02 14 -HighJump/v_HighJump_g15_c01 39 -FieldHockeyPenalty/v_FieldHockeyPenalty_g14_c01 28 -JumpingJack/v_JumpingJack_g25_c05 46 -PushUps/v_PushUps_g22_c03 71 -JumpRope/v_JumpRope_g22_c03 47 -JavelinThrow/v_JavelinThrow_g10_c04 44 -WalkingWithDog/v_WalkingWithDog_g13_c04 97 -SoccerPenalty/v_SoccerPenalty_g12_c04 84 -WritingOnBoard/v_WritingOnBoard_g20_c04 99 -JavelinThrow/v_JavelinThrow_g10_c03 44 -FieldHockeyPenalty/v_FieldHockeyPenalty_g22_c02 28 -SoccerJuggling/v_SoccerJuggling_g19_c02 83 -WritingOnBoard/v_WritingOnBoard_g25_c04 99 -HulaHoop/v_HulaHoop_g15_c04 42 -Biking/v_Biking_g11_c04 10 -ShavingBeard/v_ShavingBeard_g21_c01 77 -PlayingFlute/v_PlayingFlute_g23_c01 61 -Typing/v_Typing_g14_c05 94 -Rafting/v_Rafting_g11_c03 72 -BlowDryHair/v_BlowDryHair_g14_c05 12 -SoccerJuggling/v_SoccerJuggling_g10_c03 83 -Kayaking/v_Kayaking_g15_c02 48 -BabyCrawling/v_BabyCrawling_g12_c03 3 -TennisSwing/v_TennisSwing_g11_c07 91 -BandMarching/v_BandMarching_g18_c02 5 -HorseRiding/v_HorseRiding_g14_c03 41 -JavelinThrow/v_JavelinThrow_g16_c03 44 -Skijet/v_Skijet_g21_c04 81 -PlayingCello/v_PlayingCello_g22_c07 58 -CricketShot/v_CricketShot_g11_c05 23 -HighJump/v_HighJump_g22_c02 39 -MilitaryParade/v_MilitaryParade_g16_c01 52 -WallPushups/v_WallPushups_g20_c04 98 -BalanceBeam/v_BalanceBeam_g25_c02 4 -Bowling/v_Bowling_g21_c03 15 -WritingOnBoard/v_WritingOnBoard_g20_c07 99 -PoleVault/v_PoleVault_g23_c04 67 -BodyWeightSquats/v_BodyWeightSquats_g18_c02 14 -Basketball/v_Basketball_g19_c04 7 -BoxingSpeedBag/v_BoxingSpeedBag_g09_c04 17 -FrontCrawl/v_FrontCrawl_g11_c06 31 -FrisbeeCatch/v_FrisbeeCatch_g21_c04 30 -Mixing/v_Mixing_g19_c04 53 -ThrowDiscus/v_ThrowDiscus_g09_c01 92 -Haircut/v_Haircut_g16_c01 33 -TennisSwing/v_TennisSwing_g17_c04 91 -PlayingDhol/v_PlayingDhol_g13_c05 60 -Haircut/v_Haircut_g17_c04 33 -BasketballDunk/v_BasketballDunk_g23_c03 8 -Typing/v_Typing_g13_c01 94 -BabyCrawling/v_BabyCrawling_g19_c02 3 -StillRings/v_StillRings_g16_c03 85 -Shotput/v_Shotput_g23_c01 78 -RopeClimbing/v_RopeClimbing_g11_c03 74 -Biking/v_Biking_g15_c02 10 -SalsaSpin/v_SalsaSpin_g25_c03 76 -Lunges/v_Lunges_g20_c01 51 -Hammering/v_Hammering_g22_c07 34 -Haircut/v_Haircut_g24_c02 33 -Typing/v_Typing_g09_c03 94 -ThrowDiscus/v_ThrowDiscus_g21_c07 92 -Rowing/v_Rowing_g09_c02 75 -BrushingTeeth/v_BrushingTeeth_g12_c04 19 -UnevenBars/v_UnevenBars_g18_c01 95 -BoxingSpeedBag/v_BoxingSpeedBag_g15_c06 17 -BalanceBeam/v_BalanceBeam_g21_c04 4 -ApplyEyeMakeup/v_ApplyEyeMakeup_g23_c05 0 -PizzaTossing/v_PizzaTossing_g21_c02 57 -HammerThrow/v_HammerThrow_g23_c05 35 -Shotput/v_Shotput_g08_c07 78 -ApplyLipstick/v_ApplyLipstick_g23_c02 1 -SoccerPenalty/v_SoccerPenalty_g09_c04 84 -RopeClimbing/v_RopeClimbing_g16_c05 74 -Archery/v_Archery_g13_c04 2 -WalkingWithDog/v_WalkingWithDog_g25_c04 97 -BandMarching/v_BandMarching_g20_c04 5 -PullUps/v_PullUps_g25_c01 69 -JumpRope/v_JumpRope_g17_c02 47 -FrontCrawl/v_FrontCrawl_g12_c01 31 -JumpRope/v_JumpRope_g16_c06 47 -Skijet/v_Skijet_g14_c02 81 -FrisbeeCatch/v_FrisbeeCatch_g19_c05 30 -Haircut/v_Haircut_g14_c02 33 -PoleVault/v_PoleVault_g11_c03 67 -ApplyEyeMakeup/v_ApplyEyeMakeup_g13_c05 0 -PlayingDaf/v_PlayingDaf_g24_c01 59 -FloorGymnastics/v_FloorGymnastics_g21_c01 29 -BaseballPitch/v_BaseballPitch_g15_c07 6 -BodyWeightSquats/v_BodyWeightSquats_g12_c04 14 -BoxingPunchingBag/v_BoxingPunchingBag_g11_c04 16 -HammerThrow/v_HammerThrow_g16_c04 35 -FloorGymnastics/v_FloorGymnastics_g16_c04 29 -TableTennisShot/v_TableTennisShot_g17_c04 89 -WalkingWithDog/v_WalkingWithDog_g12_c04 97 -PommelHorse/v_PommelHorse_g15_c03 68 -Typing/v_Typing_g12_c06 94 -CleanAndJerk/v_CleanAndJerk_g11_c01 20 -PoleVault/v_PoleVault_g12_c06 67 -Mixing/v_Mixing_g14_c05 53 -VolleyballSpiking/v_VolleyballSpiking_g21_c02 96 -FieldHockeyPenalty/v_FieldHockeyPenalty_g15_c06 28 -Surfing/v_Surfing_g15_c01 87 -WritingOnBoard/v_WritingOnBoard_g08_c02 99 -CliffDiving/v_CliffDiving_g14_c03 21 -CleanAndJerk/v_CleanAndJerk_g20_c06 20 -Surfing/v_Surfing_g13_c04 87 -ApplyEyeMakeup/v_ApplyEyeMakeup_g10_c05 0 -BlowDryHair/v_BlowDryHair_g10_c04 12 -PlayingFlute/v_PlayingFlute_g11_c05 61 -BlowingCandles/v_BlowingCandles_g16_c03 13 -SkateBoarding/v_SkateBoarding_g13_c03 79 -Bowling/v_Bowling_g20_c04 15 -SalsaSpin/v_SalsaSpin_g14_c06 76 -TennisSwing/v_TennisSwing_g25_c01 91 -Fencing/v_Fencing_g14_c02 27 -CliffDiving/v_CliffDiving_g17_c03 21 -ApplyLipstick/v_ApplyLipstick_g13_c03 1 -PizzaTossing/v_PizzaTossing_g18_c01 57 -MoppingFloor/v_MoppingFloor_g09_c01 54 -CuttingInKitchen/v_CuttingInKitchen_g11_c02 24 -JumpingJack/v_JumpingJack_g17_c01 46 -Biking/v_Biking_g25_c02 10 -TaiChi/v_TaiChi_g19_c01 90 -PlayingSitar/v_PlayingSitar_g13_c02 64 -Typing/v_Typing_g23_c03 94 -JumpingJack/v_JumpingJack_g10_c04 46 -Archery/v_Archery_g24_c03 2 -ThrowDiscus/v_ThrowDiscus_g20_c03 92 -RockClimbingIndoor/v_RockClimbingIndoor_g24_c05 73 -Typing/v_Typing_g22_c03 94 -SkateBoarding/v_SkateBoarding_g13_c01 79 -RopeClimbing/v_RopeClimbing_g10_c03 74 -PlayingFlute/v_PlayingFlute_g23_c03 61 diff --git a/include/caffe/data_transformer.hpp b/include/caffe/data_transformer.hpp index e93599f83..f1704e37a 100644 --- a/include/caffe/data_transformer.hpp +++ b/include/caffe/data_transformer.hpp @@ -351,6 +351,8 @@ class DataTransformer { protected: GenRandNumbers rand_num_; + void Transform(const Datum& datum, Dtype* transformed_data); + // Transform and return the transformation information. template void Transform(const Datum& datum, Dtype* transformed_data, diff --git a/include/caffe/util/io.hpp b/include/caffe/util/io.hpp index 2b66a207f..376b67ee4 100644 --- a/include/caffe/util/io.hpp +++ b/include/caffe/util/io.hpp @@ -269,6 +269,9 @@ inline bool MapLabelToDisplayName(const LabelMap& map, cv::Mat ReadImageToCVMat(const string& filename, const int height, const int width, const bool is_color); +cv::Mat ReadImageToCVMat(const string& filename, + const int new_height, const int new_width, const bool is_color, const int min_height, const int min_width); + cv::Mat ReadImageToCVMat(const string& filename, const int height, const int width); diff --git a/python/caffe/io.py b/python/caffe/io.py index 0df78e7f3..6bcc8c514 100755 --- a/python/caffe/io.py +++ b/python/caffe/io.py @@ -155,6 +155,7 @@ def __init__(self, inputs): self.raw_scale = {} self.mean = {} self.input_scale = {} + self.is_flow = {} def __check_input(self, in_): if in_ not in self.inputs: @@ -320,6 +321,16 @@ def set_input_scale(self, in_, scale): self.__check_input(in_) self.input_scale[in_] = scale + def set_is_flow(self, in_, is_flow): + """ + Indicate if input is a flow image + + Take + in_: which input to assign this scale factor + is_flow: boolean indicating if the input is a flow image + """ + self.__check_input(in_) + self.is_flow[in_] = is_flow ## Image IO @@ -386,7 +397,7 @@ def resize_image(im, new_dims, interp_order=1): # skimage is fast but only understands {1,3} channel images # in [0, 1]. im_std = (im - im_min) / (im_max - im_min) - resized_std = resize(im_std, new_dims, order=interp_order) + resized_std = resize(im_std, new_dims, order=interp_order, mode='constant') resized_im = resized_std * (im_max - im_min) + im_min else: # the image is a constant -- avoid divide by 0 @@ -397,7 +408,7 @@ def resize_image(im, new_dims, interp_order=1): else: # ndimage interpolates anything but more slowly. scale = tuple(np.array(new_dims, dtype=float) / np.array(im.shape[:2])) - resized_im = zoom(im, scale + (1,), order=interp_order) + resized_im = zoom(im, scale + (1,), order=interp_order, mode='constant') return resized_im.astype(np.float32) diff --git a/src/caffe/data_transformer.cpp b/src/caffe/data_transformer.cpp index 1eadefd78..e09011963 100644 --- a/src/caffe/data_transformer.cpp +++ b/src/caffe/data_transformer.cpp @@ -83,6 +83,100 @@ DataTransformer::DataTransformer(const TransformationParameter& param, } } +template +void DataTransformer::Transform(const Datum& datum, Dtype* transformed_data) { + const string& data = datum.data(); + const int datum_channels = datum.channels(); + const int datum_height = datum.height(); + const int datum_width = datum.width(); + + const int crop_size = param_.crop_size(); + const Dtype scale = param_.scale(); + const bool do_mirror = param_.mirror() && rand_num_(2); + const bool has_mean_file = param_.has_mean_file(); + const bool has_uint8 = data.size() > 0; + const bool has_mean_values = mean_values_.size() > 0; + const bool flow = param_.flow(); + + CHECK_GT(datum_channels, 0); + CHECK_GE(datum_height, crop_size); + CHECK_GE(datum_width, crop_size); + + Dtype* mean = NULL; + if (has_mean_file) { + CHECK_EQ(datum_channels, data_mean_.channels()); + CHECK_EQ(datum_height, data_mean_.height()); + CHECK_EQ(datum_width, data_mean_.width()); + mean = data_mean_.mutable_cpu_data(); + } + if (has_mean_values) { + CHECK(mean_values_.size() == 1 || mean_values_.size() == datum_channels) << + "Specify either 1 mean_value or as many as channels: " << datum_channels; + if (datum_channels > 1 && mean_values_.size() == 1) { + // Replicate the mean_value for simplicity + for (int c = 1; c < datum_channels; ++c) { + mean_values_.push_back(mean_values_[0]); + } + } + } + + int height = datum_height; + int width = datum_width; + + int h_off = 0; + int w_off = 0; + if (crop_size) { + height = crop_size; + width = crop_size; + // We only do random crop when we do training. + if (phase_ == TRAIN) { + h_off = rand_num_(datum_height - crop_size + 1); + w_off = rand_num_(datum_width - crop_size + 1); + } else { + h_off = (datum_height - crop_size) / 2; + w_off = (datum_width - crop_size) / 2; + } + } + + Dtype datum_element; + int top_index, data_index; + for (int c = 0; c < datum_channels; ++c) { + for (int h = 0; h < height; ++h) { + for (int w = 0; w < width; ++w) { + data_index = (c * datum_height + h_off + h) * datum_width + w_off + w; + if (do_mirror) { + top_index = (c * height + h) * width + (width - 1 - w); + } else { + top_index = (c * height + h) * width + w; + } + if (has_uint8) { + datum_element = + static_cast(static_cast(data[data_index])); + if (flow && c == 2 && do_mirror) { + datum_element = 255-datum_element; + } + } else { + datum_element = datum.float_data(data_index); + if (flow && c == 2 && do_mirror) { + datum_element = 255-datum_element; + } + } + if (has_mean_file) { + transformed_data[top_index] = + (datum_element - mean[data_index]) * scale; + } else { + if (has_mean_values) { + transformed_data[top_index] = + (datum_element - mean_values_[c]) * scale; + } else { + transformed_data[top_index] = datum_element * scale; + } + } + } + } + } +} + template void DataTransformer::Transform(const Datum& datum, Dtype* transformed_data, NormalizedBBox* crop_bbox, RandNumbers& rand_num, diff --git a/src/caffe/layers/image_data_layer.cpp b/src/caffe/layers/image_data_layer.cpp index 420db6998..19c95d344 100644 --- a/src/caffe/layers/image_data_layer.cpp +++ b/src/caffe/layers/image_data_layer.cpp @@ -64,12 +64,20 @@ void ImageDataLayer::DataLayerSetUp(const vector*>& bottom, const vector*>& top) { const int new_height = this->layer_param_.image_data_param().new_height(); const int new_width = this->layer_param_.image_data_param().new_width(); + + const int min_height = this->layer_param_.image_data_param().min_height(); + const int min_width = this->layer_param_.image_data_param().min_width(); + const bool is_color = this->layer_param_.image_data_param().is_color(); string root_folder = this->layer_param_.image_data_param().root_folder(); CHECK((new_height == 0 && new_width == 0) || (new_height > 0 && new_width > 0)) << "Current implementation requires " "new_height and new_width to be set at the same time."; + CHECK((min_height == 0 && min_width == 0) || + (min_height > 0 && min_width > 0)) << "Current implementation requires " + "min_height and min_width to be set at the same time."; + // Read the file with filenames and labels const string& source = this->layer_param_.image_data_param().source(); LOG(INFO) << "Opening file " << source; @@ -105,7 +113,8 @@ void ImageDataLayer::DataLayerSetUp(const vector*>& bottom, } // Read an image, and use it to initialize the top blob. cv::Mat cv_img = ReadImageToCVMat(root_folder + lines_[lines_id_].first, - new_height, new_width, is_color); + new_height, new_width, is_color, min_height, min_width); + CHECK(cv_img.data) << "Could not load " << lines_[lines_id_].first; // Use data_transformer to infer the expected blob shape from a cv_image. vector top_shape = this->data_transformer_->InferBlobShape(cv_img); @@ -150,13 +159,17 @@ void ImageDataLayer::load_batch(Batch* batch) { const int batch_size = image_data_param.batch_size(); const int new_height = image_data_param.new_height(); const int new_width = image_data_param.new_width(); + + const int min_height = image_data_param.min_height(); + const int min_width = image_data_param.min_width(); + const bool is_color = image_data_param.is_color(); string root_folder = image_data_param.root_folder(); // Reshape according to the first image of each batch // on single input batches allows for inputs of varying dimension. cv::Mat cv_img = ReadImageToCVMat(root_folder + lines_[lines_id_].first, - new_height, new_width, is_color); + new_height, new_width, is_color, min_height, min_width); CHECK(cv_img.data) << "Could not load " << lines_[lines_id_].first; // Use data_transformer to infer the expected blob shape from a cv_img. vector top_shape = this->data_transformer_->InferBlobShape(cv_img); @@ -181,7 +194,7 @@ void ImageDataLayer::load_batch(Batch* batch) { CHECK_GT(lines_size, lines_id_); #ifndef _OPENMP cv::Mat cv_img = ReadImageToCVMat(root_folder + lines_[lines_id_].first, - new_height, new_width, is_color); + new_height, new_width, is_color, min_height, min_width); CHECK(cv_img.data) << "Could not load " << lines_[lines_id_].first; read_time += timer.MicroSeconds(); timer.Start(); diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index d86b36e78..8158119f0 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -660,6 +660,9 @@ message TransformationParameter { // Resize the input randomly optional RandomResizeParameter random_resize_param = 15; optional RandomAspectRatioParameter random_aspect_ratio_param = 16; + + //will flip x flow if flow image input + optional bool flow = 17 [default = false]; } message RandomResizeParameter { @@ -1314,6 +1317,10 @@ message ImageDataParameter { // It will also resize images if new_height or new_width are not zero. optional uint32 new_height = 9 [default = 0]; optional uint32 new_width = 10 [default = 0]; + + optional uint32 min_height = 13 [default = 0]; + optional uint32 min_width = 14 [default = 0]; + // Specify if the images are color or gray optional bool is_color = 11 [default = true]; // DEPRECATED. See TransformationParameter. For data pre-processing, we can do diff --git a/src/caffe/util/io.cpp b/src/caffe/util/io.cpp index e172923bf..ba70dc744 100644 --- a/src/caffe/util/io.cpp +++ b/src/caffe/util/io.cpp @@ -134,6 +134,35 @@ cv::Mat ReadImageToCVMat(const string& filename, return cv_img; } +cv::Mat ReadImageToCVMat(const string& filename, + const int height, const int width, const bool is_color, + const int min_height, const int min_width) { + cv::Mat cv_img; + int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR : + CV_LOAD_IMAGE_GRAYSCALE); + cv::Mat cv_img_origin = cv::imread(filename, cv_read_flag); + if (!cv_img_origin.data) { + LOG(ERROR) << "Could not open or find file " << filename; + return cv_img_origin; + } + if (height > 0 && width > 0) { + cv::resize(cv_img_origin, cv_img, cv::Size(width, height)); + } else if (cv_img_origin.rows < min_height || cv_img_origin.cols < min_width){ + bool resize_width = (min_width - cv_img_origin.cols > min_height - cv_img_origin.rows) + ? true: false; + if (resize_width) { + int height_aspect_ratio = float(min_width)*(float(cv_img_origin.rows)/float(cv_img_origin.cols)) + 0.5; + cv::resize(cv_img_origin, cv_img, cv::Size(min_width, height_aspect_ratio)); + } else { + int width_aspect_ratio = float(min_height)*(float(cv_img_origin.cols)/float(cv_img_origin.rows)) + 0.5; + cv::resize(cv_img_origin, cv_img, cv::Size(width_aspect_ratio , min_height)); + } + } else { + cv_img = cv_img_origin; + } + return cv_img; +} + cv::Mat ReadImageToCVMat(const string& filename, const int height, const int width) { return ReadImageToCVMat(filename, height, width, true); From bec57da6374fd6febd4842d6bddbf3233afb239e Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Mon, 20 Nov 2017 14:47:45 +0800 Subject: [PATCH 24/54] Set the MLSL envs in Makefile. --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 020edc2da..96bedde22 100644 --- a/Makefile +++ b/Makefile @@ -71,11 +71,13 @@ endif RETURN_STRING=$(shell ./external/mlsl/prepare_mlsl.sh) MLSL_ROOT=$(firstword $(RETURN_STRING)) - MLSL_LDFLAGS=$(lastword $(RETURN_STRING)) + MLSL_LDFLAGS=$(lastword $(RETURN_STRING)) COMMON_FLAGS += -DUSE_MLSL=1 LIBRARIES += mlsl INCLUDE_DIRS += $(MLSL_ROOT)/intel64/include LIBRARY_DIRS += $(MLSL_ROOT)/intel64/lib + IGNORE := $(shell bash -c "source $(MLSL_ROOT)/intel64/bin/mlslvars.sh; env | sed 's/=/:=/' | sed 's/^/export /' > make_mlsl_env") + include make_mlsl_env ifeq ($(CAFFE_PER_LAYER_TIMINGS), 1) COMMON_FLAGS += -DCAFFE_PER_LAYER_TIMINGS From ef047cdc71980fdccdd41365f53badb7abd5b22e Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Tue, 21 Nov 2017 08:26:13 +0800 Subject: [PATCH 25/54] Update the MKLDNN version to aab753280e83137ba955f8f19d72cb6aaba545ef. --- mkldnn.commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkldnn.commit b/mkldnn.commit index e3133c26d..f28f6c194 100644 --- a/mkldnn.commit +++ b/mkldnn.commit @@ -1 +1 @@ -b69eabf2631569d6341f3a94a871a8993d6cbdae +aab753280e83137ba955f8f19d72cb6aaba545ef From f53a4280cae84a94d7f477b9d517787be1325a6f Mon Sep 17 00:00:00 2001 From: Shane Li Date: Mon, 20 Nov 2017 13:36:45 +0800 Subject: [PATCH 26/54] Change set_env script to be consistent with out daily test settings Change-Id: I3f7e60ee884e814a017bfcf2a3c2239e2634e6e8 --- scripts/set_env.sh | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 8620b0239..852b1d040 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -33,16 +33,12 @@ function init_mpi_envs if [ "$cpu_model" == "knl" ] || [ "$cpu_model" == "knm" ]; then # PSM2 configuration export PSM2_MQ_RNDV_HFI_WINDOW=2097152 # to workaround PSM2 bug in IFS 10.2 and 10.3 - export PSM2_MQ_EAGER_SDMA_SZ=65536 - export PSM2_MQ_RNDV_HFI_THRESH=200000 export HFI_NO_CPUAFFINITY=1 export I_MPI_DYNAMIC_CONNECTION=0 export I_MPI_SCALABLE_OPTIMIZATION=0 export I_MPI_PIN_MODE=lib export I_MPI_PIN_DOMAIN=node fi - - export PSM2_IDENTIFY=1 # for debug elif [ "$network" == "tcp" ]; then export I_MPI_FABRICS=tcp export I_MPI_TCP_NETMASK=$tcp_netmask @@ -157,16 +153,18 @@ function set_openmp_envs numthreads=$(((maxcores-numservers)*threadspercore)) numthreads_per_proc=$((numthreads/ppncpu)) - export OMP_NUM_THREADS=${numthreads_per_proc} - # OMP configuration - # threadspercore=1 - affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" - export KMP_HW_SUBSET=1t - if [ "${cpu_model}" == "knl" ] || [ "${cpu_model}" == "knm" ]; then - export KMP_BLOCKTIME=10000000 - export MKL_FAST_MEMORY_LIMIT=0 - if [ ${numnodes} -eq 1 ]; then + # For multinodes + if [ ${numnodes} -gt 1 ]; then + export OMP_NUM_THREADS=${numthreads_per_proc} + export KMP_HW_SUBSET=1t + affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" + else + # For single node only set for KNM + if [ "${cpu_model}" == "knm" ]; then + export KMP_BLOCKTIME=10000000 + export MKL_ENABLE_INSTRUCTIONS=AVX512_MIC_E1 + export OMP_NUM_THREADS=${numthreads_per_proc} affinitystr="compact,1,0,granularity=fine" fi fi From 342891102ebae89c3083da4679c8824d286bc43d Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Tue, 21 Nov 2017 11:46:51 +0800 Subject: [PATCH 27/54] Update the prepare MLSL script to support the MLSL V2. --- external/mlsl/prepare_mlsl.sh | 41 ++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/external/mlsl/prepare_mlsl.sh b/external/mlsl/prepare_mlsl.sh index 0d56d7200..a998c393f 100755 --- a/external/mlsl/prepare_mlsl.sh +++ b/external/mlsl/prepare_mlsl.sh @@ -7,7 +7,7 @@ # FindLibrary() { -# Find all the instances of the MKL libraries present in Caffe +# Find all the instances of the MLSL libraries present in Caffe MLSL_LIBS=`find $1 -name libmlsl.so` #echo "[Debug][FindLibrary function] MLSL_LIBS: $MLSL_LIBS" @@ -55,6 +55,26 @@ if [ -d $ABS_DST/$OLD_ARCHIVE_INSTALL_FOLDERNAME ]; then rm -rf $ABS_DST/$OLD_ARCHIVE_INSTALL_FOLDERNAME #echo "[Debug] Delete old l_mlsl_p_2017.0.014 folder!" fi +} + +# Clean up the previous MLSL version +CleanUpPreviousMLSL2017_1_016() +{ +OLD_ARCHIVE_TARGZ=files.tar.gz +OLD_ARCHIVE_BASENAME=l_mlsl_2017.1.016.tgz +OLD_ARCHIVE_INSTALL_FOLDERNAME=l_mlsl_2017.1.016 +if [ -f $ABS_DST/$OLD_ARCHIVE_TARGZ ]; then + rm $ABS_DST/$OLD_ARCHIVE_TARGZ + #echo "[Debug] Delete old files.tar.gz!" +fi +if [ -f $ABS_DST/$OLD_ARCHIVE_BASENAME ]; then + rm $ABS_DST/$OLD_ARCHIVE_BASENAME + #echo "[Debug] Delete old l_mlsl_2017.1.016.tgz file!" +fi +if [ -d $ABS_DST/$OLD_ARCHIVE_INSTALL_FOLDERNAME ]; then + rm -rf $ABS_DST/$OLD_ARCHIVE_INSTALL_FOLDERNAME + #echo "[Debug] Delete old l_mlsl_2017.1.016 folder!" +fi } # MLSL @@ -66,17 +86,18 @@ ABS_DST=`readlink -f $DST` if [ -z $MLSL_ROOT ]; then CleanUpPreviousMLSL2017_0_014 + CleanUpPreviousMLSL2017_1_016 fi - -VERSION_MATCH=20171016 -ARCHIVE_BASENAME=l_mlsl_2017.1.016.tgz -ARCHIVE_INSTALL_FOLDERNAME=l_mlsl_2017.1.016 -#because the l_mlsl_2017.1.016.tgz will unpacked files.tar.gz and install.sh to the ARCHIVE_INSTALL_FOLDERNAME + +VERSION_MATCH=20172018 +ARCHIVE_BASENAME=l_mlsl_2017.2.018.tgz +ARCHIVE_INSTALL_FOLDERNAME=l_mlsl_2017.2.018 +#because the l_mlsl_2017.2.018.tgz will unpacked files.tar.gz and install.sh to the ARCHIVE_INSTALL_FOLDERNAME #not unpacked to the DST folder (Different behavior against l_mlsl_p_2017.0.014.tgz) -ARCHIVE_INSTALL_FOLDERNAME_TEMP=l_mlsl_2017.1.016_temp +ARCHIVE_INSTALL_FOLDERNAME_TEMP=l_mlsl_2017.2.018_temp MLSL_CONTENT_DIR=`echo $ARCHIVE_BASENAME | rev | cut -d "." -f 2- | rev` #echo "[Debug] MLSL_CONTENT_DIR value: $MLSL_CONTENT_DIR" -GITHUB_RELEASE_TAG=v2017.1-Preview +GITHUB_RELEASE_TAG=v2017.2-Preview MLSLURL="https://github.com/01org/MLSL/releases/download/$GITHUB_RELEASE_TAG/$ARCHIVE_BASENAME" #echo "[Debug] MLSL_ROOT value: $MLSL_ROOT" @@ -105,14 +126,14 @@ if [ -z $MLSL_ROOT ] || [ $VERSION_LINE -lt $VERSION_MATCH ]; then wget --no-check-certificate -P $DST $MLSLURL -O $DST/$ARCHIVE_BASENAME if [ ! -d $DST/$ARCHIVE_INSTALL_FOLDERNAME_TEMP ]; then mkdir $DST/$ARCHIVE_INSTALL_FOLDERNAME_TEMP - #echo "[Debug] Create l_mlsl_2017.1.016_temp folder for unpacking!" + #echo "[Debug] Create l_mlsl_2017.2.018_temp folder for unpacking!" fi tar -xzf $DST/$ARCHIVE_BASENAME -C $DST/$ARCHIVE_INSTALL_FOLDERNAME_TEMP #echo "[Debug] PWD value: $PWD" #install.sh did not support the relative path as the parameter bash $DST/$ARCHIVE_INSTALL_FOLDERNAME_TEMP/$ARCHIVE_INSTALL_FOLDERNAME/install.sh -s -d $ABS_DST/$ARCHIVE_INSTALL_FOLDERNAME rm -rf $DST/$ARCHIVE_INSTALL_FOLDERNAME_TEMP - #echo "[Debug] Remove l_mlsl_2017.1.016_temp folder for unpacking!" + #echo "[Debug] Remove l_mlsl_2017.2.018_temp folder for unpacking!" fi #else: version is just our expected version, no need to donload again, but need to set the MLSL_ROOT #do not change the value of MLSL_ROOT if MLSL_ROOT is set, but version is not given From b2c1f58f41b86c7b1029440120f4232abefcd52e Mon Sep 17 00:00:00 2001 From: "Ye, Zhouhai" Date: Tue, 21 Nov 2017 14:10:46 +0800 Subject: [PATCH 28/54] Add weight grad quantization feature --- CMakeLists.txt | 1 + Makefile | 18 ++--- Makefile.dlcp | 58 +++++++++++++++ cmake/DLCP.cmake | 29 ++++++++ cmake/Dependencies.cmake | 27 +++++++ include/caffe/multinode/mlsl.hpp | 8 ++- include/caffe/util/compression_util.hpp | 51 +++++++++++++ src/caffe/layer.cpp | 15 ++++ src/caffe/multinode/mlsl.cpp | 6 ++ src/caffe/proto/caffe.proto | 14 +++- src/caffe/util/compression_util.cpp | 95 +++++++++++++++++++++++++ 11 files changed, 311 insertions(+), 11 deletions(-) create mode 100644 Makefile.dlcp create mode 100644 cmake/DLCP.cmake create mode 100644 include/caffe/util/compression_util.hpp create mode 100644 src/caffe/util/compression_util.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index fc0ec07c6..5a700f273 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,6 +47,7 @@ caffe_option(PERFORMANCE_MONITORING "Build Caffe with PERFORMANCE_MONITORING " O # ---[ Dependencies include(cmake/MKLDNN.cmake) +include(cmake/DLCP.cmake) include(cmake/Dependencies.cmake) # ---[ Flags diff --git a/Makefile b/Makefile index 96bedde22..921f69f3e 100644 --- a/Makefile +++ b/Makefile @@ -496,6 +496,8 @@ ifeq ($(USE_MKLDNN_AS_DEFAULT_ENGINE), 1) CXXFLAGS += -DUSE_MKLDNN_AS_DEFAULT_ENGINE endif +include Makefile.dlcp + # BOOST configuration # detect support for custom boost version BOOST_LDFLAGS += $(foreach boost_lib,$(BOOST_LIBRARIES),-l$(boost_lib)) @@ -609,7 +611,7 @@ endif ############################## .PHONY: all lib test clean docs linecount lint lintclean tools examples $(DIST_ALIASES) \ py mat py$(PROJECT) mat$(PROJECT) proto runtest \ - superclean supercleanlist supercleanfiles warn everything mkldnn mkldnn_clean + superclean supercleanlist supercleanfiles warn everything mkldnn mkldnn_clean dlcp dlcp_clean .DEFAULT_GOAL := all @@ -764,14 +766,14 @@ $(ALL_BUILD_DIRS): | $(BUILD_DIR_LINK) $(DYNAMIC_NAME): $(OBJS) | $(LIB_BUILD_DIR) @ echo LD -o $@ - $(Q)$(CXX) -shared -o $@ $(OBJS) $(VERSIONFLAGS) $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_SHARED_HARDENING_FLAGS) $(LDFLAGS) + $(Q)$(CXX) -shared -o $@ $(OBJS) $(VERSIONFLAGS) $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(DLCP_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_SHARED_HARDENING_FLAGS) $(LDFLAGS) @ cd $(BUILD_DIR)/lib; rm -f $(DYNAMIC_NAME_SHORT); ln -s $(DYNAMIC_VERSIONED_NAME_SHORT) $(DYNAMIC_NAME_SHORT) $(STATIC_NAME): $(OBJS) | $(LIB_BUILD_DIR) @ echo AR -o $@ $(Q)ar rcs $@ $(OBJS) -$(BUILD_DIR)/%.o: %.cpp | mkldnn $(ALL_BUILD_DIRS) +$(BUILD_DIR)/%.o: %.cpp | mkldnn dlcp $(ALL_BUILD_DIRS) @ echo CXX $< $(Q)$(CXX) $< $(CXX_HARDENING_FLAGS) $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \ || (cat $@.$(WARNS_EXT); exit 1) @@ -796,7 +798,7 @@ $(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJS) \ | $(DYNAMIC_NAME) $(TEST_BIN_DIR) @ echo CXX/LD -o $@ $< $(Q)$(CXX) -std=c++11 $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJS) \ - -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib + -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(DLCP_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib $(TEST_CU_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CU_BUILD_DIR)/%.o \ $(GTEST_OBJS) | $(DYNAMIC_NAME) $(TEST_BIN_DIR) @@ -808,7 +810,7 @@ $(TEST_CXX_BINS): $(TEST_BIN_DIR)/%.testbin: $(TEST_CXX_BUILD_DIR)/%.o \ $(GTEST_OBJS) | $(DYNAMIC_NAME) $(TEST_BIN_DIR) @ echo LD $< $(Q)$(CXX) -std=c++11 $(TEST_MAIN_SRC) $< $(GTEST_OBJS) \ - -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib + -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(DLCP_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) $(LDFLAGS) -l$(LIBRARY_NAME) -Wl,-rpath,$(ORIGIN)/../lib # Target for extension-less symlinks to tool binaries with extension '*.bin'. $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR) @@ -817,12 +819,12 @@ $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR) $(TOOL_BINS): %.bin : %.o | $(DYNAMIC_NAME) @ echo CXX/LD -o $@ - $(Q)$(CXX) $< -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \ + $(Q)$(CXX) $< -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(DLCP_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \ -Wl,-rpath,$(ORIGIN)/../lib $(EXAMPLE_BINS): %.bin : %.o | $(DYNAMIC_NAME) @ echo CXX/LD -o $@ - $(Q)$(CXX) $< -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \ + $(Q)$(CXX) $< -o $@ $(BOOST_LDFLAGS) $(LINKFLAGS) $(MKL_LDFLAGS) $(MKLDNN_LDFLAGS) $(DLCP_LDFLAGS) $(CXX_HARDENING_FLAGS) $(LINKER_EXEC_HARDENING_FLAGS) -l$(LIBRARY_NAME) $(LDFLAGS) \ -Wl,-rpath,$(ORIGIN)/../../lib proto: $(PROTO_GEN_CC) $(PROTO_GEN_HEADER) @@ -840,7 +842,7 @@ $(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \ $(PY_PROTO_INIT): | $(PY_PROTO_BUILD_DIR) touch $(PY_PROTO_INIT) -clean: mkldnn_clean +clean: mkldnn_clean dlcp_clean @echo "Will download the new version of MKL2017 and MLSL when clean and prepare the environment." @- $(RM) -rf $(ALL_BUILD_DIRS) @- $(RM) -rf $(OTHER_BUILD_DIR) diff --git a/Makefile.dlcp b/Makefile.dlcp new file mode 100644 index 000000000..c0a180327 --- /dev/null +++ b/Makefile.dlcp @@ -0,0 +1,58 @@ +CAFFE_ROOTDIR := $(shell pwd) +DLCP_IDEEPDIR := $(CAFFE_ROOTDIR)/external/ideep +DLCP_ROOTDIR := $(DLCP_IDEEPDIR)/ideep/dlcp +DLCP_INCLDIR := $(DLCP_ROOTDIR)/include +DLCP_LIBDIR := $(DLCP_ROOTDIR)/lib +IDEEP_GITHUB := https://github.com/intel/ideep.git +DLCP_CXX := $(CXX) + +ifeq ("$(wildcard $(DLCP_INCLDIR)/dl_compression.h)", "") +dlcp_download: + rm -rf $(DLCP_IDEEPDIR) + git clone $(IDEEP_GITHUB) -b dlcp $(DLCP_IDEEPDIR) + +dlcp_build: dlcp_download + make -C $(DLCP_ROOTDIR) -j$(shell cat /proc/cpuinfo |grep 'processor'|wc -l) +else +dlcp_download: +dlcp_build: + make -C $(DLCP_ROOTDIR) -j$(shell cat /proc/cpuinfo |grep 'processor'|wc -l) +endif + +dlcp_clean: + @rm -rf $(DLCP_IDEEPDIR) + +dlcproot_set: + $(eval COMMON_FLAGS += -DENABLE_WEIGHT_GRAD_COMPRESSION) \ + $(eval INCLUDE_DIRS += $(DLCP_INCLDIR)) \ + $(eval DLCP_LDFLAGS += -ldlcomp -L$(DLCPROOT)/lib) \ + $(eval DLCP_LDFLAGS += -Wl,-rpath,$(DLCPROOT)/lib) + + +dlcproot_notset: dlcp_build + $(eval COMMON_FLAGS += -DENABLE_WEIGHT_GRAD_COMPRESSION) \ + $(eval INCLUDE_DIRS += $(DLCP_INCLDIR)) \ + $(eval DLCP_LDFLAGS += -ldlcomp) \ + $(eval DLCP_LDFLAGS += -L$(DLCP_LIBDIR) -Wl,-rpath,${DLCP_LIBDIR}) + +ifeq (,$(findstring icpc, $(DLCP_CXX))) +ifneq (,$(findstring icpc,$(shell command -v icpc))) +DLCP_CXX := icpc +endif +endif + +ifeq ($(USE_MLSL), 1) +ifeq ($(origin DLCPROOT), environment) +dlcp: dlcproot_set +else +ifneq (,$(findstring icpc,$(DLCP_CXX))) +dlcp: dlcproot_notset +else +dlcp: + @echo "weight grad compression disabled because intel compiler not found" +endif +endif +else +dlcp: + @echo "disabling weight grad compression if USE_MLSL is not 1" +endif diff --git a/cmake/DLCP.cmake b/cmake/DLCP.cmake new file mode 100644 index 000000000..83218aaaa --- /dev/null +++ b/cmake/DLCP.cmake @@ -0,0 +1,29 @@ +function(Download_DLCP) + find_program(HAS_ICPC NAMES icpc DOC "Intel Compiler") + if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") + set(DLCP_CXX "${CMAKE_CXX_COMPILER}" PARENT_SCOPE) + elseif(HAS_ICPC) + set(DLCP_CXX "icpc" PARENT_SCOPE) + else() + message(WARNING "weight grad compression is disabled because intel compiler is not found") + return() + endif() + + set(EXTERNAL_DIR ${CMAKE_SOURCE_DIR}/external) + set(DLCP_IDEEPDIR ${EXTERNAL_DIR}/ideep) + set(DLCP_ROOTDIR ${DLCP_IDEEPDIR}/ideep/dlcp) + set(DLCP_INCLDIR "${DLCP_ROOTDIR}/include" PARENT_SCOPE) + set(DLCP_LIBDIR ${DLCP_ROOTDIR}/lib PARENT_SCOPE) + + # Download dl compression lib source code if it doesn't exist + if (NOT EXISTS ${DLCP_INCLDIR}/dl_compression.h) + execute_process(COMMAND rm -rf ${DLCP_IDEEPDIR}) + execute_process(COMMAND git clone https://github.com/intel/ideep.git -b dlcp ${DLCP_IDEEPDIR}) + endif() + + add_custom_target(DLCP_Build ALL + COMMAND export DLCP_CXX=${DLCP_CXX} + COMMAND make -j + WORKING_DIRECTORY ${DLCP_ROOTDIR}) + +endfunction(Download_DLCP) diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index 63feb3dcc..bd0127afc 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -132,6 +132,33 @@ if(USE_MLSL) endif() endif() +# ---| DLCP +if(USE_MLSL) + if(DEFINED ENV{DLCPROOT}) + set(DLCPROOT_DIR $ENV{DLCPROOT}) + if(NOT ${DLCPROOT_DIR} STREQUAL "") + set(DLCPROOT_INCLUDE_DIR "${DLCPROOT_DIR}/include/") + set(DLCPROOT_LIB_DIR "${DLCPROOT_DIR}/lib/") + if(EXISTS ${DLCPROOT_INCLUDE_DIR}/dl_compression.h AND EXISTS ${DLCPROOT_LIB_DIR}/libdlcomp.so) + message(STATUS "Found DLCP: ${DLCPROOT_DIR}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_WEIGHT_GRAD_COMPRESSION") + list(APPEND Caffe_LINKER_LIBS "${DLCPROOT_LIB_DIR}/libdlcomp.so") + include_directories(SYSTEM ${DLCP_INCLUDE_DIR}) + else() + message(STATUS "DLCP not found. DLCP_INCLUDE_DIR = ${DLCPROOT_INCLUDE_DIR} DLCP_LIB_DIR = ${DLCPROOT_LIB_DIR}") + message(WARNING "weight grad compression is disabled.") + endif() + endif() + else() + Download_DLCP() + if(DLCP_CXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_WEIGHT_GRAD_COMPRESSION") + list(APPEND Caffe_LINKER_LIBS "${DLCP_LIBDIR}/libdlcomp.so") + include_directories(SYSTEM ${DLCP_INCLDIR}) + endif() + endif() +endif() + # ---[ BLAS set(MKL_EXTERNAL "0") if(NOT APPLE) diff --git a/include/caffe/multinode/mlsl.hpp b/include/caffe/multinode/mlsl.hpp index 336dc6028..9f15a8acf 100644 --- a/include/caffe/multinode/mlsl.hpp +++ b/include/caffe/multinode/mlsl.hpp @@ -398,6 +398,10 @@ namespace caffe { get_session().commit(); } + inline void set_quantization_param(MLSL::QuantParams *qparams) { + MLSL::Environment::GetEnv().SetQuantizationParams(qparams); + } + namespace stats { inline void stop() { get_session().get_stats()->Stop(); @@ -474,10 +478,10 @@ namespace caffe { } template void add_parameter_set(int kernelCount, int kernelSize, - bool distributedUpdate = false) + bool distributedUpdate = false, MLSL::CompressionType compressType = MLSL::CompressionType::CT_NONE) { opRegInfo_->AddParameterSet(kernelCount, kernelSize, detail::dtype(), - distributedUpdate); + distributedUpdate, compressType); } private: MLSL::OperationRegInfo *opRegInfo_{ nullptr }; diff --git a/include/caffe/util/compression_util.hpp b/include/caffe/util/compression_util.hpp new file mode 100644 index 000000000..af33d3a8f --- /dev/null +++ b/include/caffe/util/compression_util.hpp @@ -0,0 +1,51 @@ +/* +All modification made by Intel Corporation: © 2016 Intel Corporation + +All contributions by the University of California: +Copyright (c) 2014, 2015, The Regents of the University of California (Regents) +All rights reserved. + +All other contributions: +Copyright (c) 2014, 2015, the respective contributors +All rights reserved. +For the list of contributors go to https://github.com/BVLC/caffe/blob/master/CONTRIBUTORS.md + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef CAFFE_UTIL_COMPRESSION_H_ +#define CAFFE_UTIL_COMPRESSION_H_ + +#if defined (USE_MLSL) && defined (ENABLE_WEIGHT_GRAD_COMPRESSION) + +namespace caffe { + +void get_weight_grad_compress_info(); + +} // namespace caffe + +#endif // USE_MLSL + +#endif // CAFFE_UTIL_COMPRESSION_H_ diff --git a/src/caffe/layer.cpp b/src/caffe/layer.cpp index 9db843056..9b3714ede 100644 --- a/src/caffe/layer.cpp +++ b/src/caffe/layer.cpp @@ -38,6 +38,10 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include "caffe/layer.hpp" +#ifdef ENABLE_WEIGHT_GRAD_COMPRESSION +#include "dl_compression.h" +#endif + namespace caffe { template @@ -102,9 +106,20 @@ void Layer::MultinodeSetUp(const vector*>& bottom, for (int k = 2; k < shape.size(); k++) { hw *= shape[k]; } +#ifdef ENABLE_WEIGHT_GRAD_COMPRESSION + const MnParamGradCompressParameter &grad_comp_param = layer_param().mn_grad_compress_param(); + if (dl_comp_check_running_environ() && + i < grad_comp_param.param_grad_compress_enable_size() && + grad_comp_param.param_grad_compress_enable(i)) { + reg_info.add_parameter_set(ic * oc * model_parts, hw, false, MLSL::CompressionType::CT_QUANTIZATION); + } else { +#endif // Note that MLSL expects the entire weights from a model group. // So we should multiply by model_parts here. reg_info.add_parameter_set(ic * oc * model_parts, hw); +#ifdef ENABLE_WEIGHT_GRAD_COMPRESSION + } +#endif } this->layerOp = mn::train::add_operation(reg_info, this->GetDistribution()); } diff --git a/src/caffe/multinode/mlsl.cpp b/src/caffe/multinode/mlsl.cpp index eb47c7a3e..90b6456a6 100644 --- a/src/caffe/multinode/mlsl.cpp +++ b/src/caffe/multinode/mlsl.cpp @@ -40,6 +40,9 @@ #include #include "boost/thread/mutex.hpp" #include "caffe/multinode/mlsl.hpp" +#ifdef ENABLE_WEIGHT_GRAD_COMPRESSION +#include "caffe/util/compression_util.hpp" +#endif namespace caffe { namespace mn { @@ -67,6 +70,9 @@ namespace caffe { MLSL::Environment::GetEnv().Configure(config_str.c_str()); } } +#ifdef ENABLE_WEIGHT_GRAD_COMPRESSION + get_weight_grad_compress_info(); +#endif } ~initialize() { delete distrib_map; diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index 8158119f0..c2c4d5955 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -233,6 +233,7 @@ message CompileNetState { message MultinodeParameter { repeated MnModelParallelParameter model_parallel = 1; + optional MnParamGradCompressLayerTypeList compress_layer_type_list = 2; } message MnModelParallelParameter { @@ -242,6 +243,10 @@ message MnModelParallelParameter { optional uint32 model_parts = 4; // 0 or >= num_nodes, means all nodes } +message MnParamGradCompressLayerTypeList { + repeated string layer_type = 1; +} + message MultiPhaseSolverParameter { repeated SolverBatchSizePair params_pair = 1; } @@ -487,7 +492,7 @@ message ParamSpec { // NOTE // Update the next available ID when you add a new LayerParameter field. // -// LayerParameter next available layer-specific ID: 156 (last added: spatial_dropout_param) +// LayerParameter next available layer-specific ID: 157 (MnParamGradCompressParameter) message LayerParameter { optional string name = 1; // the layer name optional string type = 2; // the layer type @@ -602,6 +607,7 @@ message LayerParameter { optional MultinodeLayerParameter multinode = 150; optional MnActivationParameter mn_activation_param = 151; + optional MnParamGradCompressParameter mn_grad_compress_param = 156; } message MultinodeLayerParameter { @@ -623,6 +629,12 @@ message MnActivationParameter { optional bool need_reduce = 5 [default = true]; } + + +message MnParamGradCompressParameter { + repeated bool param_grad_compress_enable = 1; +} + // Message that stores parameters used to apply transformation // to the data layer's data message TransformationParameter { diff --git a/src/caffe/util/compression_util.cpp b/src/caffe/util/compression_util.cpp new file mode 100644 index 000000000..f4feee579 --- /dev/null +++ b/src/caffe/util/compression_util.cpp @@ -0,0 +1,95 @@ +/* +All modification made by Intel Corporation: © 2016 Intel Corporation + +All contributions by the University of California: +Copyright (c) 2014, 2015, The Regents of the University of California (Regents) +All rights reserved. + +All other contributions: +Copyright (c) 2014, 2015, the respective contributors +All rights reserved. +For the list of contributors go to https://github.com/BVLC/caffe/blob/master/CONTRIBUTORS.md + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#if defined (USE_MLSL) && defined (ENABLE_WEIGHT_GRAD_COMPRESSION) + +#include +#include + +#include "dl_compression.h" +#include "caffe/util/compression_util.hpp" +#include "caffe/common.hpp" +#include "caffe/multinode/mlsl.hpp" + + +namespace caffe { + +void get_weight_grad_compress_info() +{ + MLSL::QuantParams param; + Dl_info info; + + if (!dl_comp_check_running_environ()) { + LOG(INFO) << "Disable weight grad compression because " + << "running environment does not meet requiremnt " + << "e.g. avx512 instruction is not supported."; + return; + } + + int ret = dladdr((void *)dl_comp_compress_buffer, &info); + if (ret == 0) { + LOG(FATAL) << "Get Compress Lib Info Failed!\n"; + } + param.quant_buffer_func_name = strdup(info.dli_sname); + param.lib_path = strdup(info.dli_fname); + + ret = dladdr((void *)dl_comp_decompress_buffer, &info); + if (ret == 0) { + LOG(FATAL) << "Get Compress Lib Info Failed!\n"; + } + param.dequant_buffer_func_name = strdup(info.dli_sname); + + ret = dladdr((void *)dl_comp_compressed_buffer_reduce_sum, &info); + if (ret == 0) { + LOG(FATAL) << "Get Compress Lib Info Failed!\n"; + } + param.reduce_sum_func_name = strdup(info.dli_sname); + + param.block_size = dl_comp_get_sizeof_block(DL_COMP_FLOAT32, 4, DL_COMP_DFP); + param.elem_in_block = dl_comp_get_elem_num_in_block(); + + mn::train::set_quantization_param(¶m); + + free(param.quant_buffer_func_name); + free(param.lib_path); + free(param.dequant_buffer_func_name); + free(param.reduce_sum_func_name); +} + +} + +#endif // USE_MLSL From bf1b41a2ef9dd21a2fae378d2a01f68297ba956c Mon Sep 17 00:00:00 2001 From: fzou1 Date: Tue, 21 Nov 2017 14:49:58 +0800 Subject: [PATCH 29/54] prompt user if lmdb dir doesn't exist; remove resume_train mode as it's equal to train w/snapshot --- scripts/run_intelcaffe.sh | 80 ++++++++++++++++++++++++++++++--------- scripts/set_env.sh | 1 + 2 files changed, 63 insertions(+), 18 deletions(-) diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index e77414871..d7abff700 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -6,7 +6,7 @@ benchmark_mode="none" numnodes=1 -# time/train/resume_train +# time/train mode="train" # it's assigned by detect_cpu @@ -24,9 +24,6 @@ num_mlsl_servers=-1 debug="off" -# time/train/resume_train -mode="train" - # parameters for caffe time iteration=0 model_file="" @@ -53,7 +50,7 @@ function usage echo "Usage:" echo " $script_name [--hostfile host_file] [--solver solver_file]" echo " [--network opa/tcp] [--netmask tcp_netmask] [--debug on/off]" - echo " [--mode train/resume_train/time/none] [--benchmark all/qperf/mpi/none]" + echo " [--mode train/time/none] [--benchmark all/qperf/mpi/none]" echo " [--iteration iter] [--model_file deploy.prototxt]" echo " [--snapshot snapshot.caffemodel]" echo " [--num_mlsl_servers num_mlsl_servers]" @@ -63,16 +60,16 @@ function usage echo "" echo " Parameters:" echo " host: host file includes list of nodes. Only used when you're running multinodes mode" - echo " solver: need to be specified a solver file if mode is train/resume_train" + echo " solver: need to be specified a solver file if mode is train" echo " network: opa(default), tcp" echo " netmask: only used if network is tcp" echo " debug: off(default). MLSL debug information is outputed if it's on" - echo " mode: train(default), resume_train, time, none(not to run caffe test)" + echo " mode: train(default), time, none(not to run caffe test)" echo " benchmark: none(disabled by default). Includes qperf, all-reduce performance" echo " Dependency: user needs to install qperf, Intel MPI library (including IMB-MPI1);" echo " and add them in system path." echo " iteration and model_file: only used if mode is time (caffe time)" - echo " snapshot: only used if mode is resume_train" + echo " snapshot: it's specified if train is resumed" echo " num_mlsl_servers: number of MLSL ep servers" echo " output_folder: output folder for storing results" echo " mpibench_bin: IMB-MPI1 (default). relative path of binary of mpi benchmark." @@ -168,7 +165,7 @@ function execute_command sensor_log_file=$result_dir_/sensors-${cpu_model}-${numnodes}-start.log $sensors_bin >$sensor_log_file fi - + if [ ${numnodes} -eq 1 ]; then time GLOG_minloglevel=0 $exec_command 2>&1 | tee ${log_file} else @@ -302,7 +299,7 @@ function run_caffe xeonbin="$caffe_bin time --iterations $iteration --model $model_file -engine=$engine" else xeonbin="$caffe_bin train --solver $solver_file -engine=$engine" - if [ ${mode} == "resume_train" ]; then + if [ "${snapshot}" != "" ]; then xeonbin+=" --snapshot=${snapshot}" fi fi @@ -323,6 +320,49 @@ function test_ssh_connection fi } +function get_model_fname +{ + solver_file_=$1 + model_file_=$(grep -w "net:" $solver_file_ | head -n 1 | awk -F ':' '{print $2}' | sed 's/\"//g') + echo "$(echo $model_file_)" +} + +function check_lmdb_files +{ + model_file_=$1 + + lmdb_dirs=(ilsvrc12_train_lmdb ilsvrc12_val_lmdb) + is_missing_lmdb=0 + for lmdb_dir in "${lmdb_dirs[@]}" + do + data_source_dir=$(grep -w "$lmdb_dir" $model_file_ | head -n 1 | awk -F ' ' '{print $(NF)}' | sed 's/\"//g') + echo "LMDB data source: $data_source_dir" + if [ ! -d $data_source_dir ]; then + echo "Error: LMDB data source doesn't exist ($data_source_dir)." + let is_missing_lmdb=1 + fi + done + + if [ $is_missing_lmdb -eq 1 ]; then + echo "" + echo "Please follow the steps to create imagenet LMDB:" + echo " 1. Please download images from image-net.org website." + echo " 2. Execute script to download auxiliary data for training:" + echo " ./data/ilsvrc12/get_ilsvrc_aux.sh" + echo " 3. update parameters in examples/imagenet/create_imagenet.sh" + echo " TRAIN_DATA_ROOT and VALUE_DATA_ROOT: path of training and validation images from image-net.org" + echo " RESIZE=true/false: resize to 256x256 if true" + echo " ENCODE=true/false: LMDB is compressed if true" + echo " 4. Execute script to create lmdb for imagenet" + echo " ./examples/imagenet/create_imagenet.sh" + echo "" + echo "See details in Intel Caffe github wiki:" + echo " https://github.com/intel/caffe/wiki/How-to-create-Imagenet-LMDB" + + exit -1 + fi +} + if [ $# -le 1 ]; then usage exit 0 @@ -421,7 +461,7 @@ echo " -1: selected automatically according to CPU model." echo " BDW/SKX: 2, KNL: 4" -if [ "$mode" == "train" ] || [ "$mode" == "resume_train" ]; then +if [ "$mode" == "train" ]; then if [ "$solver_file" == "" ]; then echo "Error: solver file is NOT specified." exit 1 @@ -433,17 +473,14 @@ if [ "$mode" == "train" ] || [ "$mode" == "resume_train" ]; then echo " Solver file: $solver_file" - if [ "$mode" == "resume_train" ]; then - if [ "$snapshot" == "" ]; then - echo "Error: snapshot is NOT specified." - exit 1 - fi + if [ "$snapshot" != "" ]; then if [ ! -f $snapshot ]; then echo "Error: snapshot file does NOT exist." exit 1 fi echo " Snapshot for resuming train: $snapshot" fi + model_file=$(get_model_fname $solver_file) fi if [ "$mode" == "time" ]; then @@ -464,6 +501,14 @@ if [ "$mode" == "time" ]; then echo " Model file for running caffe time: $model_file" fi +# check source data exists +grep "backend" $model_file | grep -i "LMDB" >/dev/null +if [ $? -eq 0 ]; then + check_lmdb_files $model_file +fi + +exit 0 + echo " Network: $network" if [ "$network" == "tcp" ]; then if [ "$tcp_netmask" == "" ]; then @@ -499,11 +544,10 @@ fi env_params="--debug $debug --network $network --netmask $tcp_netmask --num_mlsl_servers $num_mlsl_servers" if [ "$host_file" != "" ]; then - env_params+=" --hostfile $host_file" + env_params+=" --hostfile $host_file" fi source ${script_dir}/set_env.sh $env_params - if [ "${benchmark_mode}" != "none" ]; then run_benchmark fi diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 852b1d040..326c11b9c 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -18,6 +18,7 @@ tcp_netmask="" # specify number of MLSL ep servers in command num_mlsl_servers=-1 + numservers=0 function init_mpi_envs From e0e49023d719c71e32b3a5646c3c3e5a99763405 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Tue, 21 Nov 2017 22:36:35 +0800 Subject: [PATCH 30/54] fix build error with DEBUG option --- include/caffe/net.hpp | 5 +++++ src/caffe/solvers/sgd_solver.cpp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/caffe/net.hpp b/include/caffe/net.hpp index 4b6fa0090..c8e274c6d 100644 --- a/include/caffe/net.hpp +++ b/include/caffe/net.hpp @@ -236,6 +236,11 @@ class Net { inline const vector& param_display_names() const { return param_display_names_; } + + inline const pair& param_layer_indices(int param_id) { + return param_layer_indices_[param_id]; + } + /// @brief Input and output blob numbers inline int num_inputs() const { return net_input_blobs_.size(); } inline int num_outputs() const { return net_output_blobs_.size(); } diff --git a/src/caffe/solvers/sgd_solver.cpp b/src/caffe/solvers/sgd_solver.cpp index 4142fef35..d08184b6e 100644 --- a/src/caffe/solvers/sgd_solver.cpp +++ b/src/caffe/solvers/sgd_solver.cpp @@ -665,7 +665,7 @@ Dtype SGDSolver::GetLocalRate(int param_id) const { && (this->iter_ % this->param_.display() == 0)) { const int layer_id = this->net_->param_layer_indices(param_id).first; const string& layer_name = this->net_->layer_names()[layer_id]; - const int blob_id = this->net_->param_layer_indicces(param_id).second; + const int blob_id = this->net_->param_layer_indices(param_id).second; LOG(INFO) << layer_name << "." << blob_id << " lr=" << local_lr << ".\t w=" << w_norm << "\t dw=" << wgrad_norm; } From c94b1a03ec89595a5fca4cba02166ba4fab8e4c0 Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Wed, 22 Nov 2017 10:11:30 +0800 Subject: [PATCH 31/54] Support the multi-node for SSD: batch size and loss. --- src/caffe/net.cpp | 5 ++++- src/caffe/solver.cpp | 13 +++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/caffe/net.cpp b/src/caffe/net.cpp index 5087006c5..0afc6d31f 100644 --- a/src/caffe/net.cpp +++ b/src/caffe/net.cpp @@ -266,7 +266,8 @@ void Net::Init(const NetParameter& in_param) { !layer_param.type().compare("HDF5Data") || !layer_param.type().compare("MemoryData") || !layer_param.type().compare("Input") || - !layer_param.type().compare("WindowData")) { + !layer_param.type().compare("WindowData") || + !layer_param.type().compare("AnnotatedData")) { // FIXME: retrieve batch_size from top[0]->shape[0] when MLSL stuff will be moved from LayerSetUp //int batch_size = top_vecs_[layer_id][0]->shape(0); @@ -284,6 +285,8 @@ void Net::Init(const NetParameter& in_param) { batch_size = layer_param.memory_data_param().batch_size(); else if (!layer_param.type().compare("WindowData")) batch_size = layer_param.window_data_param().batch_size(); + else if (!layer_param.type().compare("AnnotatedData")) + batch_size = layer_param.data_param().batch_size(); else if (!layer_param.type().compare("Input") && layer_param.input_param().shape(0).dim().size()) batch_size = layer_param.input_param().shape(0).dim(0); diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 9d84fa06d..0d66e7f67 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -795,9 +795,18 @@ void Solver::TestDetection(const int test_net_id) { return; } if (param_.test_compute_loss()) { - loss /= param_.test_iter(test_net_id); - LOG(INFO) << "Test loss: " << loss; +#ifdef USE_MLSL + mn::allreduce(&loss, 1); + loss /= (param_.test_iter(test_net_id) * mn::get_group_size()); + if (mn::get_node_id() == 0) { + LOG(INFO) << "Test loss: " << loss; + } +#else /* !USE_MLSL */ + loss /= param_.test_iter(test_net_id); + LOG(INFO) << "Test loss: " << loss; +#endif /* USE_MLSL */ } + for (int i = 0; i < all_true_pos.size(); ++i) { if (all_true_pos.find(i) == all_true_pos.end()) { LOG(FATAL) << "Missing output_blob true_pos: " << i; From 905f4e5f36e750321fab127e93dca0204bb06aab Mon Sep 17 00:00:00 2001 From: fzou1 Date: Wed, 22 Nov 2017 15:14:08 +0800 Subject: [PATCH 32/54] add weights for supporting SSD; add num_omp_threads for specifying NO of openmp threads; fix issues in script Change-Id: I4e21b3f3eb06c15e1319309f274790b29c7c30f1 --- scripts/run_intelcaffe.sh | 58 ++++++++++++++++++++++++++++++--------- scripts/set_env.sh | 31 +++++++++++++++++++-- 2 files changed, 74 insertions(+), 15 deletions(-) diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index d7abff700..d3566bc0d 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -32,6 +32,12 @@ snapshot="" # parameters for training solver_file="" +# weights for finetuning +weight_file="" + +# number of OpenMP threads +num_omp_threads=0 + # specify engine for running caffe engine="MKLDNN" @@ -49,6 +55,7 @@ function usage script_name=$0 echo "Usage:" echo " $script_name [--hostfile host_file] [--solver solver_file]" + echo " [--weights weight_file] [--num_omp_threads num_omp_threads]" echo " [--network opa/tcp] [--netmask tcp_netmask] [--debug on/off]" echo " [--mode train/time/none] [--benchmark all/qperf/mpi/none]" echo " [--iteration iter] [--model_file deploy.prototxt]" @@ -59,8 +66,10 @@ function usage echo " [--mpibench_param mpibench_param]" echo "" echo " Parameters:" - echo " host: host file includes list of nodes. Only used when you're running multinodes mode" + echo " hostfile: host file includes list of nodes. Only used if you're running with multinode" echo " solver: need to be specified a solver file if mode is train" + echo " weight_file: weight file for finetuning" + echo " num_omp_threads: number of OpenMP threads" echo " network: opa(default), tcp" echo " netmask: only used if network is tcp" echo " debug: off(default). MLSL debug information is outputed if it's on" @@ -229,9 +238,11 @@ function run_mpi_bench return fi + mpi_iter=10 + max_msglog=29 xeonbin="$mpibench_bin $mpibench_param" if [ "$mpibench_bin" == "IMB-MPI1" ] || [ "$mpibench_bin" == "IMB-NBC" ]; then - xeonbin+=" -msglog 29 -iter 10 -iter_policy off" + xeonbin+=" -msglog $max_msglog -iter $mpi_iter -iter_policy off" fi mpibench_bin_bname=`basename $mpibench_bin` @@ -302,6 +313,9 @@ function run_caffe if [ "${snapshot}" != "" ]; then xeonbin+=" --snapshot=${snapshot}" fi + if [ "${weight_file}" != "" ]; then + xeonbin+=" --weights ${weight_file}" + fi fi execute_command "$xeonbin" $result_dir @@ -315,7 +329,9 @@ function test_ssh_connection for host in ${host_list[@]} do hostname=`ssh $host "hostname"` - ssh $hostname "ls" + # prompt user to input password and no password should be + # needed in the following commands + ssh $hostname "ls" >/dev/null done fi } @@ -330,7 +346,7 @@ function get_model_fname function check_lmdb_files { model_file_=$1 - + lmdb_dirs=(ilsvrc12_train_lmdb ilsvrc12_val_lmdb) is_missing_lmdb=0 for lmdb_dir in "${lmdb_dirs[@]}" @@ -414,6 +430,14 @@ do snapshot=$2 shift ;; + --weights) + weight_file=$2 + shift + ;; + --num_omp_threads) + num_omp_threads=$2 + shift + ;; --engine) engine=$2 shift @@ -443,6 +467,8 @@ do shift done +detect_cpu + echo "" echo "CPUs with optimal settings:" for ((i=0; i<${#cpu_list[@]}; i++)) @@ -451,6 +477,7 @@ do done echo "" echo "Settings:" +echo " CPU: $cpu_model" echo " Host file: $host_file" echo " Running mode: $mode" echo " Benchmark: $benchmark_mode" @@ -502,13 +529,13 @@ if [ "$mode" == "time" ]; then fi # check source data exists -grep "backend" $model_file | grep -i "LMDB" >/dev/null -if [ $? -eq 0 ]; then - check_lmdb_files $model_file +if [ "$model_file" != "" ]; then + grep "backend" $model_file | grep -i "LMDB" >/dev/null + if [ $? -eq 0 ]; then + check_lmdb_files $model_file + fi fi -exit 0 - echo " Network: $network" if [ "$network" == "tcp" ]; then if [ "$tcp_netmask" == "" ]; then @@ -533,8 +560,6 @@ echo " Number of nodes: $numnodes" # test connection between nodes via ssh test_ssh_connection $host_file -detect_cpu - set_numa_node if [ ! -d $result_dir ]; then @@ -542,10 +567,17 @@ if [ ! -d $result_dir ]; then mkdir -p $result_dir fi -env_params="--debug $debug --network $network --netmask $tcp_netmask --num_mlsl_servers $num_mlsl_servers" +env_params="--cpu $cpu_model --debug $debug --network $network --num_mlsl_servers $num_mlsl_servers" +if [ "$network" == "tcp" ]; then + env_params+=" --netmask $tcp_netmask" +fi if [ "$host_file" != "" ]; then env_params+=" --hostfile $host_file" -fi +fi +if [ ${num_omp_threads} -ne 0 ]; then + env_params+=" --num_omp_threads ${num_omp_threads}" +fi + source ${script_dir}/set_env.sh $env_params if [ "${benchmark_mode}" != "none" ]; then diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 326c11b9c..501f3627d 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -8,6 +8,9 @@ debug="off" # it's assigned by detect_cpu cpu_model="skx" +# number of OpenMP threads +num_omp_threads=0 + nodenames="" # a list of nodes host_file="" @@ -157,9 +160,21 @@ function set_openmp_envs # OMP configuration # For multinodes if [ ${numnodes} -gt 1 ]; then + reserved_cores=0 + if [ ${num_omp_threads} -ne 0 ]; then + if [ $numthreads_per_proc -lt $num_omp_threads ]; then + echo "Too large number of OpenMP thread: $num_omp_threads" + echo " should be less than or equal to $numthreads_per_proc" + exit 1 + fi + let reserved_cores=numthreads_per_proc-num_omp_threads + echo "Reserve number of cores: $reserved_cores" + let numthreads_per_proc=${num_omp_threads} + fi + export OMP_NUM_THREADS=${numthreads_per_proc} export KMP_HW_SUBSET=1t - affinitystr="proclist=[0-5,$((5+numservers+1))-$((maxcores-1))],granularity=thread,explicit" + affinitystr="proclist=[0-5,$((5+numservers+reserved_cores+1))-$((maxcores-1))],granularity=thread,explicit" else # For single node only set for KNM if [ "${cpu_model}" == "knm" ]; then @@ -170,6 +185,8 @@ function set_openmp_envs fi fi export KMP_AFFINITY=$affinitystr + + echo "Number of OpenMP threads: ${numthreads_per_proc}" } function set_env_vars @@ -205,6 +222,14 @@ do num_mlsl_servers=$2 shift ;; + --cpu) + cpu_model=$2 + shift + ;; + --num_omp_threads) + num_omp_threads=$2 + shift + ;; *) echo "Unknown option: $key" usage @@ -222,8 +247,10 @@ if [[ $host_file != "" ]]; then echo "Error: empty host file! Exit." exit 0 fi - numnodes=${#nodenames[@]} +else + nodenames=(`hostname`) fi +numnodes=${#nodenames[@]} echo " Number of nodes: $numnodes" clear_envs From 41201850dd71e986c3c0f8d571cda48fb292367f Mon Sep 17 00:00:00 2001 From: "Yu, Chong" Date: Wed, 22 Nov 2017 16:35:30 +0800 Subject: [PATCH 33/54] Support SSD mAP calculation on multinode. --- src/caffe/solver.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 0d66e7f67..4e6fea95e 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -846,7 +846,17 @@ void Solver::TestDetection(const int test_net_id) { param_.ap_version(), &prec, &rec, &(APs[label])); mAP += APs[label]; } +#ifdef USE_MLSL + Dtype allnodes_mAP = static_cast(mAP); + mn::allreduce(&allnodes_mAP, 1); + mAP = allnodes_mAP; + Dtype allnodes_num_pos = static_cast(num_pos.size()); + mn::allreduce(&allnodes_num_pos, 1); + if (mn::get_node_id() == 0) + mAP /= allnodes_num_pos; +#else /* USE_MLSL */ mAP /= num_pos.size(); +#endif const int output_blob_index = test_net->output_blob_indices()[i]; const string& output_name = test_net->blob_names()[output_blob_index]; LOG(INFO) << " Test net output #" << i << ": " << output_name << " = " From f8d2de1d862d0376f0ccf8af5f878bd51ae98d81 Mon Sep 17 00:00:00 2001 From: "Ye, Zhouhai" Date: Wed, 22 Nov 2017 13:45:00 +0800 Subject: [PATCH 34/54] Add weight grad compress prototxt for vgg16 and fix layerparameter note. --- .../train_val_ip_grad_compress.prototxt | 617 ++++++++++++++++++ src/caffe/proto/caffe.proto | 2 +- 2 files changed, 618 insertions(+), 1 deletion(-) create mode 100644 models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val_ip_grad_compress.prototxt diff --git a/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val_ip_grad_compress.prototxt b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val_ip_grad_compress.prototxt new file mode 100644 index 000000000..e261fd69f --- /dev/null +++ b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val_ip_grad_compress.prototxt @@ -0,0 +1,617 @@ +name: "VGG_ILSVRC_16_layer" +multinode { + compress_layer_type_list { layer_type: "InnerProduct" } +} +layer { + name: "data" + type: "Data" + include { + phase: TRAIN + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: true + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + shuffle: true + batch_size: 32 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "data" + type: "Data" + include { + phase: TEST + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: false + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + shuffle: false + batch_size: 50 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "conv1_1" + type: "Convolution" + bottom: "data" + top: "conv1_1" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_1" + top: "conv1_1" + name: "relu1_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_1" + top: "conv1_2" + name: "conv1_2" + type: "Convolution" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_2" + top: "conv1_2" + name: "relu1_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_2" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool1" + top: "conv2_1" + name: "conv2_1" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_1" + top: "conv2_1" + name: "relu2_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_1" + top: "conv2_2" + name: "conv2_2" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_2" + top: "conv2_2" + name: "relu2_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_2" + top: "pool2" + name: "pool2" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool2" + top: "conv3_1" + name: "conv3_1" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_1" + top: "conv3_1" + name: "relu3_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_1" + top: "conv3_2" + name: "conv3_2" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_2" + top: "conv3_2" + name: "relu3_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_2" + top: "conv3_3" + name: "conv3_3" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_3" + top: "conv3_3" + name: "relu3_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_3" + top: "pool3" + name: "pool3" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool3" + top: "conv4_1" + name: "conv4_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_1" + top: "conv4_1" + name: "relu4_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_1" + top: "conv4_2" + name: "conv4_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_2" + top: "conv4_2" + name: "relu4_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_2" + top: "conv4_3" + name: "conv4_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_3" + top: "conv4_3" + name: "relu4_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_3" + top: "pool4" + name: "pool4" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool4" + top: "conv5_1" + name: "conv5_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_1" + top: "conv5_1" + name: "relu5_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_1" + top: "conv5_2" + name: "conv5_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_2" + top: "conv5_2" + name: "relu5_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_2" + top: "conv5_3" + name: "conv5_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.0 + } + } + + +} +layer { + bottom: "conv5_3" + top: "conv5_3" + name: "relu5_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_3" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool5" + top: "fc6" + name: "fc6" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc6" + top: "fc6" + name: "relu6" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc6" + top: "fc6" + name: "drop6" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + bottom: "fc6" + top: "fc7" + name: "fc7" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc7" + top: "fc7" + name: "relu7" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc7" + top: "fc7" + name: "drop7" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + bottom: "fc7" + top: "fc8" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss/loss" +} +layer { + name: "accuracy/top1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@1" + include: { phase: TEST } + accuracy_param { + top_k: 1 + } +} +layer { + name: "accuracy/top5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@5" + include: { phase: TEST } + accuracy_param { + top_k: 5 + } +} diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index c2c4d5955..d2c8231ed 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -492,7 +492,7 @@ message ParamSpec { // NOTE // Update the next available ID when you add a new LayerParameter field. // -// LayerParameter next available layer-specific ID: 157 (MnParamGradCompressParameter) +// LayerParameter next available layer-specific ID: 157 (last added: mn_grad_compress_param) message LayerParameter { optional string name = 1; // the layer name optional string type = 2; // the layer type From 6ef8794c4d025506f71848ea8ebeadc65eb82ef0 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Wed, 22 Nov 2017 18:17:44 +0800 Subject: [PATCH 35/54] fix gap of iteration time Change-Id: Ic051aaa4b279a0f39a21102fc3d5bf06a537eef9 --- include/caffe/multinode/multi_solver.hpp | 3 +- include/caffe/solver.hpp | 5 + src/caffe/multinode/multi_solver.cpp | 118 ++++++++++++++++------- src/caffe/solver.cpp | 14 ++- 4 files changed, 103 insertions(+), 37 deletions(-) diff --git a/include/caffe/multinode/multi_solver.hpp b/include/caffe/multinode/multi_solver.hpp index 771aa52df..5c4452aa6 100644 --- a/include/caffe/multinode/multi_solver.hpp +++ b/include/caffe/multinode/multi_solver.hpp @@ -112,7 +112,8 @@ class MultiSolver { private: virtual Dtype ForwardBackwardImpl(bool first, bool last); bool IsSkipWaitGradient(int layer_id); - void WaitAndUpdateGradient(int layer_id); + bool WaitGradient(int layer_id); + void UpdateGradient(int layer_id); protected: boost::shared_ptr> root_solver_; diff --git a/include/caffe/solver.hpp b/include/caffe/solver.hpp index a9ebdabc7..9bb0e63e0 100644 --- a/include/caffe/solver.hpp +++ b/include/caffe/solver.hpp @@ -163,9 +163,13 @@ class Solver { #ifdef CAFFE_PER_LAYER_TIMINGS /* Timers for performance measurements */ Timer timer; +#ifdef FW_OVERLAP_OPT + Timer wait_timer; +#endif std::vector forward_time_per_layer; std::vector backward_time_per_layer; std::vector update_time_per_layer; + double cleardiffs_time_per_iter; #ifdef USE_MLSL std::vector startcomm_time_per_layer; std::vector waitcomm_time_per_layer; @@ -174,6 +178,7 @@ class Solver { std::vector forward_time_per_layer_total; std::vector backward_time_per_layer_total; std::vector update_time_per_layer_total; + double cleardiffs_time_per_iter_total; #ifdef USE_MLSL std::vector startcomm_time_per_layer_total; std::vector waitcomm_time_per_layer_total; diff --git a/src/caffe/multinode/multi_solver.cpp b/src/caffe/multinode/multi_solver.cpp index a4ab3e734..4e9e38da1 100644 --- a/src/caffe/multinode/multi_solver.cpp +++ b/src/caffe/multinode/multi_solver.cpp @@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace caffe { #ifdef CAFFE_PER_LAYER_TIMINGS + #define LAYER_TIMING_START() do { \ root_solver_->timer.Start(); \ }while(0) @@ -54,10 +55,43 @@ namespace caffe { #define LAYER_TIMING_STOP(name, index) do { \ root_solver_->name##_time_per_layer[index] += root_solver_->timer.MicroSeconds(); \ }while(0) + +#ifdef FW_OVERLAP_OPT +#define LAYER_WAIT_TIMING_START() do { \ + root_solver_->wait_timer.Start(); \ +}while(0) + +#define LAYER_WAIT_TIMING_STOP(layer_index) do { \ + root_solver_->waitcomm_time_per_layer[layer_index] += root_solver_->wait_timer.MicroSeconds(); \ +}while(0) + +#define LAYER_REMOVE_UPDATE_TIME(layer_i, layer_k) do { \ + root_solver_->waitcomm_time_per_layer[layer_i] -= root_solver_->update_time_per_layer[layer_k]; \ +} while (0) +#endif + +#define ITER_TIMING_START() do { \ + root_solver_->timer.Start(); \ +}while(0) + +#define ITER_TIMING_STOP(name) do { \ + root_solver_->name##_time_per_iter += root_solver_->timer.MicroSeconds(); \ +}while(0) + #else -#define LAYER_TIMING_START() +#define LAYER_TIMING_START() #define LAYER_TIMING_STOP(name,index) + +#ifdef FW_OVERLAP_OPT +#define LAYER_WAIT_TIMING_START() +#define LAYER_WAIT_TIMING_STOP(index) +#define LAYER_REMOVE_UPDATE_TIME(layer_i, layer_k) +#endif + +#define ITER_TIMING_START() +#define ITER_TIMING_STOP(name, index) + #endif template @@ -68,21 +102,31 @@ inline bool MultiSolver::IsSkipWaitGradient(int layer_id) { if (!layer_need_backward[layer_id] || ((layers[layer_id]->layerOp != nullptr) && !layers[layer_id]->layerOp->HasParameterSets())) { - DLOG(INFO) << "ForwardBackwardImpl: no need for apply_updates for layer # " - << layer_id << ", skip on_delwt_wait, apply_updates, on_wtinc_ready"; - return true; + DLOG(INFO) << "ForwardBackwardImpl: no need for apply_updates for layer # " + << layer_id << ", skip on_delwt_wait, apply_updates, on_wtinc_ready"; + return true; } return false; } template -inline void MultiSolver::WaitAndUpdateGradient(int layer_id) { +inline bool MultiSolver::WaitGradient(int layer_id) { +#ifndef FW_OVERLAP_OPT LAYER_TIMING_START(); +#endif for (int j = 0; j < callbacks_.size(); ++j) { callbacks_[j]->on_delwt_wait(layer_id); } +#ifndef FW_OVERLAP_OPT LAYER_TIMING_STOP(waitcomm, layer_id); + return true; +#else + return layer_finished_flags_[layer_id]; +#endif +} +template +inline void MultiSolver::UpdateGradient(int layer_id) { #ifdef FW_OVERLAP_OPT if (layer_finished_flags_[layer_id]) { #endif @@ -106,24 +150,29 @@ Dtype MultiSolver::ForwardBackwardImpl(bool first, bool last) { for (int i = 0; i < layers.size(); ++i) { #ifdef FW_OVERLAP_OPT if (first) { + LAYER_WAIT_TIMING_START(); while (layer_finished_flags_[i] == false) { - if (IsSkipWaitGradient(i)) - break; - WaitAndUpdateGradient(i); - if (layer_finished_flags_[i]) + if (IsSkipWaitGradient(i) || WaitGradient(i)) break; - + // wait and update gradient for next layers for (int k=i+1; k::ForwardBackwardImpl(bool first, bool last) { // Clear parameter diffs after communication is finished (that is, after // calling WaitGradientComm) - if (first) + if (first) { + ITER_TIMING_START(); root_solver_->net()->ClearParamDiffs(); + ITER_TIMING_STOP(cleardiffs); + } for (int i = layers.size() - 1; i >= 0; --i) { if (!layer_need_backward[i]) { continue; } - + LAYER_TIMING_START(); net.BackwardFromTo(i, i); LAYER_TIMING_STOP(backward, i); @@ -157,39 +209,37 @@ Dtype MultiSolver::ForwardBackwardImpl(bool first, bool last) { } } + #ifdef FW_OVERLAP_OPT int iter = root_solver_->iter(); int max_iter = root_solver_->param().max_iter(); bool test = (root_solver_->param().test_interval() - && ((iter + 1) % root_solver_->param().test_interval() == 0)); - if (last && (test || (iter == max_iter - 1))) { - int finished_count = 0; - while (finished_count < layers.size()) { + && ((iter + 1) % root_solver_->param().test_interval() == 0)); + bool last_iter_wait_flag = last && (test || (iter == max_iter - 1)); #else - if (last) { + bool last_iter_wait_flag = last; #endif - for (int i = 0; i < layers.size(); ++i) { + + if (last_iter_wait_flag) { + for (int i = 0; i < layers.size(); ++i) { + if (IsSkipWaitGradient(i)) + continue; + #ifdef FW_OVERLAP_OPT - if (layer_finished_flags_[i]) - continue; + LAYER_WAIT_TIMING_START(); + while ( #endif - if (IsSkipWaitGradient(i)) { + WaitGradient(i) #ifdef FW_OVERLAP_OPT - finished_count++; - layer_finished_flags_[i] = true; + == false) #endif - continue; - } + ; - WaitAndUpdateGradient(i); #ifdef FW_OVERLAP_OPT - if (layer_finished_flags_[i]) - finished_count++; + LAYER_WAIT_TIMING_STOP(i); + UpdateGradient(i); #endif - } -#ifdef FW_OVERLAP_OPT } -#endif } DLOG(WARNING) << "iter " << root_solver_->iter() << ", loss " << loss; @@ -201,7 +251,7 @@ Dtype MultiSolver::ForwardBackward() { Dtype loss = 0; for (int i = 0; i < iter_size; ++i) { loss += ForwardBackwardImpl( - (i == 0), (i + 1 == iter_size)); + (i == 0), (i + 1 == iter_size)); } return loss / iter_size; } diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 4e6fea95e..2f0ca27b3 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -399,6 +399,7 @@ void Solver::InitTimers() { this->forward_time_per_layer.resize(layer_count, 0.0); this->backward_time_per_layer.resize(layer_count, 0.0); this->update_time_per_layer.resize(layer_count, 0.0); + this->cleardiffs_time_per_iter = 0.0; #ifdef USE_MLSL this->startcomm_time_per_layer.resize(layer_count, 0.0); this->waitcomm_time_per_layer.resize(layer_count, 0.0); @@ -406,6 +407,7 @@ void Solver::InitTimers() { this->forward_time_per_layer_total.resize(layer_count, 0.0); this->backward_time_per_layer_total.resize(layer_count, 0.0); this->update_time_per_layer_total.resize(layer_count, 0.0); + this->cleardiffs_time_per_iter_total = 0.0; #ifdef USE_MLSL this->startcomm_time_per_layer_total.resize(layer_count, 0.0); this->waitcomm_time_per_layer_total.resize(layer_count, 0.0); @@ -431,6 +433,7 @@ void Solver::ResetTimers() { this->update_time_per_layer.begin(), this->update_time_per_layer_total.begin(), std::plus()); + this->cleardiffs_time_per_iter_total += this->cleardiffs_time_per_iter; #ifdef USE_MLSL std::transform(this->startcomm_time_per_layer_total.begin(), this->startcomm_time_per_layer_total.end(), @@ -451,6 +454,7 @@ void Solver::ResetTimers() { this->backward_time_per_layer.end(), 0.0); std::fill(this->update_time_per_layer.begin(), this->update_time_per_layer.end(), 0.0); + this->cleardiffs_time_per_iter = 0.0; #ifdef USE_MLSL std::fill(this->startcomm_time_per_layer.begin(), this->startcomm_time_per_layer.end(), 0.0); @@ -475,6 +479,8 @@ void Solver::PrintTimers(bool printTotal) { backward_time_per_layer_total : backward_time_per_layer; std::vector& update_timers = printTotal ? update_time_per_layer_total : update_time_per_layer; + double cleardiffs_timer = printTotal ? + cleardiffs_time_per_iter_total : cleardiffs_time_per_iter; #ifdef USE_MLSL std::vector& startcomm_timers = printTotal ? startcomm_time_per_layer_total : startcomm_time_per_layer; @@ -516,6 +522,10 @@ void Solver::PrintTimers(bool printTotal) { } LOG(WARNING) << std::endl; + double cleardiffs_time = cleardiffs_timer / 1000.0; + LOG(WARNING) << prefix << "CLEAR PARAMETER DIFFS TIME: " << cleardiffs_time << " ms"; + LOG(WARNING) << std::endl; + #ifdef USE_MLSL double startcomm_time = std::accumulate(startcomm_timers.begin(), startcomm_timers.end(), 0.0) / 1000.0; @@ -540,11 +550,11 @@ void Solver::PrintTimers(bool printTotal) { LOG(WARNING) << std::endl; LOG(WARNING) << prefix << "TIME (Computation + Communication): " << (forward_time + - backward_time + update_time + startcomm_time + waitcomm_time) / 1000.0 + backward_time + update_time + cleardiffs_time + startcomm_time + waitcomm_time) / 1000.0 << " sec"; #else LOG(WARNING) << prefix << "TIME (Computation): " << (forward_time + - backward_time + update_time) / 1000.0 << " sec"; + backward_time + update_time + cleardiffs_time) / 1000.0 << " sec"; #endif LOG(WARNING) << "####################################################"; From 8dda42c2736b5db3e119f5ed7e1e52b7cdae63b6 Mon Sep 17 00:00:00 2001 From: Haihao Shen Date: Thu, 23 Nov 2017 10:01:30 +0800 Subject: [PATCH 36/54] Support label smoothing regularization --- include/caffe/layers/softmax_loss_layer.hpp | 2 ++ src/caffe/layers/softmax_loss_layer.cpp | 26 +++++++++++++++++++-- src/caffe/proto/caffe.proto | 1 + 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/include/caffe/layers/softmax_loss_layer.hpp b/include/caffe/layers/softmax_loss_layer.hpp index 741d31f1d..3ab382cc8 100644 --- a/include/caffe/layers/softmax_loss_layer.hpp +++ b/include/caffe/layers/softmax_loss_layer.hpp @@ -163,6 +163,8 @@ class SoftmaxWithLossLayer : public LossLayer { LossParameter_NormalizationMode normalization_; int softmax_axis_, outer_num_, inner_num_; + + float label_smoothing_; }; } // namespace caffe diff --git a/src/caffe/layers/softmax_loss_layer.cpp b/src/caffe/layers/softmax_loss_layer.cpp index 0aeab4ee4..1ac0cf6b8 100644 --- a/src/caffe/layers/softmax_loss_layer.cpp +++ b/src/caffe/layers/softmax_loss_layer.cpp @@ -70,6 +70,8 @@ void SoftmaxWithLossLayer::LayerSetUp( } else { normalization_ = this->layer_param_.loss_param().normalization(); } + + label_smoothing_ = this->layer_param_.loss_param().label_smoothing(); } template @@ -209,6 +211,7 @@ void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, LOG(FATAL) << this->type() << " Layer cannot backpropagate to label inputs."; } + if (propagate_down[0]) { if (bottom.size() == 3) { Dtype* bottom_diff = bottom[0]->mutable_cpu_diff(); @@ -216,6 +219,15 @@ void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, caffe_copy(prob_.count(), prob_data, bottom_diff); const Dtype* label = bottom[1]->cpu_data(); int dim = prob_.count() / outer_num_; + float alpha = 1, beta = 0, ratio = 1; + if (label_smoothing_ != 0.0) { + alpha = 1 - label_smoothing_; + beta = label_smoothing_ / dim; + ratio = (alpha + (dim - 1) * beta); + // for label true, alpha - yi (alpha + (N-1) * beta) + // for label false, beta - yj (alpha + (N-1) * beta) + caffe_cpu_axpby(bottom[0]->count(), Dtype(ratio), bottom_diff, Dtype(-beta), bottom_diff); + } Dtype weight_sum = Dtype(0); const Dtype* weights = bottom[2]->cpu_data(); for (int i = 0; i < outer_num_; ++i) { @@ -226,7 +238,8 @@ void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, bottom_diff[i * dim + c * inner_num_ + j] = 0; } } else { - bottom_diff[i * dim + label_value * inner_num_ + j] -= 1; + bottom_diff[i * dim + label_value * inner_num_ + j] += (beta - alpha); + for (int c = 0; c < bottom[0]->shape(1); ++c) { bottom_diff[i * dim + c * inner_num_ + j] *= weights[i * inner_num_ + j]; } @@ -243,6 +256,15 @@ void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, caffe_copy(prob_.count(), prob_data, bottom_diff); const Dtype* label = bottom[1]->cpu_data(); int dim = prob_.count() / outer_num_; + float alpha = 1, beta = 0, ratio = 1; + if (label_smoothing_ != 0.0) { + alpha = 1 - label_smoothing_; + beta = label_smoothing_ / dim; + ratio = (alpha + (dim - 1) * beta); + // for label true, alpha - yi (alpha + (N-1) * beta) + // for label false, beta - yj (alpha + (N-1) * beta) + caffe_cpu_axpby(bottom[0]->count(), Dtype(ratio), bottom_diff, Dtype(-beta), bottom_diff); + } int count = 0; for (int i = 0; i < outer_num_; ++i) { for (int j = 0; j < inner_num_; ++j) { @@ -252,7 +274,7 @@ void SoftmaxWithLossLayer::Backward_cpu(const vector*>& top, bottom_diff[i * dim + c * inner_num_ + j] = 0; } } else { - bottom_diff[i * dim + label_value * inner_num_ + j] -= 1; + bottom_diff[i * dim + label_value * inner_num_ + j] += (beta - alpha); ++count; } } diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index d2c8231ed..4a94c3c46 100755 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -846,6 +846,7 @@ message LossParameter { optional bool normalize = 2; // pre-fixed normalizer optional float pre_fixed_normalizer = 4 [default = 1]; + optional float label_smoothing = 5 [default = 0.0]; } // Messages that store parameters used by individual layer types follow, in From a952f7fd11d1717e646429c3f0ae5fcbaf974dbd Mon Sep 17 00:00:00 2001 From: Shane Li Date: Thu, 23 Nov 2017 10:27:58 +0800 Subject: [PATCH 37/54] Change multinode starting iteration as 0 to be consistent with single node --- src/caffe/multinode/multi_sync.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/caffe/multinode/multi_sync.cpp b/src/caffe/multinode/multi_sync.cpp index 1d2b6b1a0..217f29e2a 100644 --- a/src/caffe/multinode/multi_sync.cpp +++ b/src/caffe/multinode/multi_sync.cpp @@ -55,8 +55,6 @@ MultiSync::MultiSync(shared_ptr > root_solver) distrib_bcast(NULL) { root_solver->param().set_disabled_update(true); - if (root_solver->iter() == 0) - root_solver->set_iter(1); layer_param_ids.resize(layers.size()); #ifdef FW_OVERLAP_OPT From 63b2246c6e43029a62886d3756ff7888ba7465f3 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Thu, 23 Nov 2017 18:51:18 +0800 Subject: [PATCH 38/54] fix a typo --- src/caffe/multinode/multi_solver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/caffe/multinode/multi_solver.cpp b/src/caffe/multinode/multi_solver.cpp index 4e9e38da1..58e4e0c4d 100644 --- a/src/caffe/multinode/multi_solver.cpp +++ b/src/caffe/multinode/multi_solver.cpp @@ -237,8 +237,8 @@ Dtype MultiSolver::ForwardBackwardImpl(bool first, bool last) { #ifdef FW_OVERLAP_OPT LAYER_WAIT_TIMING_STOP(i); - UpdateGradient(i); #endif + UpdateGradient(i); } } From dd1d8ac7b5ae45a4e2ff9c067f8ee2445b5fd224 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Fri, 24 Nov 2017 12:09:46 +0800 Subject: [PATCH 39/54] fix build issue and move UpdateGradient in while loop to avoid addtional call at first iter --- src/caffe/multinode/multi_solver.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/caffe/multinode/multi_solver.cpp b/src/caffe/multinode/multi_solver.cpp index 58e4e0c4d..4f3df7838 100644 --- a/src/caffe/multinode/multi_solver.cpp +++ b/src/caffe/multinode/multi_solver.cpp @@ -85,12 +85,12 @@ namespace caffe { #ifdef FW_OVERLAP_OPT #define LAYER_WAIT_TIMING_START() -#define LAYER_WAIT_TIMING_STOP(index) +#define LAYER_WAIT_TIMING_STOP(layer_index) #define LAYER_REMOVE_UPDATE_TIME(layer_i, layer_k) #endif #define ITER_TIMING_START() -#define ITER_TIMING_STOP(name, index) +#define ITER_TIMING_STOP(name) #endif @@ -152,8 +152,19 @@ Dtype MultiSolver::ForwardBackwardImpl(bool first, bool last) { if (first) { LAYER_WAIT_TIMING_START(); while (layer_finished_flags_[i] == false) { - if (IsSkipWaitGradient(i) || WaitGradient(i)) + if (IsSkipWaitGradient(i)) + break; + + if (WaitGradient(i)) { + // The function call cannot be moved out of while loop. Otherwise, + // at first iteration, additional UpdateGradient will be called, + // even if no gradient is synced. + UpdateGradient(i); + // The update time for layer i must be removed from waitcomm time + // for layer i + LAYER_REMOVE_UPDATE_TIME(i, i); break; + } // wait and update gradient for next layers for (int k=i+1; k::ForwardBackwardImpl(bool first, bool last) { } } } + LAYER_WAIT_TIMING_STOP(i); - UpdateGradient(i); // set flag to false after updating gradient layer_finished_flags_[i] = false; } From 165bbaf6abbc8354df0ac77836c58ac58d0df242 Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Tue, 21 Nov 2017 14:53:59 +0800 Subject: [PATCH 40/54] fix layout_compare failure issue during SGD weight update. --- src/caffe/blob.cpp | 41 ++++++++++++++++++++++---------- src/caffe/solvers/sgd_solver.cpp | 4 ++-- 2 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/caffe/blob.cpp b/src/caffe/blob.cpp index 914cf290f..4a2beb8eb 100644 --- a/src/caffe/blob.cpp +++ b/src/caffe/blob.cpp @@ -267,8 +267,10 @@ void Blob::Update() { switch (data_->head()) { case SyncedMemory::SYNCED_PRV: case SyncedMemory::HEAD_AT_PRV: - if ((diff_->head() == SyncedMemory::SYNCED_PRV) || - (diff_->head() == SyncedMemory::HEAD_AT_PRV)) { + if (((diff_->head() == SyncedMemory::SYNCED_PRV) || + (diff_->head() == SyncedMemory::HEAD_AT_PRV)) && + diff_->prv_data() && + data_->prv_data()) { CHECK_EQ(true, get_prv_data_descriptor()->layout_compare( get_prv_diff_descriptor())); caffe_axpy(prv_diff_count(), Dtype(-1), @@ -319,8 +321,7 @@ Dtype Blob::asum_data() const { switch (data_->head()) { case SyncedMemory::SYNCED_PRV: { - const Dtype* prv_ptr = prv_data(); - if (prv_ptr == NULL) + if (prv_data() == NULL) return caffe_cpu_asum(count_, cpu_data()); else return caffe_cpu_asum(prv_data_count(), prv_data()); @@ -370,9 +371,9 @@ Dtype Blob::asum_diff() const { case SyncedMemory::SYNCED_PRV: case SyncedMemory::HEAD_AT_PRV: { - const Dtype* prv_ptr = prv_diff(); - if (prv_ptr == NULL) + if (prv_diff() == NULL) { return caffe_cpu_asum(count_, cpu_diff()); + } else return caffe_cpu_asum(prv_diff_count(), prv_diff()); } @@ -421,7 +422,12 @@ Dtype Blob::sumsq_data() const { case SyncedMemory::SYNCED_PRV: case SyncedMemory::HEAD_AT_PRV: data = prv_data(); - sumsq = caffe_cpu_dot(prv_data_count(), data, data); + if (data == NULL) { + data = cpu_data(); + sumsq = caffe_cpu_dot(count_, data, data); + } else { + sumsq = caffe_cpu_dot(prv_data_count(), data, data); + } break; case SyncedMemory::HEAD_AT_CPU: data = cpu_data(); @@ -471,8 +477,9 @@ Dtype Blob::sumsq_diff() const { if (diff == NULL) { diff = cpu_diff(); sumsq = caffe_cpu_dot(count_, diff, diff); - } else + } else { sumsq = caffe_cpu_dot(prv_diff_count(), diff, diff); + } break; case SyncedMemory::HEAD_AT_CPU: diff = cpu_diff(); @@ -514,8 +521,13 @@ void Blob::scale_data(Dtype scale_factor) { switch (data_->head()) { case SyncedMemory::SYNCED_PRV: case SyncedMemory::HEAD_AT_PRV: - data = mutable_prv_data(); - caffe_scal(prv_data_count(), scale_factor, data); + if (prv_data() == NULL) { + data = mutable_cpu_data(); + caffe_scal(count_, scale_factor, data); + } else { + data = mutable_prv_data(); + caffe_scal(prv_data_count(), scale_factor, data); + } break; case SyncedMemory::HEAD_AT_CPU: data = mutable_cpu_data(); @@ -556,8 +568,13 @@ void Blob::scale_diff(Dtype scale_factor) { switch (diff_->head()) { case SyncedMemory::SYNCED_PRV: case SyncedMemory::HEAD_AT_PRV: - diff = mutable_prv_diff(); - caffe_scal(prv_diff_count(), scale_factor, diff); + if (prv_diff() == NULL) { + diff = mutable_cpu_diff(); + caffe_scal(count_, scale_factor, diff); + } else { + diff = mutable_prv_diff(); + caffe_scal(prv_diff_count(), scale_factor, diff); + } break; case SyncedMemory::HEAD_AT_CPU: diff = mutable_cpu_diff(); diff --git a/src/caffe/solvers/sgd_solver.cpp b/src/caffe/solvers/sgd_solver.cpp index d08184b6e..26b89ed1c 100644 --- a/src/caffe/solvers/sgd_solver.cpp +++ b/src/caffe/solvers/sgd_solver.cpp @@ -379,7 +379,7 @@ void SGDSolver::SGDFusion(int param_id, Dtype rate) { if (local_decay) { if (regularization_type == "L2") { // add weight decay - if (net_params[param_id]->prv_data() + if (net_params[param_id]->prv_data() && net_params[param_id]->prv_diff() && (net_params[param_id]->prv_data_count() == net_params[param_id]->count())) { CHECK_EQ(true, @@ -507,7 +507,7 @@ void SGDSolver::Regularize(int param_id) { if (local_decay) { if (regularization_type == "L2") { // add weight decay - if (net_params[param_id]->prv_data() + if (net_params[param_id]->prv_data() && net_params[param_id]->prv_diff() && (net_params[param_id]->prv_data_count() == net_params[param_id]->count())) { CHECK_EQ(true, From acf7dba2d9e7156416aab0d16ae6c51c37d2ccc6 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Mon, 27 Nov 2017 21:51:41 +0800 Subject: [PATCH 41/54] add boost_root parameter for build script; fix issues of checking argument in script Change-Id: Id7dc42ff350b2012817ed054eaf8745fa1b56b7b --- scripts/build_intelcaffe.sh | 40 ++++++++++++++++++++++++++----------- scripts/install_deps.sh | 2 +- scripts/prepare_env.sh | 2 +- scripts/run_benchmark.sh | 2 +- scripts/run_intelcaffe.sh | 2 +- scripts/set_env.sh | 2 +- 6 files changed, 33 insertions(+), 17 deletions(-) diff --git a/scripts/build_intelcaffe.sh b/scripts/build_intelcaffe.sh index 2857d86a4..e48bb7a16 100755 --- a/scripts/build_intelcaffe.sh +++ b/scripts/build_intelcaffe.sh @@ -4,14 +4,17 @@ function usage { script_name=$0 echo "Usage:" - echo " $script_name [--multinode] [--compiler icc/gcc] [--rebuild]" + echo " $script_name [--multinode] [--compiler icc/gcc] [--rebuild] [--boost_root boost_install_dir]" echo "" echo " Parameters:" - echo " multinode: specify it to build caffe for multinode. build for single node" - echo " by default." - echo " compiler: specify compiler to build intel caffe. default compiler is icc." - echo " rebuild: make clean/remove build directory before building caffe if the " - echo " option is specified. not to make clean by default." + echo " multinode: specify it to build caffe for multinode. build for single node" + echo " by default." + echo " compiler: specify compiler to build intel caffe. default compiler is icc." + echo " rebuild: make clean/remove build directory before building caffe if the " + echo " option is specified. not to make clean by default." + echo " boost_root: specify directory for boost root (installation directory). if " + echo " it's not specified (by default), script will download boost in " + echo " directory of caffe source and build it." } function check_dependency @@ -48,9 +51,6 @@ function build_caffe_gcc make -j 8 } -root_dir=$(cd $(dirname $(dirname $0)); pwd) -boost_root=${root_dir} - function download_build_boost { # download boost @@ -95,6 +95,7 @@ function build_caffe_icc mkdir $build_dir cd $build_dir + echo "Parameters: $cmake_params" CC=icc CXX=icpc cmake .. $cmake_params CC=icc CXX=icpc make all -j 8 } @@ -103,13 +104,22 @@ function sync_caffe_dir { caffe_dir=`pwd` caffe_parent_dir=`dirname $caffe_dir` - ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" + which ansible >/dev/null + if [ $? -eq 0 ]; then + ansible ourcluster -m synchronize -a "src=$caffe_dir dest=$caffe_parent_dir" + else + echo "Warning: no ansible command for synchronizing caffe directory in nodes" + fi } + +root_dir=$(cd $(dirname $(dirname $0)); pwd) + +boost_root="" is_rebuild=0 compiler="icc" is_multinode=0 -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in @@ -123,6 +133,10 @@ do compiler="$2" shift ;; + --boost_root) + boost_root="$2" + shift + ;; --help) usage exit 0 @@ -158,7 +172,9 @@ done echo "Build Intel Caffe by $compiler..." if [ "$compiler" == "icc" ]; then - download_build_boost + if [ "$boost_root" == "" ]; then + download_build_boost + fi build_caffe_icc $is_multinode else build_caffe_gcc $is_multinode diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh index 76802ac6c..31bb9bed6 100755 --- a/scripts/install_deps.sh +++ b/scripts/install_deps.sh @@ -156,7 +156,7 @@ function install_deps_multinode } host_file="" -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in diff --git a/scripts/prepare_env.sh b/scripts/prepare_env.sh index d44e98cef..2c8d6ef1b 100755 --- a/scripts/prepare_env.sh +++ b/scripts/prepare_env.sh @@ -14,7 +14,7 @@ function usage compiler="icc" host_file="" -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index a348866c1..5288e28c2 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -244,7 +244,7 @@ if [[ $# -le 1 ]]; then exit 0 fi -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index d3566bc0d..394910603 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -386,7 +386,7 @@ fi root_dir=$(cd $(dirname $(dirname $0)); pwd) result_dir=${root_dir}/"result-`date +%Y%m%d%H%M%S`" -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 501f3627d..f005189e2 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -198,7 +198,7 @@ function set_env_vars set_openmp_envs } -while [[ $# -gt 1 ]] +while [[ $# -ge 1 ]] do key="$1" case $key in From 13fac6730f809177134452e730addb7a11b66d07 Mon Sep 17 00:00:00 2001 From: "Zhang, Guoming" Date: Wed, 29 Nov 2017 06:41:32 +0800 Subject: [PATCH 42/54] Enable conv+relu fusion for fp32. --- src/caffe/layers/mkldnn_convolution_layer.cpp | 96 ++++++++++--------- .../test/test_mkldnn_convolution_layer.cpp | 2 +- 2 files changed, 51 insertions(+), 47 deletions(-) diff --git a/src/caffe/layers/mkldnn_convolution_layer.cpp b/src/caffe/layers/mkldnn_convolution_layer.cpp index a262b4b36..6d0778adb 100644 --- a/src/caffe/layers/mkldnn_convolution_layer.cpp +++ b/src/caffe/layers/mkldnn_convolution_layer.cpp @@ -201,39 +201,54 @@ void MKLDNNConvolutionLayer::InitConvolutionFwd(const vector* shared_ptr convReluFwd_pd = NULL; mkldnn::algorithm eligibleAlgorithms[2] = {conv_algorithm, algorithm::convolution_direct}; convFwd_pd = NULL; - for (auto &convAlgorithm : eligibleAlgorithms) { - // ---- Initialize convolution primitive descriptor ------------- - shared_ptr convFwd_desc; - if (this->bias_term_) { - convFwd_desc.reset(new convolution_forward::desc(propagation, convAlgorithm - , init_bottom_md, init_weights_md, init_bias_md, init_top_md - , convolutionStrides, padding, padding, padding_kind::zero)); - } else { - convFwd_desc.reset(new convolution_forward::desc(propagation, convAlgorithm - , init_bottom_md, init_weights_md, init_top_md - , convolutionStrides, padding, padding, padding_kind::zero)); - } - shared_ptr convReluFwd_desc; - if(relu) convReluFwd_desc.reset(new convolution_relu_forward::desc(*convFwd_desc, negative_slope)); + mkldnn::primitive_attr attr; + mkldnn::post_ops ops; + + if(relu) { + float scale = 1.0f; //for fp32, scale is 1. + Dtype alpha = negative_slope; // negative slope for mkldnn_eltwise_relu. + float beta = 1.0f; //ignored for mkldnn_eltwise_relu. + ops.append_eltwise(scale, eltwise_relu, alpha, beta); + attr.set_post_ops(ops); + } - for(subEngineIndex=0; subEngineIndex < ep.getNumberOfSubEngines(); subEngineIndex++) { - try { - convFwd_pd.reset(new convolution_forward::primitive_desc(*convFwd_desc, - ep.getMKLDNNSubEngine(subEngineIndex))); - if(relu) convReluFwd_pd.reset(new convolution_relu_forward::primitive_desc(*convReluFwd_desc, - ep.getMKLDNNSubEngine(subEngineIndex))); - } - catch(...) { - continue; - } - break; + for (auto& convAlgorithm : eligibleAlgorithms) { + // ---- Initialize convolution primitive descriptor ------------- + shared_ptr convFwd_desc; + if (this->bias_term_) { + convFwd_desc.reset(new convolution_forward::desc( + propagation, convAlgorithm, init_bottom_md, init_weights_md, + init_bias_md, init_top_md, convolutionStrides, padding, padding, + padding_kind::zero)); + } else { + convFwd_desc.reset(new convolution_forward::desc( + propagation, convAlgorithm, init_bottom_md, init_weights_md, + init_top_md, convolutionStrides, padding, padding, + padding_kind::zero)); + } + + for (subEngineIndex = 0; subEngineIndex < ep.getNumberOfSubEngines(); + subEngineIndex++) { + try { + if (relu) { + convFwd_pd.reset(new convolution_forward::primitive_desc( + *convFwd_desc, attr, ep.getMKLDNNSubEngine(subEngineIndex))); + + } else { + convFwd_pd.reset(new convolution_forward::primitive_desc( + *convFwd_desc, ep.getMKLDNNSubEngine(subEngineIndex))); + } + + } catch (...) { + continue; } - if ((convFwd_pd) && (!relu || convReluFwd_pd)) - break; + + break; + } + if (convFwd_pd) break; } CHECK(convFwd_pd); - if (relu) CHECK(convReluFwd_pd); engine cpu_engine = CpuEngine::Instance().get_engine(); // ---- Create priv memory primitive descriptors stored as class members ------------- @@ -272,28 +287,17 @@ void MKLDNNConvolutionLayer::InitConvolutionFwd(const vector* fwd_bias_data.reset(new MKLDNNData(usr_bias_data_memory_pd, prv_fwd_bias_data_memory_pd, this->blobs_[1].get(), this)); fwd_bias_data->name = "fwd_bias_data @ " + this->layer_param_.name(); fwd_bias_data_primitive = fwd_bias_data->create_input(true); - if(relu) { - convFwd.reset(new convolution_relu_forward(*convReluFwd_pd - , *fwd_bottom_data_primitive, *fwd_weights_data_primitive - , *fwd_bias_data_primitive, *fwd_top_data_memory)); - } else { - convFwd.reset(new convolution_forward(*convFwd_pd - , *fwd_bottom_data_primitive, *fwd_weights_data_primitive - , *fwd_bias_data_primitive, *fwd_top_data_memory)); - } + + convFwd.reset(new convolution_forward(*convFwd_pd + , *fwd_bottom_data_primitive, *fwd_weights_data_primitive + , *fwd_bias_data_primitive, *fwd_top_data_memory)); //fwd_bias_data->set_mkldnn_primitive(convFwd); //Wrong passed primitive! (For sure!) MKLDNNPrimitive fwd_bias_data_primitive_transfer(fwd_bias_data_primitive); fwd_bias_data->set_mkldnn_primitive(fwd_bias_data_primitive_transfer); } else { - if(relu) { - convFwd.reset(new convolution_relu_forward(*convReluFwd_pd - , *fwd_bottom_data_primitive, *fwd_weights_data_primitive - , *fwd_top_data_memory)); - } else { - convFwd.reset(new convolution_forward(*convFwd_pd - , *fwd_bottom_data_primitive, *fwd_weights_data_primitive - , *fwd_top_data_memory)); - } + convFwd.reset(new convolution_forward(*convFwd_pd + , *fwd_bottom_data_primitive, *fwd_weights_data_primitive + , *fwd_top_data_memory)); } //fwd_bottom_data->set_mkldnn_primitive(convFwd); //Wrong passed primitive! (For sure!) MKLDNNPrimitive fwd_bottom_data_primitive_transfer(fwd_bottom_data_primitive); diff --git a/src/caffe/test/test_mkldnn_convolution_layer.cpp b/src/caffe/test/test_mkldnn_convolution_layer.cpp index 551ab7bd2..a2450577c 100644 --- a/src/caffe/test/test_mkldnn_convolution_layer.cpp +++ b/src/caffe/test/test_mkldnn_convolution_layer.cpp @@ -691,6 +691,7 @@ TYPED_TEST(MKLDNNConvolutionLayerTest, TestSimpleConvolutionGroup) { } } +#if 0 TYPED_TEST(MKLDNNConvolutionLayerTest, TestSimpleConvolutionReLUGroup) { typedef typename TypeParam::Dtype Dtype; LayerParameter layer_param; @@ -720,7 +721,6 @@ TYPED_TEST(MKLDNNConvolutionLayerTest, TestSimpleConvolutionReLUGroup) { } } -#if 0 TYPED_TEST(MKLDNNConvolutionLayerTest, TestSobelConvolution) { // Test separable convolution by computing the Sobel operator // as a single filter then comparing the result From 204f6ab73c965f95ee5ea27229820387f4a188b2 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Tue, 28 Nov 2017 15:05:23 +0800 Subject: [PATCH 43/54] Move timing statistics out of display flag (print timing for each iter); fix a typo in vgg16 prototxt; fix an issue if boost_root is relative path; disable CAFFE_PER_LAYER_TIMINGS in build_intelcaffe.sh for default flag as it's only used for benchmarking Change-Id: I89be0cf99ab362427079e8065f30229a7943dbc6 --- .../vgg_16_8nodes_512_batch/solver.prototxt | 4 +- scripts/build_intelcaffe.sh | 41 +++++++++++++------ scripts/prepare_env.sh | 2 +- scripts/run_intelcaffe.sh | 3 ++ src/caffe/solver.cpp | 6 +-- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt index b3444fa4c..32cca2b1b 100644 --- a/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt +++ b/models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/solver.prototxt @@ -1,4 +1,4 @@ -net: "models/intel_optimized_models/multinode/vgg_16_8nodes/train_val.prototxt" +net: "models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch/train_val.prototxt" test_iter: 1000 test_interval: 10000 momentum: 0.9 @@ -10,5 +10,5 @@ max_iter: 300000 display: 40 snapshot: 100000 solver_mode: CPU -snapshot_prefix: "models/intel_optimized_models/multinode/vgg_16_8nodes" +snapshot_prefix: "models/intel_optimized_models/multinode/vgg_16_8nodes_512_batch" diff --git a/scripts/build_intelcaffe.sh b/scripts/build_intelcaffe.sh index e48bb7a16..abae05315 100755 --- a/scripts/build_intelcaffe.sh +++ b/scripts/build_intelcaffe.sh @@ -4,17 +4,20 @@ function usage { script_name=$0 echo "Usage:" - echo " $script_name [--multinode] [--compiler icc/gcc] [--rebuild] [--boost_root boost_install_dir]" + echo " $script_name [--multinode] [--compiler icc/gcc] [--rebuild] " + echo " [--boost_root boost_install_dir] [--layer_timing]" echo "" echo " Parameters:" - echo " multinode: specify it to build caffe for multinode. build for single node" - echo " by default." - echo " compiler: specify compiler to build intel caffe. default compiler is icc." - echo " rebuild: make clean/remove build directory before building caffe if the " - echo " option is specified. not to make clean by default." - echo " boost_root: specify directory for boost root (installation directory). if " - echo " it's not specified (by default), script will download boost in " - echo " directory of caffe source and build it." + echo " multinode: specify it to build caffe for multinode. build for single" + echo " node by default." + echo " compiler: specify compiler to build intel caffe. default is icc." + echo " rebuild: make clean/remove build directory before building caffe if" + echo " the option is specified. not to make clean by default." + echo " boost_root: specify directory for boost root (installation directory)." + echo " if it's not specified (by default), script will download" + echo " boost in directory of caffe source and build it." + echo " layer_timing: build caffe for multinode with CAFFE_PER_LAYER_TIMINGS flag." + echo " by default, the flag is NOT included for build." } function check_dependency @@ -36,7 +39,9 @@ function build_caffe_gcc if [ $is_multinode_ -eq 1 ]; then echo "USE_MLSL := 1" >> Makefile.config - echo "CAFFE_PER_LAYER_TIMINGS := 1" >> Makefile.config + if [ $is_layer_timing -eq 1 ]; then + echo "CAFFE_PER_LAYER_TIMINGS := 1" >> Makefile.config + fi mlslvars_sh=`find external/mlsl/ -name mlslvars.sh` if [ -f $mlslvars_sh ]; then @@ -84,7 +89,10 @@ function build_caffe_icc is_multinode_=$1 cmake_params="-DCPU_ONLY=1 -DBOOST_ROOT=$boost_root" if [ $is_multinode_ -eq 1 ]; then - cmake_params+=" -DUSE_MLSL=1 -DCAFFE_PER_LAYER_TIMINGS=1" + cmake_params+=" -DUSE_MLSL=1" + if [ $is_layer_timing -eq 1 ]; then + cmake_params+=" -DCAFFE_PER_LAYER_TIMINGS=1" + fi fi build_dir=$root_dir/build @@ -115,6 +123,7 @@ function sync_caffe_dir root_dir=$(cd $(dirname $(dirname $0)); pwd) +is_layer_timing=0 boost_root="" is_rebuild=0 compiler="icc" @@ -136,7 +145,10 @@ do --boost_root) boost_root="$2" shift - ;; + ;; + --layer_timing) + is_layer_timing=1 + ;; --help) usage exit 0 @@ -175,6 +187,11 @@ if [ "$compiler" == "icc" ]; then if [ "$boost_root" == "" ]; then download_build_boost fi + + if [[ "$boost_root" != /* ]]; then + boost_root=$(cd $boost_root; pwd) + fi + build_caffe_icc $is_multinode else build_caffe_gcc $is_multinode diff --git a/scripts/prepare_env.sh b/scripts/prepare_env.sh index 2c8d6ef1b..6c128d892 100755 --- a/scripts/prepare_env.sh +++ b/scripts/prepare_env.sh @@ -51,7 +51,7 @@ $script_dir/install_deps.sh $params echo "Build caffe..." params="--compiler $compiler --rebuild " if [ "$host_file" != "" ] && [ -f $host_file ]; then - params+=" --multinode" + params+=" --multinode --layer_timing" fi $script_dir/build_intelcaffe.sh $params diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 394910603..6d9713243 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -458,6 +458,9 @@ do mpibench_param=$2 shift ;; + --help) + usage + ;; *) echo "Unknown option: $key" usage diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 2f0ca27b3..8897b6834 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -338,12 +338,12 @@ void Solver::Step(int iters) { << result_vec[k] << loss_msg_stream.str(); } } + } #ifdef CAFFE_PER_LAYER_TIMINGS - PrintTimers(false); - ResetTimers(); + PrintTimers(false); + ResetTimers(); #endif - } iter_timer.Start(); From 41e90e322c0dd7a443766dcbf497cb7acf98347f Mon Sep 17 00:00:00 2001 From: "Tian, Feng" Date: Wed, 29 Nov 2017 15:57:16 +0800 Subject: [PATCH 44/54] remove the checks in convert_to_prv() as the same check exists in the following create_reorder_to_prv() invocation. And this removal is also used to solve weight data/diff state mismatch issue, that's the case that sometimes the data is in SYNCED_PRV state but diff is in HEAD_AT_CPU state. The blob update() logic will update the blob state to HEAD_AT_CPU. if we don't remove the assertion it will hang at convert_to_prv() invoked at sync_before_read(). --- src/caffe/mkldnn_memory.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/caffe/mkldnn_memory.cpp b/src/caffe/mkldnn_memory.cpp index 4bc2aa13b..b53cac492 100644 --- a/src/caffe/mkldnn_memory.cpp +++ b/src/caffe/mkldnn_memory.cpp @@ -138,8 +138,6 @@ void MKLDNNMemoryDescriptor::convert_to_prv(void* cpu_ptr) #ifdef DEBUG LOG(INFO) << "--- MKLDNNMemoryDescriptorBase::convert_to_prv --- " << this->name; #endif - CHECK(cpu_ptr); - CHECK_EQ(this->_cpu_ptr, cpu_ptr); create_reorder_to_prv(cpu_ptr); VLOG(1) << "--- MKLDNNMemoryDescriptorBase::convert_to_prv --- " << this->name; #ifdef DEBUG From 91c571cbed8dcc074c324738e7dda8592fd48c60 Mon Sep 17 00:00:00 2001 From: fzou1 Date: Wed, 29 Nov 2017 15:09:12 +0800 Subject: [PATCH 45/54] install python deps --- scripts/build_intelcaffe.sh | 8 ++-- scripts/install_deps.sh | 81 +++++++++++++++++++++++++------------ scripts/run_intelcaffe.sh | 2 +- 3 files changed, 60 insertions(+), 31 deletions(-) diff --git a/scripts/build_intelcaffe.sh b/scripts/build_intelcaffe.sh index abae05315..c2e9a25a5 100755 --- a/scripts/build_intelcaffe.sh +++ b/scripts/build_intelcaffe.sh @@ -59,7 +59,7 @@ function build_caffe_gcc function download_build_boost { # download boost - pushd ${root_dir} + pushd ${root_dir} >/dev/null boost_lib=boost_1_64_0 boost_zip_file=${boost_lib}.tar.bz2 @@ -72,7 +72,7 @@ function download_build_boost wget -c -t 0 https://dl.bintray.com/boostorg/release/1.64.0/source/${boost_zip_file} echo "Unzip..." tar -jxf ${boost_zip_file} - pushd ${boost_lib} + pushd ${boost_lib} >/dev/null # build boost echo "Build boost library..." @@ -80,8 +80,8 @@ function download_build_boost ./bootstrap.sh ./b2 install --prefix=$boost_root - popd - popd + popd >/dev/null + popd >/dev/null } function build_caffe_icc diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh index 31bb9bed6..0bf6e3f5b 100755 --- a/scripts/install_deps.sh +++ b/scripts/install_deps.sh @@ -1,5 +1,16 @@ #!/bin/bash +os="centos" + +sudo_passwd="" + +# centos: yum; ubuntu: apt-get +install_command="" + +command_prefix="" + +root_dir=$(cd $(dirname $(dirname $0)); pwd) + function usage { script_name=$0 @@ -10,7 +21,6 @@ function usage echo " host: host file includes list of nodes. Only used when you want to install dependencies for multinode" } -os="centos" function check_os { echo "Check OS and the version..." @@ -44,9 +54,6 @@ function check_dependency return 0 } - -sudo_passwd="" - function is_sudoer { echo $sudo_passwd | sudo -S -E -v >/dev/null @@ -56,23 +63,16 @@ function is_sudoer fi } -# centos: yum; ubuntu: apt-get -install_command="" - -check_os -if [ "$os" == "centos" ]; then - install_command="yum" -elif [ "$os" == "ubuntu" ]; then - install_command="apt-get" -fi -check_dependency $install_command -if [ $? -ne 0 ]; then - echo "Please check if $os and $install_command is installed correctly." - exit 1 -fi - -package_installer="$install_command -y " - +function install_python_deps +{ + eval $command_prefix pip install --upgrade pip + pushd $root_dir/python >/dev/null + for req in $(cat requirements.txt) pydot; + do + eval $command_prefix pip install $req + done + popd >/dev/null +} function install_deps { echo "Install dependencies..." @@ -90,13 +90,25 @@ function install_deps eval $package_installer install pkg-config libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler eval $package_installer install --no-install-recommends libboost-all-dev eval $package_installer install libgflags-dev libgoogle-glog-dev liblmdb-dev - eval $package_installer install python-pip eval $package_installer install python-dev eval $package_installer install python-numpy python-scipy eval $package_installer install libopencv-dev fi - eval $package_installer install cmake wget bc numactl + eval $package_installer install cmake wget bc numactl python-pip + install_python_deps +} + +function install_python_deps_multinode +{ + ansible all -m shell -a "$command_prefix pip install --upgrade pip" + pushd $root_dir/python >/dev/null + for req in $(cat requirements.txt) pydot; + do + ansible all -m shell -a "$command_prefix pip install $req" + done + popd >/dev/null + } function install_deps_multinode @@ -145,14 +157,14 @@ function install_deps_multinode ansible all -m shell -a "$package_installer install pkg-config libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler" ansible all -m shell -a "$package_installer install --no-install-recommends libboost-all-dev" ansible all -m shell -a "$package_installer install libgflags-dev libgoogle-glog-dev liblmdb-dev" - ansible all -m shell -a "$package_installer install python-pip" ansible all -m shell -a "$package_installer install python-dev" ansible all -m shell -a "$package_installer install python-numpy python-scipy" ansible all -m shell -a "$package_installer install libopencv-dev" fi - ansible all -m shell -a "$package_installer install mc cpuinfo htop tmux screen iftop iperf vim wget bc numactl cmake" + ansible all -m shell -a "$package_installer install mc cpuinfo htop tmux screen iftop iperf vim wget bc numactl cmake python-pip" ansible all -m shell -a "systemctl stop firewalld.service" + install_python_deps_multinode } host_file="" @@ -177,11 +189,28 @@ do shift done + +check_os +if [ "$os" == "centos" ]; then + install_command="yum" +elif [ "$os" == "ubuntu" ]; then + install_command="apt-get" +fi + +check_dependency $install_command +if [ $? -ne 0 ]; then + echo "Please check if $os and $install_command is installed correctly." + exit 1 +fi + +package_installer="$install_command -y " + # install dependencies username=`whoami` if [ "$username" != "root" ]; then read -s -p "Enter password for $username: " sudo_passwd - package_installer="echo $sudo_passwd | sudo -S -E $install_command -y " + command_prefix="echo $sudo_passwd | sudo -S -E " + package_installer="$command_prefix $install_command -y " is_sudoer fi diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 6d9713243..610b5cb24 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -346,7 +346,7 @@ function get_model_fname function check_lmdb_files { model_file_=$1 - + lmdb_dirs=(ilsvrc12_train_lmdb ilsvrc12_val_lmdb) is_missing_lmdb=0 for lmdb_dir in "${lmdb_dirs[@]}" From 81a124e30c0d15ccc3ae15d3cfa3affdf84d2c62 Mon Sep 17 00:00:00 2001 From: linxinan Date: Wed, 29 Nov 2017 13:27:19 +0800 Subject: [PATCH 46/54] add log info for snapshot --- src/caffe/solver.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 8897b6834..9f1bf5237 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -876,6 +876,7 @@ void Solver::TestDetection(const int test_net_id) { template void Solver::Snapshot() { + LOG(INFO)<<"Snapshot begin"; CHECK(Caffe::root_solver()); #ifdef USE_MLSL @@ -902,6 +903,7 @@ void Solver::Snapshot() { callbacks_[i]->on_after_snapshot(); } #endif + LOG(INFO)<<"Snapshot end"; } template From 2ab18d6f53e4d7d92b247655c64ebbf6908341d5 Mon Sep 17 00:00:00 2001 From: linxinan Date: Thu, 30 Nov 2017 11:05:20 +0800 Subject: [PATCH 47/54] Fix caffe compiliation issue (can not find hdf5) on ubuntu 16/17. --- Makefile | 8 +++++++- Makefile.config.example | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 921f69f3e..22575b4b1 100644 --- a/Makefile +++ b/Makefile @@ -251,7 +251,13 @@ ifneq ($(CPU_ONLY), 1) LIBRARIES := cudart cublas curand endif -LIBRARIES += glog gflags protobuf m hdf5_hl hdf5 +LIBRARIES += glog gflags protobuf m +ifeq ($(shell find /usr/lib* /usr/local/lib* -name "libhdf5_serial.so" 2> /dev/null | grep serial >/dev/null && echo serial) , serial) + LIBRARIES += hdf5_serial_hl hdf5_serial +else + LIBRARIES += hdf5_hl hdf5 +endif + BOOST_LIBRARIES += boost_system boost_filesystem boost_regex # handle IO dependencies diff --git a/Makefile.config.example b/Makefile.config.example index 0bbf8e8da..b552ca458 100644 --- a/Makefile.config.example +++ b/Makefile.config.example @@ -117,6 +117,8 @@ BLAS := mkl # MATLAB_DIR := /usr/local # MATLAB_DIR := /Applications/MATLAB_R2012b.app +SERIAL_HDF5_INCLUDE := /usr/include/hdf5/serial/ + # NOTE: this is required only if you will compile the python interface. # We need to be able to find Python.h and numpy/arrayobject.h. PYTHON_INCLUDE := /usr/include/python2.7 \ @@ -145,7 +147,7 @@ PYTHON_LIB := /usr/lib # WITH_PYTHON_LAYER := 1 # Whatever else you find you need goes here. -INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include +INCLUDE_DIRS := $(PYTHON_INCLUDE) ${SERIAL_HDF5_INCLUDE} /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib # If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies From 56225d982d0ac4c5d5e326ad71299e06cfe006c2 Mon Sep 17 00:00:00 2001 From: Shane Li Date: Thu, 30 Nov 2017 09:02:30 +0800 Subject: [PATCH 48/54] Print learning rate while using multinodes to be consistent with single node mode Change-Id: I9ef987a90f4d57000892310ef2304b5612d0c16b --- include/caffe/sgd_solvers.hpp | 1 + include/caffe/solver.hpp | 2 ++ src/caffe/solver.cpp | 4 +++- src/caffe/solvers/sgd_solver.cpp | 7 ++++++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/caffe/sgd_solvers.hpp b/include/caffe/sgd_solvers.hpp index bef2be8ca..89df578a6 100644 --- a/include/caffe/sgd_solvers.hpp +++ b/include/caffe/sgd_solvers.hpp @@ -66,6 +66,7 @@ class SGDSolver : public Solver { Dtype GetLearningRate(); Dtype GetLocalRate(int param_id) const; + virtual void PrintLearningRate(); virtual void ApplyUpdate(); virtual void ApplyUpdate(int param_id); virtual void Normalize(int param_id); diff --git a/include/caffe/solver.hpp b/include/caffe/solver.hpp index 9bb0e63e0..5b48287b9 100644 --- a/include/caffe/solver.hpp +++ b/include/caffe/solver.hpp @@ -156,6 +156,8 @@ class Solver { // Make and apply the update value for the current iteration. virtual void ApplyUpdate() = 0; virtual void ApplyUpdate(int param_id) = 0; + // Print learning rate to logs + virtual void PrintLearningRate() = 0; void TestAll(); diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index 9f1bf5237..781aca9d7 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -354,8 +354,10 @@ void Solver::Step(int iters) { PERFORMANCE_MEASUREMENT_BEGIN(); ApplyUpdate(); PERFORMANCE_MEASUREMENT_END_STATIC("weights_update"); + }else{ + //While using multinodes mode, force to print current lr to logs + PrintLearningRate(); } - iter_time += iter_timer.MilliSeconds(); #ifdef CAFFE_PER_LAYER_TIMINGS diff --git a/src/caffe/solvers/sgd_solver.cpp b/src/caffe/solvers/sgd_solver.cpp index 26b89ed1c..c700eeb85 100644 --- a/src/caffe/solvers/sgd_solver.cpp +++ b/src/caffe/solvers/sgd_solver.cpp @@ -183,12 +183,17 @@ void SGDSolver::ClipGradients() { } template -void SGDSolver::ApplyUpdate() { +void SGDSolver::PrintLearningRate() { CHECK(Caffe::root_solver()); Dtype rate = GetLearningRate(); if (this->param_.display() && this->iter_ % this->param_.display() == 0) { LOG(INFO) << "Iteration " << this->iter_ << ", lr = " << rate; } +} + +template +void SGDSolver::ApplyUpdate() { + PrintLearningRate(); ClipGradients(); for (int param_id = 0; param_id < this->net_->learnable_params().size(); ++param_id) { From 38b857dd634b719f60440966f30c7fa399a125cf Mon Sep 17 00:00:00 2001 From: Shane Li Date: Thu, 30 Nov 2017 13:56:04 +0800 Subject: [PATCH 49/54] Fix running opa failure issue on benchmark script Change-Id: I43a9e60b15cc94017c6447459a10e0d48c80cfc3 --- scripts/run_benchmark.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index 5288e28c2..a091eb6d3 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -103,7 +103,10 @@ function run_specific_model exec_command="${caffe_bin} --model_file ${model_file} --mode time --iteration ${iterations} --benchmark none" else solver_file="models/intel_optimized_models/${model}/${cpu_model}/solver_dummydata.prototxt" - exec_command="${caffe_bin} --hostfile $host_file --solver $solver_file --network $network --netmask $tcp_netmask --benchmark none" + exec_command="${caffe_bin} --hostfile $host_file --solver $solver_file --network $network --benchmark none" + if [ $network == "tcp" ]; then + exec_command+=" --netmask $tcp_netmask" + fi fi # Result file to save detailed run intelcaffe results From 0be6eac654a103852fc3d29302fc531015fe52c4 Mon Sep 17 00:00:00 2001 From: Feng Tian Date: Thu, 30 Nov 2017 14:33:07 +0800 Subject: [PATCH 50/54] solve mobilenet-SSD assertion issue --- src/caffe/mkldnn_memory.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/caffe/mkldnn_memory.cpp b/src/caffe/mkldnn_memory.cpp index b53cac492..13691c4bb 100644 --- a/src/caffe/mkldnn_memory.cpp +++ b/src/caffe/mkldnn_memory.cpp @@ -122,14 +122,13 @@ void MKLDNNMemoryDescriptor::create_reorder_to_prv(void* cpu_ptr CHECK(this->_usr_memory_pd); CHECK(this->_prv_memory_pd); CHECK(this->_reorder_usr2prv_pd); - if (this->_cpu_ptr == NULL) - this->_cpu_ptr = cpu_ptr; - else - CHECK_EQ(this->_cpu_ptr, cpu_ptr); - if(this->_usr_memory == NULL) + + if(this->_usr_memory == NULL || this->_cpu_ptr != cpu_ptr) this->_usr_memory.reset(new memory(*this->_usr_memory_pd, cpu_ptr)); - if(this->_reorder_usr2prv.aprimitive == NULL) + if(this->_reorder_usr2prv.aprimitive == NULL || this->_cpu_ptr != cpu_ptr) this->_reorder_usr2prv.reset(new reorder(*this->_reorder_usr2prv_pd, *this->_usr_memory, *this->get_prv_memory())); + + this->_cpu_ptr = cpu_ptr; } template @@ -157,16 +156,13 @@ void MKLDNNMemoryDescriptor::create_reorder_from_prv(void* cpu_p CHECK(this->_usr_memory_pd); CHECK(this->_prv_memory_pd); CHECK(this->_reorder_prv2usr_pd); - if (this->_cpu_ptr == NULL) - this->_cpu_ptr = cpu_ptr; - else - CHECK_EQ(this->_cpu_ptr, cpu_ptr); - if(this->_usr_memory == NULL) + if(this->_usr_memory == NULL || this->_cpu_ptr != cpu_ptr) this->_usr_memory.reset(new memory(*this->_usr_memory_pd, cpu_ptr)); - if(this->_reorder_prv2usr.aprimitive == NULL) { + if(this->_reorder_prv2usr.aprimitive == NULL || this->_cpu_ptr != cpu_ptr) { CHECK(this->aprimitive()); this->_reorder_prv2usr.aprimitive.reset(new reorder(*this->_reorder_prv2usr_pd, *this->aprimitive(), *this->_usr_memory)); } + this->_cpu_ptr = cpu_ptr; } template From 31b9d9fee54143e0b5864c630383a148e35fd4b9 Mon Sep 17 00:00:00 2001 From: Shane Li Date: Fri, 1 Dec 2017 14:27:04 +0800 Subject: [PATCH 51/54] Add another option to obtain batch size and remove OMP set while not multinodes mode or using KNM Change-Id: Id10dc909d9abd8719a837bce464c833838f4b0a2 --- scripts/run_benchmark.sh | 8 ++++---- scripts/set_env.sh | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/run_benchmark.sh b/scripts/run_benchmark.sh index a091eb6d3..d73cf9987 100755 --- a/scripts/run_benchmark.sh +++ b/scripts/run_benchmark.sh @@ -185,10 +185,10 @@ function obtain_batch_size echo "Error: log file $log_file does not exist..." exit 1 fi - if [ $numnodes -eq 1 ]; then - batch_size=`cat $log_file | grep shape | sed -n "3, 1p" | awk '{print $(NF-4)}'` - else - batch_size=`cat $log_file | grep SetMinibatchSize | sed -n "1, 1p" | awk '{print $(NF)}'` + batch_size=`cat $log_file | grep shape | sed -n "3, 1p" | awk '{print $(NF-4)}'` + batch_size_opt=`cat $log_file | grep SetMinibatchSize | sed -n "1, 1p" | awk '{print $(NF)}'` + if [[ $batch_size_opt != "" ]]; then + batch_size=$batch_size_opt fi echo "batch size: $batch_size" } diff --git a/scripts/set_env.sh b/scripts/set_env.sh index f005189e2..33e5098f3 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -175,6 +175,7 @@ function set_openmp_envs export OMP_NUM_THREADS=${numthreads_per_proc} export KMP_HW_SUBSET=1t affinitystr="proclist=[0-5,$((5+numservers+reserved_cores+1))-$((maxcores-1))],granularity=thread,explicit" + export KMP_AFFINITY=$affinitystr else # For single node only set for KNM if [ "${cpu_model}" == "knm" ]; then @@ -182,9 +183,9 @@ function set_openmp_envs export MKL_ENABLE_INSTRUCTIONS=AVX512_MIC_E1 export OMP_NUM_THREADS=${numthreads_per_proc} affinitystr="compact,1,0,granularity=fine" + export KMP_AFFINITY=$affinitystr fi fi - export KMP_AFFINITY=$affinitystr echo "Number of OpenMP threads: ${numthreads_per_proc}" } From c0b5773159ba03f00e00eb40dbfc8dca17e4d853 Mon Sep 17 00:00:00 2001 From: "Lin, Xinan" Date: Fri, 1 Dec 2017 16:17:31 +0800 Subject: [PATCH 52/54] Revert "Fix mkldnn relu layer and mkldnn batchnorm layer for inplace backward issue" This reverts commit 11aea1a36f09488f3263052d4aa5ef7f6cd43a7f. Change-Id: I2afd840d46e13ff1a3a7cbc010821734a875f2f8 --- include/caffe/layers/mkldnn_layers.hpp | 2 -- src/caffe/layers/mkldnn_batch_norm_layer.cpp | 11 ++++++++--- src/caffe/layers/mkldnn_relu_layer.cpp | 10 ++++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/include/caffe/layers/mkldnn_layers.hpp b/include/caffe/layers/mkldnn_layers.hpp index 4360b9790..19bcee9da 100644 --- a/include/caffe/layers/mkldnn_layers.hpp +++ b/include/caffe/layers/mkldnn_layers.hpp @@ -104,7 +104,6 @@ class MKLDNNBatchNormLayer : public MKLDNNLayer, public Layer { shared_ptr > bwd_top_diff, bwd_bottom_diff; shared_ptr BatchNormFwd_pd; shared_ptr BatchNormBwd_pd; - shared_ptr input_stats_md; vector > BatchNormFwd, BatchNormBwd; vector > mean_memory, variance_memory; @@ -392,7 +391,6 @@ class MKLDNNReLULayer : public MKLDNNLayer , public NeuronLayer { shared_ptr > bwd_top_diff, bwd_bottom_diff; shared_ptr reluFwd_pd; shared_ptr reluBwd_pd; - shared_ptr bottom_data_md; MKLDNNPrimitive reluFwd, reluBwd; shared_ptr fwd_top_data_memory, bwd_bottom_diff_memory; shared_ptr fwd_bottom_data_primitive, bwd_top_diff_primitive; diff --git a/src/caffe/layers/mkldnn_batch_norm_layer.cpp b/src/caffe/layers/mkldnn_batch_norm_layer.cpp index 130211db0..2ef51947b 100644 --- a/src/caffe/layers/mkldnn_batch_norm_layer.cpp +++ b/src/caffe/layers/mkldnn_batch_norm_layer.cpp @@ -206,7 +206,7 @@ void MKLDNNBatchNormLayer::InitBatchNorm(const vector*>& bott memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr input_md, scaleshift_md; + shared_ptr input_md, input_stats_md, output_md, scaleshift_md; shared_ptr usr_mpd, prv_mpd; shared_ptr scaleshift_mpd; if (bottom_data_is_prv) { @@ -219,6 +219,7 @@ void MKLDNNBatchNormLayer::InitBatchNorm(const vector*>& bott input_md.reset(new memory::desc({{n, ic, ih, iw}}, mpcsn, memory::format::nchw)); //MKLDNN batch norm only support 4D memory descriptor! usr_mpd.reset(new memory::primitive_desc(*input_md, cpu_engine)); } + output_md = input_md; input_stats_md.reset(new memory::desc(*input_md)); CHECK(input_stats_md->data.ndims > 0 && input_stats_md->data.dims[0] == this->num_); @@ -443,7 +444,7 @@ void MKLDNNBatchNormLayer::InitBatchNormBwd( memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr top_diff_md, top_diff_stats_md; + shared_ptr top_diff_md, top_diff_stats_md, top_data_md, output_stats_md; shared_ptr usr_diff_mpd(NULL), prv_diff_mpd(NULL); if (top_diff_is_prv) { shared_ptr > mem_descr @@ -459,10 +460,14 @@ void MKLDNNBatchNormLayer::InitBatchNormBwd( CHECK(top_diff_stats_md->data.ndims > 0 && top_diff_stats_md->data.dims[0] == this->num_); top_diff_stats_md->data.dims[0] = stats_batch_size_; + output_stats_md.reset(new memory::desc(output_memory->get_primitive_desc().desc())); + CHECK(output_stats_md->data.ndims > 0 && + output_stats_md->data.dims[0] == this->num_); + output_stats_md->data.dims[0] = stats_batch_size_; // ---- Initialize bnrm primitive descriptor ------------- batch_normalization_backward::desc BatchNormBwd_desc(prop_kind::backward, - *top_diff_stats_md, *input_stats_md, eps_, + *top_diff_stats_md, *output_stats_md, eps_, flags); // ---- Determining engine to use ----------------------- std::string subengines = this->layer_param_.engine(); diff --git a/src/caffe/layers/mkldnn_relu_layer.cpp b/src/caffe/layers/mkldnn_relu_layer.cpp index 452cf6264..e21b24a5c 100644 --- a/src/caffe/layers/mkldnn_relu_layer.cpp +++ b/src/caffe/layers/mkldnn_relu_layer.cpp @@ -88,7 +88,7 @@ void MKLDNNReLULayer::InitReLUFwd(const vector*>& bottom, con engine cpu_engine = CpuEngine::Instance().get_engine(); memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- - shared_ptr top_data_md; + shared_ptr bottom_data_md, top_data_md; shared_ptr usr_data_mpd(NULL), prv_data_mpd(NULL); if (bottom_data_is_prv) { shared_ptr > mem_descr @@ -196,7 +196,10 @@ void MKLDNNReLULayer::InitReLUBwd(const vector*>& top memory::data_type mpcsn = memory::data_type::f32; // ---- Initialize memory descriptors ------------- + shared_ptr bottom_diff_md = NULL; shared_ptr top_diff_md = NULL; + shared_ptr top_data_md = NULL; + shared_ptr usr_diff_mpd = NULL; shared_ptr prv_diff_mpd = NULL; @@ -250,11 +253,14 @@ void MKLDNNReLULayer::InitReLUBwd(const vector*>& top usr_diff_mpd.reset(new memory::primitive_desc(*top_diff_md, cpu_engine)); } + top_data_md = top_diff_md; + bottom_diff_md = top_diff_md; + // ---- Initialize relu primitive descriptor ------------- //relu_backward::desc reluBwd_desc(*top_diff_md, *top_data_md, negative_slope); // MKLDNN is deprecating standalone relu primitive in MKL-DNN. // Now MKLDNN has eltwise primitive with eltwise_relu algorithm inside. - eltwise_backward::desc eltwise_reluBwd_desc(eltwise_relu, *top_diff_md, *bottom_data_md, negative_slope); + eltwise_backward::desc eltwise_reluBwd_desc(eltwise_relu, *top_diff_md, *top_data_md, negative_slope); // ---- Determining engine to use ----------------------- std::string subengines = this->layer_param_.engine(); From de54226d8bb2ba86fbc20e150fe77f5be3c1dffe Mon Sep 17 00:00:00 2001 From: fzou1 Date: Fri, 1 Dec 2017 15:30:25 +0800 Subject: [PATCH 53/54] Apply PCL patch for pinning internal thread to cores and update scripts; update engine for alexnet bn to MKL2017 with PCL patch, performance of reading data on 8 KNM nodes for resnet50 is improved to 1.18x (2134.79 -> 1810.5 ms for 100 iters. total time for 100 iters: 1.04x, 139.681 -> 134.298 sec) Change-Id: I6bfc4e9058619109b04e7c212cf85888a0aca957 --- include/caffe/internal_thread.hpp | 2 + .../alexnet_bn_32nodes/train_val2.prototxt | 2 + .../alexnet_bn_64nodes/train_val2.prototxt | 2 + .../solver_grad_compress.prototxt | 19 + .../train_val_ip_grad_compress.prototxt | 617 ++++++++++++++++++ scripts/run_intelcaffe.sh | 23 +- scripts/set_env.sh | 17 +- src/caffe/internal_thread.cpp | 47 ++ 8 files changed, 722 insertions(+), 7 deletions(-) create mode 100644 models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver_grad_compress.prototxt create mode 100644 models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val_ip_grad_compress.prototxt diff --git a/include/caffe/internal_thread.hpp b/include/caffe/internal_thread.hpp index 7f115efa7..fa1f45356 100644 --- a/include/caffe/internal_thread.hpp +++ b/include/caffe/internal_thread.hpp @@ -78,6 +78,8 @@ class InternalThread { /* Should be tested when running loops to exit when requested. */ bool must_stop(); + void SetThreadAffinity(); + private: void entry(int device, Caffe::Brew mode, int rand_seed, int solver_count, bool root_solver); diff --git a/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt index 48046d17d..584f292b0 100644 --- a/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt +++ b/models/intel_optimized_models/multinode/alexnet_bn_32nodes/train_val2.prototxt @@ -3,6 +3,8 @@ #------------------------------------------ name: "AlexNet_bn" +engine:"MKL2017" + #default_conv_algos_override: "1,1,1" #default_cudnn_math_override: 0 diff --git a/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt index f02068fcc..a7b789dbf 100644 --- a/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt +++ b/models/intel_optimized_models/multinode/alexnet_bn_64nodes/train_val2.prototxt @@ -3,6 +3,8 @@ #------------------------------------------ name: "AlexNet_bn" +engine:"MKL2017" + #default_conv_algos_override: "1,1,1" #default_cudnn_math_override: 0 diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver_grad_compress.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver_grad_compress.prototxt new file mode 100644 index 000000000..bde6366aa --- /dev/null +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/solver_grad_compress.prototxt @@ -0,0 +1,19 @@ +net: "models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val_ip_grad_compress.prototxt" +warmup_iter: 6255 # 1281167 / 1024 * 5 epochs +warmup_start_lr: 0.003 + +test_iter: 1000 +test_interval: 8000 +momentum: 0.9 +weight_decay: 0.0005 +#base_lr: 0.04 +base_lr: 0.06 +lr_policy: "poly" +power: 2 +max_iter: 80000 +display: 40 +snapshot: 10000 +solver_mode: CPU + +snapshot_prefix: "models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/vgg_16_grad_compress" + diff --git a/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val_ip_grad_compress.prototxt b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val_ip_grad_compress.prototxt new file mode 100644 index 000000000..e261fd69f --- /dev/null +++ b/models/intel_optimized_models/multinode/vgg_16_16nodes_1k_batch/train_val_ip_grad_compress.prototxt @@ -0,0 +1,617 @@ +name: "VGG_ILSVRC_16_layer" +multinode { + compress_layer_type_list { layer_type: "InnerProduct" } +} +layer { + name: "data" + type: "Data" + include { + phase: TRAIN + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: true + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + shuffle: true + batch_size: 32 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "data" + type: "Data" + include { + phase: TEST + } + transform_param { + crop_size: 224 + mean_value: 104 + mean_value: 117 + mean_value: 124 + mirror: false + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + shuffle: false + batch_size: 50 + backend: LMDB + } + top: "data" + top: "label" +} +layer { + name: "conv1_1" + type: "Convolution" + bottom: "data" + top: "conv1_1" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_1" + top: "conv1_1" + name: "relu1_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_1" + top: "conv1_2" + name: "conv1_2" + type: "Convolution" + convolution_param { + + num_output: 64 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv1_2" + top: "conv1_2" + name: "relu1_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv1_2" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool1" + top: "conv2_1" + name: "conv2_1" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_1" + top: "conv2_1" + name: "relu2_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_1" + top: "conv2_2" + name: "conv2_2" + type: "Convolution" + convolution_param { + + num_output: 128 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv2_2" + top: "conv2_2" + name: "relu2_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv2_2" + top: "pool2" + name: "pool2" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool2" + top: "conv3_1" + name: "conv3_1" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_1" + top: "conv3_1" + name: "relu3_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_1" + top: "conv3_2" + name: "conv3_2" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_2" + top: "conv3_2" + name: "relu3_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_2" + top: "conv3_3" + name: "conv3_3" + type: "Convolution" + convolution_param { + + num_output: 256 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv3_3" + top: "conv3_3" + name: "relu3_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv3_3" + top: "pool3" + name: "pool3" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool3" + top: "conv4_1" + name: "conv4_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_1" + top: "conv4_1" + name: "relu4_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_1" + top: "conv4_2" + name: "conv4_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_2" + top: "conv4_2" + name: "relu4_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_2" + top: "conv4_3" + name: "conv4_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv4_3" + top: "conv4_3" + name: "relu4_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv4_3" + top: "pool4" + name: "pool4" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool4" + top: "conv5_1" + name: "conv5_1" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_1" + top: "conv5_1" + name: "relu5_1" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_1" + top: "conv5_2" + name: "conv5_2" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } + + +} +layer { + bottom: "conv5_2" + top: "conv5_2" + name: "relu5_2" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_2" + top: "conv5_3" + name: "conv5_3" + type: "Convolution" + convolution_param { + + num_output: 512 + pad: 1 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.0 + } + } + + +} +layer { + bottom: "conv5_3" + top: "conv5_3" + name: "relu5_3" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "conv5_3" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + bottom: "pool5" + top: "fc6" + name: "fc6" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc6" + top: "fc6" + name: "relu6" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc6" + top: "fc6" + name: "drop6" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + bottom: "fc6" + top: "fc7" + name: "fc7" + type: "InnerProduct" + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + bottom: "fc7" + top: "fc7" + name: "relu7" + type: "ReLU" + relu_param { + + } +} +layer { + bottom: "fc7" + top: "fc7" + name: "drop7" + type: "Dropout" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc8" + bottom: "fc7" + top: "fc8" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } + + +} +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss/loss" +} +layer { + name: "accuracy/top1" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@1" + include: { phase: TEST } + accuracy_param { + top_k: 1 + } +} +layer { + name: "accuracy/top5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy@5" + include: { phase: TEST } + accuracy_param { + top_k: 5 + } +} diff --git a/scripts/run_intelcaffe.sh b/scripts/run_intelcaffe.sh index 610b5cb24..d5c2f6838 100755 --- a/scripts/run_intelcaffe.sh +++ b/scripts/run_intelcaffe.sh @@ -39,12 +39,16 @@ weight_file="" num_omp_threads=0 # specify engine for running caffe -engine="MKLDNN" +engine="" #default numa node if needed numanode=0 +# pin internal threads to 2 CPU cores for reading data +internal_thread_pin="on" + result_dir="" + mpibench_bin="IMB-MPI1" mpibench_param="allreduce" @@ -61,6 +65,7 @@ function usage echo " [--iteration iter] [--model_file deploy.prototxt]" echo " [--snapshot snapshot.caffemodel]" echo " [--num_mlsl_servers num_mlsl_servers]" + echo " [--internal_thread_pin on/off]" echo " [--output output_folder]" echo " [--mpibench_bin mpibench_bin]" echo " [--mpibench_param mpibench_param]" @@ -80,6 +85,7 @@ function usage echo " iteration and model_file: only used if mode is time (caffe time)" echo " snapshot: it's specified if train is resumed" echo " num_mlsl_servers: number of MLSL ep servers" + echo " internal_thread_pin: on(default). pin internal threads to 2 CPU cores for reading data." echo " output_folder: output folder for storing results" echo " mpibench_bin: IMB-MPI1 (default). relative path of binary of mpi benchmark." echo " mpibench_param: allreduce (default). parameter of mpi benchmark." @@ -307,9 +313,9 @@ function run_caffe echo "Run caffe with ${numnodes} nodes..." if [ ${mode} == "time" ]; then - xeonbin="$caffe_bin time --iterations $iteration --model $model_file -engine=$engine" + xeonbin="$caffe_bin time --iterations $iteration --model $model_file" else - xeonbin="$caffe_bin train --solver $solver_file -engine=$engine" + xeonbin="$caffe_bin train --solver $solver_file" if [ "${snapshot}" != "" ]; then xeonbin+=" --snapshot=${snapshot}" fi @@ -318,6 +324,10 @@ function run_caffe fi fi + if [ "${engine}" != "" ]; then + xeonbin+=" --engine=$engine" + fi + execute_command "$xeonbin" $result_dir } @@ -352,7 +362,7 @@ function check_lmdb_files for lmdb_dir in "${lmdb_dirs[@]}" do data_source_dir=$(grep -w "$lmdb_dir" $model_file_ | head -n 1 | awk -F ' ' '{print $(NF)}' | sed 's/\"//g') - echo "LMDB data source: $data_source_dir" + echo " LMDB data source: $data_source_dir" if [ ! -d $data_source_dir ]; then echo "Error: LMDB data source doesn't exist ($data_source_dir)." let is_missing_lmdb=1 @@ -438,6 +448,10 @@ do num_omp_threads=$2 shift ;; + --internal_thread_pin) + internal_thread_pin=$2 + shift + ;; --engine) engine=$2 shift @@ -558,7 +572,6 @@ if [[ $host_file != "" ]]; then fi numnodes=${#nodenames[@]} fi -echo " Number of nodes: $numnodes" # test connection between nodes via ssh test_ssh_connection $host_file diff --git a/scripts/set_env.sh b/scripts/set_env.sh index 33e5098f3..e2816aa5a 100755 --- a/scripts/set_env.sh +++ b/scripts/set_env.sh @@ -24,6 +24,9 @@ num_mlsl_servers=-1 numservers=0 +# pin internal threads to 2 CPU cores for reading data +internal_thread_pin="on" + function init_mpi_envs { if [ ${numnodes} -eq 1 ]; then @@ -154,7 +157,13 @@ function set_openmp_envs sockets=`lscpu | grep "Socket(s)" | awk '{print $2}'` maxcores=$((cores*sockets)) - numthreads=$(((maxcores-numservers)*threadspercore)) + if [ "$internal_thread_pin" == "on" ]; then + num_internal_threads=2 + export INTERNAL_THREADS_PIN=$((maxcores-2)),$((maxcores-1)) + else + num_internal_threads=0 + fi + numthreads=$(((maxcores-numservers-num_internal_threads)*threadspercore)) numthreads_per_proc=$((numthreads/ppncpu)) # OMP configuration @@ -174,7 +183,7 @@ function set_openmp_envs export OMP_NUM_THREADS=${numthreads_per_proc} export KMP_HW_SUBSET=1t - affinitystr="proclist=[0-5,$((5+numservers+reserved_cores+1))-$((maxcores-1))],granularity=thread,explicit" + affinitystr="proclist=[0-5,$((5+numservers+reserved_cores+1))-$((maxcores-1-num_internal_threads))],granularity=thread,explicit" export KMP_AFFINITY=$affinitystr else # For single node only set for KNM @@ -231,6 +240,10 @@ do num_omp_threads=$2 shift ;; + --internal_thread_pin) + internal_thread_pin=$2 + shift + ;; *) echo "Unknown option: $key" usage diff --git a/src/caffe/internal_thread.cpp b/src/caffe/internal_thread.cpp index a22a719e9..4d1c85715 100644 --- a/src/caffe/internal_thread.cpp +++ b/src/caffe/internal_thread.cpp @@ -90,9 +90,56 @@ void InternalThread::entry(int device, Caffe::Brew mode, int rand_seed, caffe::cpu::OpenMpManager::bindCurrentThreadToNonPrimaryCoreIfPossible(); #endif + SetThreadAffinity(); + InternalThreadEntry(); } +void InternalThread::SetThreadAffinity() { +#define MAX_CORES 64 + + static int count = 0; + static int ncores = 0; + static int affinity_cores[MAX_CORES]; + static boost::mutex internal_thread_mutex; + + boost::mutex::scoped_lock lock(internal_thread_mutex); + if (count == 0) { + char * pin_cores = getenv("INTERNAL_THREADS_PIN"); + if (pin_cores != NULL) { + char * token = strtok(pin_cores, ","); + while (token != NULL) { + affinity_cores[ncores] = atoi(token); + token = strtok(NULL, ","); + ncores++; + if (ncores >= MAX_CORES) { + LOG(INFO) << "Too many cores used for internal threads. Just take first " << ncores << " cores."; + break; + } + } + } + } + + if (ncores > 0) { + int pin_core_id = count % ncores; + cpu_set_t set; + CPU_ZERO(&set); + CPU_SET(affinity_cores[pin_core_id], &set); + pthread_t thread = pthread_self(); + int s = pthread_setaffinity_np(thread, sizeof(cpu_set_t), &set); + if (s != 0) { + LOG(WARNING) << "Cannot set affinity for internal thread!"; + } + for (int j=0; jinterrupt(); From 7ef8316466737a7c855b17c7027272d3c4eacdb4 Mon Sep 17 00:00:00 2001 From: Daisy Deng Date: Wed, 13 Dec 2017 22:30:42 +0800 Subject: [PATCH 54/54] add models for default_resnet50 --- .../default_resnet50_16nodes/solver.prototxt | 19 + .../train_val.prototxt | 3325 +++++++++++++++++ 2 files changed, 3344 insertions(+) create mode 100644 models/intel_optimized_models/multinode/default_resnet50_16nodes/solver.prototxt create mode 100644 models/intel_optimized_models/multinode/default_resnet50_16nodes/train_val.prototxt diff --git a/models/intel_optimized_models/multinode/default_resnet50_16nodes/solver.prototxt b/models/intel_optimized_models/multinode/default_resnet50_16nodes/solver.prototxt new file mode 100644 index 000000000..27054d7d2 --- /dev/null +++ b/models/intel_optimized_models/multinode/default_resnet50_16nodes/solver.prototxt @@ -0,0 +1,19 @@ +net: "models/intel_optimized_models/multinode/default_resnet50_16nodes/train_val.prototxt" +test_iter: 1000 +test_interval: 625 +test_initialization: false +display: 40 +base_lr: 0.8 +lr_policy: "multistep" +stepvalue:18750 +stepvalue:37500 +stepvalue:50000 +gamma: 0.1 +max_iter: 62556 # 56300 +warmup_iter: 3125 # 1281167 / 2048 * 5 epochs +warmup_start_lr: 0.1 +momentum: 0.9 +weight_decay: 0.0001 +snapshot: 6250 +snapshot_prefix: "default_resnet_50_16_nodes" +solver_mode: CPU diff --git a/models/intel_optimized_models/multinode/default_resnet50_16nodes/train_val.prototxt b/models/intel_optimized_models/multinode/default_resnet50_16nodes/train_val.prototxt new file mode 100644 index 000000000..de4efad2b --- /dev/null +++ b/models/intel_optimized_models/multinode/default_resnet50_16nodes/train_val.prototxt @@ -0,0 +1,3325 @@ +name: "ResNet-50" +bn_stats_batch_size: 32 +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + crop_size: 224 + scale: 0.0078125 + mean_value: 104 + mean_value: 117 + mean_value: 123 + random_aspect_ratio_param { + min_area_ratio: 0.08 + max_area_ratio: 1 + aspect_ratio_change: 0.75 + resize_param { + interp_mode: CUBIC + } + } + } + data_param { + source: "examples/imagenet/ilsvrc12_train_lmdb" + batch_size: 128 + backend: LMDB + prefetch: 2 + shuffle: true + } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + mirror: false + crop_size: 224 + scale: 0.0078125 + mean_value: 104 + mean_value: 117 + mean_value: 123 + random_resize_param { + min_size: 256 + max_size: 256 + resize_param { + interp_mode: CUBIC + } + } + } + data_param { + source: "examples/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } +} + +layer { + bottom: "data" + top: "conv1" + name: "conv1" + type: "Convolution" + convolution_param { + num_output: 64 + kernel_size: 7 + pad: 3 + stride: 2 + weight_filler { + type: "msra" + variance_norm: FAN_OUT + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "conv1" + top: "conv1" + name: "bn_conv1" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "conv1" + top: "conv1" + name: "scale_conv1" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "conv1" + top: "conv1" + name: "conv1_relu" + type: "ReLU" + relu_param { + } +} + +layer { + bottom: "conv1" + top: "pool1" + name: "pool1" + type: "Pooling" + pooling_param { + kernel_size: 3 + stride: 2 + pool: MAX + } +} + +layer { + bottom: "pool1" + top: "res2a_branch1" + name: "res2a_branch1" + type: "Convolution" + convolution_param { + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "bn2a_branch1" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2a_branch1" + top: "res2a_branch1" + name: "scale2a_branch1" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "pool1" + top: "res2a_branch2a" + name: "res2a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "bn2a_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "scale2a_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2a" + name: "res2a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2a_branch2a" + top: "res2a_branch2b" + name: "res2a_branch2b" + type: "Convolution" + convolution_param { + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "bn2a_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "scale2a_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2a_branch2b" + top: "res2a_branch2b" + name: "res2a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2a_branch2b" + top: "res2a_branch2c" + name: "res2a_branch2c" + type: "Convolution" + convolution_param { + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "bn2a_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2a_branch2c" + top: "res2a_branch2c" + name: "scale2a_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2a_branch1" + bottom: "res2a_branch2c" + top: "res2a" + name: "res2a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2a" + top: "res2a" + name: "res2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2a" + top: "res2b_branch2a" + name: "res2b_branch2a" + type: "Convolution" + convolution_param { + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "bn2b_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "scale2b_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2a" + name: "res2b_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2a" + top: "res2b_branch2b" + name: "res2b_branch2b" + type: "Convolution" + convolution_param { + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "bn2b_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "scale2b_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2b" + name: "res2b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b_branch2b" + top: "res2b_branch2c" + name: "res2b_branch2c" + type: "Convolution" + convolution_param { + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "bn2b_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2b_branch2c" + top: "res2b_branch2c" + name: "scale2b_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2a" + bottom: "res2b_branch2c" + top: "res2b" + name: "res2b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2b" + top: "res2b" + name: "res2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2b" + top: "res2c_branch2a" + name: "res2c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 64 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "bn2c_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "scale2c_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2a" + name: "res2c_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2a" + top: "res2c_branch2b" + name: "res2c_branch2b" + type: "Convolution" + convolution_param { + num_output: 64 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "bn2c_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "scale2c_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2b" + name: "res2c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c_branch2b" + top: "res2c_branch2c" + name: "res2c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "bn2c_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 0 } + } +} + +layer { + bottom: "res2c_branch2c" + top: "res2c_branch2c" + name: "scale2c_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2b" + bottom: "res2c_branch2c" + top: "res2c" + name: "res2c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res2c" + top: "res2c" + name: "res2c_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res2c" + top: "res3a_branch1" + name: "res3a_branch1" + type: "Convolution" + convolution_param { + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "bn3a_branch1" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3a_branch1" + top: "res3a_branch1" + name: "scale3a_branch1" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res2c" + top: "res3a_branch2a" + name: "res3a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "bn3a_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "scale3a_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2a" + name: "res3a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2a" + top: "res3a_branch2b" + name: "res3a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "bn3a_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "scale3a_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2b" + name: "res3a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a_branch2b" + top: "res3a_branch2c" + name: "res3a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "bn3a_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3a_branch2c" + top: "res3a_branch2c" + name: "scale3a_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a_branch1" + bottom: "res3a_branch2c" + top: "res3a" + name: "res3a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3a" + top: "res3a" + name: "res3a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3a" + top: "res3b_branch2a" + name: "res3b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "bn3b_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "scale3b_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2a" + name: "res3b_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2a" + top: "res3b_branch2b" + name: "res3b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "bn3b_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "scale3b_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2b" + name: "res3b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b_branch2b" + top: "res3b_branch2c" + name: "res3b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "bn3b_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3b_branch2c" + top: "res3b_branch2c" + name: "scale3b_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3a" + bottom: "res3b_branch2c" + top: "res3b" + name: "res3b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3b" + top: "res3b" + name: "res3b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3b" + top: "res3c_branch2a" + name: "res3c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "bn3c_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "scale3c_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2a" + name: "res3c_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2a" + top: "res3c_branch2b" + name: "res3c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "bn3c_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "scale3c_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2b" + name: "res3c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c_branch2b" + top: "res3c_branch2c" + name: "res3c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "bn3c_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3c_branch2c" + top: "res3c_branch2c" + name: "scale3c_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3b" + bottom: "res3c_branch2c" + top: "res3c" + name: "res3c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3c" + top: "res3c" + name: "res3c_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3c" + top: "res3d_branch2a" + name: "res3d_branch2a" + type: "Convolution" + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "bn3d_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "scale3d_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2a" + name: "res3d_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2a" + top: "res3d_branch2b" + name: "res3d_branch2b" + type: "Convolution" + convolution_param { + num_output: 128 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "bn3d_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "scale3d_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2b" + name: "res3d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d_branch2b" + top: "res3d_branch2c" + name: "res3d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "bn3d_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 0 } + } +} + +layer { + bottom: "res3d_branch2c" + top: "res3d_branch2c" + name: "scale3d_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3c" + bottom: "res3d_branch2c" + top: "res3d" + name: "res3d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res3d" + top: "res3d" + name: "res3d_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res3d" + top: "res4a_branch1" + name: "res4a_branch1" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "bn4a_branch1" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4a_branch1" + top: "res4a_branch1" + name: "scale4a_branch1" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res3d" + top: "res4a_branch2a" + name: "res4a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "bn4a_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "scale4a_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2a" + name: "res4a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2a" + top: "res4a_branch2b" + name: "res4a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "bn4a_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "scale4a_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2b" + name: "res4a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a_branch2b" + top: "res4a_branch2c" + name: "res4a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "bn4a_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4a_branch2c" + top: "res4a_branch2c" + name: "scale4a_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a_branch1" + bottom: "res4a_branch2c" + top: "res4a" + name: "res4a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4a" + top: "res4a" + name: "res4a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4a" + top: "res4b_branch2a" + name: "res4b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "bn4b_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "scale4b_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2a" + name: "res4b_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2a" + top: "res4b_branch2b" + name: "res4b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "bn4b_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "scale4b_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2b" + name: "res4b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b_branch2b" + top: "res4b_branch2c" + name: "res4b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "bn4b_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4b_branch2c" + top: "res4b_branch2c" + name: "scale4b_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4a" + bottom: "res4b_branch2c" + top: "res4b" + name: "res4b" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4b" + top: "res4b" + name: "res4b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4b" + top: "res4c_branch2a" + name: "res4c_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "bn4c_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "scale4c_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2a" + name: "res4c_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2a" + top: "res4c_branch2b" + name: "res4c_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "bn4c_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "scale4c_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2b" + name: "res4c_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c_branch2b" + top: "res4c_branch2c" + name: "res4c_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "bn4c_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4c_branch2c" + top: "res4c_branch2c" + name: "scale4c_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4b" + bottom: "res4c_branch2c" + top: "res4c" + name: "res4c" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4c" + top: "res4c" + name: "res4c_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4c" + top: "res4d_branch2a" + name: "res4d_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "bn4d_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "scale4d_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2a" + name: "res4d_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2a" + top: "res4d_branch2b" + name: "res4d_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "bn4d_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "scale4d_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2b" + name: "res4d_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d_branch2b" + top: "res4d_branch2c" + name: "res4d_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "bn4d_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4d_branch2c" + top: "res4d_branch2c" + name: "scale4d_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4c" + bottom: "res4d_branch2c" + top: "res4d" + name: "res4d" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4d" + top: "res4d" + name: "res4d_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4d" + top: "res4e_branch2a" + name: "res4e_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "bn4e_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "scale4e_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2a" + name: "res4e_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2a" + top: "res4e_branch2b" + name: "res4e_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "bn4e_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "scale4e_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2b" + name: "res4e_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e_branch2b" + top: "res4e_branch2c" + name: "res4e_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "bn4e_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4e_branch2c" + top: "res4e_branch2c" + name: "scale4e_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4d" + bottom: "res4e_branch2c" + top: "res4e" + name: "res4e" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4e" + top: "res4e" + name: "res4e_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4e" + top: "res4f_branch2a" + name: "res4f_branch2a" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "bn4f_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "scale4f_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2a" + name: "res4f_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2a" + top: "res4f_branch2b" + name: "res4f_branch2b" + type: "Convolution" + convolution_param { + + num_output: 256 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "bn4f_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "scale4f_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2b" + name: "res4f_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f_branch2b" + top: "res4f_branch2c" + name: "res4f_branch2c" + type: "Convolution" + convolution_param { + + num_output: 1024 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "bn4f_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 0 } + } +} + +layer { + bottom: "res4f_branch2c" + top: "res4f_branch2c" + name: "scale4f_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4e" + bottom: "res4f_branch2c" + top: "res4f" + name: "res4f" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res4f" + top: "res4f" + name: "res4f_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res4f" + top: "res5a_branch1" + name: "res5a_branch1" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "bn5a_branch1" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5a_branch1" + top: "res5a_branch1" + name: "scale5a_branch1" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res4f" + top: "res5a_branch2a" + name: "res5a_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 2 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "bn5a_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "scale5a_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2a" + name: "res5a_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2a" + top: "res5a_branch2b" + name: "res5a_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "bn5a_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "scale5a_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2b" + name: "res5a_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a_branch2b" + top: "res5a_branch2c" + name: "res5a_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "bn5a_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5a_branch2c" + top: "res5a_branch2c" + name: "scale5a_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a_branch1" + bottom: "res5a_branch2c" + top: "res5a" + name: "res5a" + type: "Eltwise" + eltwise_param { + + } +} + +layer { + bottom: "res5a" + top: "res5a" + name: "res5a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5a" + top: "res5b_branch2a" + name: "res5b_branch2a" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "bn5b_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "scale5b_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2a" + name: "res5b_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2a" + top: "res5b_branch2b" + name: "res5b_branch2b" + type: "Convolution" + convolution_param { + + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "bn5b_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "scale5b_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2b" + name: "res5b_branch2b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b_branch2b" + top: "res5b_branch2c" + name: "res5b_branch2c" + type: "Convolution" + convolution_param { + + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "bn5b_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5b_branch2c" + top: "res5b_branch2c" + name: "scale5b_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5a" + bottom: "res5b_branch2c" + top: "res5b" + name: "res5b" + type: "Eltwise" + eltwise_param { + } +} + +layer { + bottom: "res5b" + top: "res5b" + name: "res5b_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5b" + top: "res5c_branch2a" + name: "res5c_branch2a" + type: "Convolution" + convolution_param { + num_output: 512 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "bn5c_branch2a" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "scale5c_branch2a" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2a" + name: "res5c_branch2a_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c_branch2a" + top: "res5c_branch2b" + name: "res5c_branch2b" + type: "Convolution" + convolution_param { + num_output: 512 + kernel_size: 3 + pad: 1 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "bn5c_branch2b" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 1 } + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "scale5c_branch2b" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2b" + name: "res5c_branch2b_relu" + type: "ReLU" + relu_param { + } +} + +layer { + bottom: "res5c_branch2b" + top: "res5c_branch2c" + name: "res5c_branch2c" + type: "Convolution" + convolution_param { + num_output: 2048 + kernel_size: 1 + pad: 0 + stride: 1 + bias_term: false + weight_filler { + type: "msra" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "bn5c_branch2c" + type: "BatchNorm" + param { lr_mult: 0 } + param { lr_mult: 0 } + param { lr_mult: 0 } + batch_norm_param { + moving_average_fraction: 0.9 + filler { value: 0 } + } +} + +layer { + bottom: "res5c_branch2c" + top: "res5c_branch2c" + name: "scale5c_branch2c" + type: "Scale" + param { decay_mult: 0 } + param { decay_mult: 0 } + scale_param { + bias_term: true + } +} + +layer { + bottom: "res5b" + bottom: "res5c_branch2c" + top: "res5c" + name: "res5c" + type: "Eltwise" + eltwise_param { + } +} + +layer { + bottom: "res5c" + top: "res5c" + name: "res5c_relu" + type: "ReLU" + relu_param { + + } +} + +layer { + bottom: "res5c" + top: "pool5" + name: "pool5" + type: "Pooling" + pooling_param { + kernel_size: 7 + stride: 1 + pool: AVE + } +} + +layer { + bottom: "pool5" + top: "fc1000" + name: "fc1000" + type: "InnerProduct" + inner_product_param { + num_output: 1000 + weight_filler { + type: "gaussian" + std: 0.01 + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + bottom: "fc1000" + bottom: "label" + top: "loss" + name: "prob" + type: "SoftmaxWithLoss" + include { + phase: TRAIN + } +} +layer { + name: "loss3/top-1" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-1" +} +layer { + name: "loss3/top-5" + type: "Accuracy" + bottom: "fc1000" + bottom: "label" + top: "loss3/top-5" + accuracy_param { + top_k: 5 + } +}