Skip to content
Snippets Groups Projects
prepare-shell.sh 3.09 KiB
Newer Older
Daniel Ecer's avatar
Daniel Ecer committed
#!/bin/bash

# Use this file by running:
# source prepare-shell.sh [--cloud]

Daniel Ecer's avatar
Daniel Ecer committed
SUB_PROJECT_NAME="sciencebeam"
MODEL_NAME="pix2pix"
VERSION_NAME=v5
TRAINING_SUFFIX=-default
TRAINING_ARGS=""
PROJECT=$(gcloud config list project --format "value(core.project)")
LOCAL_PATH_ROOT="./.models"
BUCKET="gs://${PROJECT}-ml"
Daniel Ecer's avatar
Daniel Ecer committed
COLOR_MAP_FILENAME="color_map.conf"
XML_MAPPING_FILENAME="annot-xml-full.conf"
Daniel Ecer's avatar
Daniel Ecer committed
USE_SEPARATE_CHANNELS=true
DATASET_SUFFIX=
BATCH_SIZE=10
EVAL_SET_SIZE=10
QUALITATIVE_FOLDER_NAME=
QUALITATIVE_SET_SIZE=10
RANDOM_SEED=42
BASE_LOSS=L1
TRAIN_FILE_LIMIT=
EVAL_FILE_LIMIT=
PAGE_RANGE=
MIN_ANNOTATION_PERCENTAGE=0
QUALITATIVE_PAGE_RANGE=1
QUALITATIVE_FILE_LIMIT=10
QUALITATIVE_PREPROC_PATH=
Daniel Ecer's avatar
Daniel Ecer committed
CLASS_WEIGHTS_FILENAME=
Daniel Ecer's avatar
Daniel Ecer committed
USE_CLOUD=false
Daniel Ecer's avatar
Daniel Ecer committed

extra_args=()
for arg in "$@"; do
case $arg in
  --cloud) USE_CLOUD=true ;;
  *) extra_args+=($arg) ;;
esac; done
set -- $extra_args
echo "USE_CLOUD: $USE_CLOUD"
echo "ARGS: $@"
Daniel Ecer's avatar
Daniel Ecer committed

Daniel Ecer's avatar
Daniel Ecer committed
CONFIG_FILE='.config'
POST_CONFIG_FILE=
Daniel Ecer's avatar
Daniel Ecer committed
if [ -f "$CONFIG_FILE" ]; then
  source "${CONFIG_FILE}"
fi

DATASET_TRAINING_SUFFIX=${DATASET_SUFFIX}${TRAINING_SUFFIX}
Daniel Ecer's avatar
Daniel Ecer committed
# generate job id and save it
# TODO this should be done on-demand
Daniel Ecer's avatar
Daniel Ecer committed
DEFAULT_JOB_ID="${MODEL_NAME}${DATASET_TRAINING_SUFFIX}_$(date +%Y%m%d_%H%M%S)"
DEFAULT_JOB_ID="${DEFAULT_JOB_ID//-/_}"
Daniel Ecer's avatar
Daniel Ecer committed

if [ -z "$JOB_ID" ]; then
Daniel Ecer's avatar
Daniel Ecer committed
  JOB_ID="${DEFAULT_JOB_ID}"
Daniel Ecer's avatar
Daniel Ecer committed
fi

if [ -z "$TEMP_BUCKET" ]; then
  TEMP_BUCKET="${BUCKET}"
fi

Daniel Ecer's avatar
Daniel Ecer committed
# cloud paths
Daniel Ecer's avatar
Daniel Ecer committed
GCS_SUB_PROJECT_PATH="${BUCKET}/${SUB_PROJECT_NAME}"
GCS_PATH="${GCS_SUB_PROJECT_PATH}/${MODEL_NAME}/${VERSION_NAME}"
GCS_DATA_PATH="${GCS_PATH}/data${DATASET_SUFFIX}"
GCS_CONFIG_PATH="${GCS_PATH}/config"
GCS_PREPROC_PATH="${GCS_PATH}${DATASET_SUFFIX}/preproc"
GCS_TRAIN_MODEL_PATH="${GCS_PATH}${DATASET_TRAINING_SUFFIX}/training"
Daniel Ecer's avatar
Daniel Ecer committed
GCS_MODEL_EXPORT_PATH="${GCS_PATH}${DATASET_TRAINING_SUFFIX}/export"
Daniel Ecer's avatar
Daniel Ecer committed

# local paths
Daniel Ecer's avatar
Daniel Ecer committed
LOCAL_MODEL_PATH="${LOCAL_PATH_ROOT}/${MODEL_NAME}/${VERSION_NAME}"
LOCAL_DATA_PATH="${LOCAL_MODEL_PATH}/data${DATASET_SUFFIX}"
LOCAL_CONFIG_PATH="."
LOCAL_PREPROC_PATH="${LOCAL_MODEL_PATH}${DATASET_SUFFIX}/preproc"
LOCAL_TRAIN_MODEL_PATH="${LOCAL_MODEL_PATH}${DATASET_TRAINING_SUFFIX}/training"
Daniel Ecer's avatar
Daniel Ecer committed
LOCAL_MODEL_EXPORT_PATH="${LOCAL_MODEL_PATH}${DATASET_TRAINING_SUFFIX}/export"
Daniel Ecer's avatar
Daniel Ecer committed

if [ $USE_CLOUD == true ]; then
Daniel Ecer's avatar
Daniel Ecer committed
  DATA_PATH="${GCS_DATA_PATH}"
  CONFIG_PATH="${GCS_CONFIG_PATH}"
  PREPROC_PATH="${GCS_PREPROC_PATH}"
  TRAIN_MODEL_PATH="${GCS_TRAIN_MODEL_PATH}"
Daniel Ecer's avatar
Daniel Ecer committed
  MODEL_EXPORT_PATH="${GCS_MODEL_EXPORT_PATH}"
Daniel Ecer's avatar
Daniel Ecer committed
else
Daniel Ecer's avatar
Daniel Ecer committed
  DATA_PATH="${LOCAL_DATA_PATH}"
  CONFIG_PATH="${LOCAL_CONFIG_PATH}"
  PREPROC_PATH="${LOCAL_PREPROC_PATH}"
  TRAIN_MODEL_PATH="${LOCAL_TRAIN_MODEL_PATH}"
Daniel Ecer's avatar
Daniel Ecer committed
  MODEL_EXPORT_PATH="${LOCAL_MODEL_EXPORT_PATH}"
Daniel Ecer's avatar
Daniel Ecer committed
fi

TRAIN_PREPROC_PATH=${PREPROC_PATH}/train
EVAL_PREPROC_PATH=${PREPROC_PATH}/validation
TEST_PREPROC_PATH=${PREPROC_PATH}/test
FILE_LIST_PATH=$DATA_SOURCE_PATH

if [ ! -z "$QUALITATIVE_FOLDER_NAME" ]; then
  QUALITATIVE_PREPROC_PATH=${PREPROC_PATH}/$QUALITATIVE_FOLDER_NAME
fi

if [ ! -z "$CLASS_WEIGHTS_FILENAME" ]; then
  CLASS_WEIGHTS_URL="${TRAIN_PREPROC_PATH}/${CLASS_WEIGHTS_FILENAME}"
if [ ! -z "$POST_CONFIG_FILE" ]; then
  source "${POST_CONFIG_FILE}"
fi