X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?p=folded-ctf.git;a=blobdiff_plain;f=run.sh;h=9c5175c9c2038f65433dc017ee413b092927d0b3;hp=13f3a8e9b7eba18b6173e46d865c00f5235fca8f;hb=aed34255065b18c445d096f51bd2091833810a81;hpb=ccc2785ee823c934edcededc5c6448e4f9488f8b diff --git a/run.sh b/run.sh index 13f3a8e..9c5175c 100755 --- a/run.sh +++ b/run.sh @@ -13,12 +13,15 @@ # You should have received a copy of the GNU General Public License # # along with this program. If not, see . # # # -# Written by Francois Fleuret, (C) IDIAP # +# Written by Francois Fleuret # +# (C) Idiap Research Institute # +# # # Contact for comments & bug reports # ######################################################################### MAIN_URL="http://www.idiap.ch/folded-ctf" +######################################################################### # Compiling make -j -k @@ -30,7 +33,7 @@ fi echo -###################################################################### +######################################################################### # Generating the pool file DATA_PATH=./rmk-data @@ -76,58 +79,100 @@ else fi -###################################################################### -# Running the computation per se - RESULT_DIR=./results -if [[ ! -d ${RESULT_DIR} ]]; then - mkdir ${RESULT_DIR} -fi +case $1 in -for SEED in {0..9}; do + ##################################################################### + ## Generate illustrating pictures - for MODE in hb h+b; do + pics) - EXPERIMENT_RESULT_DIR="${RESULT_DIR}/${MODE}-${SEED}" + SEED=0 - mkdir ${EXPERIMENT_RESULT_DIR} 2> /dev/null + EXPERIMENT_RESULT_DIR="${RESULT_DIR}/hb-${SEED}" - if [[ $? == 0 ]]; then + if [[ -d "${EXPERIMENT_RESULT_DIR}" ]]; then + + # Value of -1 corresponds to saving the images with the + # ground-truth or the pi-referentials alone, while other + # values show registered pi-feature windows. - OPTS="--random-seed=${SEED} --wanted-true-positive-rate=0.75" - - if [[ $MODE == "h+b" ]]; then - OPTS="${OPTS} --force-head-belly-independence=yes" - fi - - if [[ $1 == "valgrind" ]]; then - OPTS="${OPTS} --nb-classifiers-per-level=1 --nb-weak-learners-per-classifier=10" - OPTS="${OPTS} --proportion-for-train=0.1 --proportion-for-validation=0.025 --proportion-for-test=0.01" - OPTS="${OPTS} --wanted-true-positive-rate=0.1" - DEBUGGER="valgrind --db-attach=yes --leak-check=full --show-reachable=yes" - fi - - ${DEBUGGER} ./folding \ - --niceness=15 \ - --pool-name=${POOL_NAME} \ - --nb-levels=2 \ - --nb-classifiers-per-level=25 --nb-weak-learners-per-classifier=100 \ - --result-path=${EXPERIMENT_RESULT_DIR} \ - --detector-name=${EXPERIMENT_RESULT_DIR}/default.det \ - ${OPTS} \ - open-pool \ - train-detector \ - compute-thresholds \ - write-detector \ - sequence-test-detector | tee -a ${EXPERIMENT_RESULT_DIR}/stdout + for npf in -1 0 2500; do + + ./folding --random-seed=${SEED} \ + --pool-name=${POOL_NAME} \ + --result-path=/tmp/ \ + --detector-name=${EXPERIMENT_RESULT_DIR}/default.det \ + --nb-images=63 \ + --material-feature-nb=${npf} \ + open-pool \ + read-detector \ + write-pool-images + + done else + echo "You have to run at least the first round completely to be able" >&2 + echo "to generate the pictures." >&2 + exit 1 + fi + + ;; + + ##################################################################### + ## Run the full computation - echo "${EXPERIMENT_RESULT_DIR} exists, aborting experiment." + valgrind|"") + if [[ ! -d ${RESULT_DIR} ]]; then + mkdir ${RESULT_DIR} fi - done + for SEED in {0..9}; do + + for MODE in hb h+b; do + + EXPERIMENT_RESULT_DIR="${RESULT_DIR}/${MODE}-${SEED}" + + mkdir ${EXPERIMENT_RESULT_DIR} 2> /dev/null + + if [[ $? == 0 ]]; then + + if [[ $MODE == "h+b" ]]; then + OPTS="--force-head-belly-independence=yes" + else + OPTS="" + fi + + if [[ $1 == "valgrind" ]]; then + # The valgrind operation runs a simpler computation in valgrind + OPTS="${OPTS} --nb-classifiers-per-level=1 --nb-weak-learners-per-classifier=10" + OPTS="${OPTS} --proportion-for-train=0.1 --proportion-for-validation=0.025 --proportion-for-test=0.01" + OPTS="${OPTS} --wanted-true-positive-rate=0.1" + DEBUGGER="valgrind --db-attach=yes --leak-check=full --show-reachable=yes" + fi + + ${DEBUGGER} ./folding \ + --random-seed=${SEED} \ + --pool-name=${POOL_NAME} \ + --result-path=${EXPERIMENT_RESULT_DIR} \ + --detector-name=${EXPERIMENT_RESULT_DIR}/default.det \ + ${OPTS} \ + open-pool \ + train-detector \ + compute-thresholds \ + write-detector \ + sequence-test-detector | tee -a ${EXPERIMENT_RESULT_DIR}/stdout + + else + + echo "${EXPERIMENT_RESULT_DIR} exists, cancelling that run." + + fi + + done + + done -done +esac