Browse Source

updated basic example

Dimitri Korsch 4 years ago
parent
commit
9402621a7f

+ 5 - 12
examples/basic/main.py

@@ -12,10 +12,10 @@ import logging
 from chainer.training.updaters import StandardUpdater
 
 
-from cvfinetune.finetuner import DefaultFinetuner
-from cvfinetune.training.trainer import Trainer
 from cvfinetune.dataset import BaseDataset
-from cvfinetune.classifier import Classifier
+from cvfinetune.finetuner import FinetunerFactory
+from cvfinetune.training.trainer import Trainer
+from cvmodelz.classifiers import Classifier
 
 
 from utils import parser
@@ -25,19 +25,12 @@ def main(args):
 		chainer.set_debug(args.debug)
 		logging.warning("DEBUG MODE ENABLED!")
 
+	factory = FinetunerFactory.new(mpi=False)
 
-	tuner = DefaultFinetuner(
-		args,
+	tuner = factory(args,
 		classifier_cls=Classifier,
-		classifier_kwargs={},
-		model_kwargs=dict(
-			pooling=args.pooling,
-		),
-
 		dataset_cls=BaseDataset,
-
 		updater_cls=StandardUpdater,
-		updater_kwargs={},
 	)
 
 

+ 2 - 2
examples/basic/scripts/config.sh

@@ -1,5 +1,5 @@
 source ${HOME}/.miniconda3/etc/profile.d/conda.sh
-conda activate ${CONDA_ENV:-chainer6}
+conda activate ${CONDA_ENV:-chainer7cu11}
 
 if [[ $GDB == "1" ]]; then
 	PYTHON="gdb -ex run --args python"
@@ -25,7 +25,7 @@ RUN_SCRIPT="../main.py"
 BASE_DIR=/home/korsch/Data
 
 OPTIMIZER=${OPTIMIZER:-adam}
-MODEL_TYPE=${MODEL_TYPE:-resnet}
+MODEL_TYPE=${MODEL_TYPE:-chainercv2.resnet18}
 PREPARE_TYPE=${PREPARE_TYPE:-model}
 
 MODEL_DIR=${BASE_DIR}/MODELS/${MODEL_TYPE}

+ 7 - 7
examples/basic/scripts/train.sh

@@ -1,15 +1,15 @@
 #!/usr/bin/env bash
 
 # resnet inception inception_tf [vgg]
-MODEL_TYPE=${MODEL_TYPE:-inception}
-DATA=${DATA:-/home/korsch/Data/info.yml}
+MODEL_TYPE=${MODEL_TYPE:-cvmodelz.InceptionV3}
+export DATA=${DATA:-/home/korsch/Data/info.yml}
 
 
 GPU=${GPU:-0}
 N_JOBS=${N_JOBS:-3}
 
-OPTIMIZER=${OPTIMIZER:-rmsprop}
-LR=${LR:-"-lr 1e-4 -lrd 0.1 -lrt 1e-6 -lrs 20"}
+OPTIMIZER=${OPTIMIZER:-"adam"}
+LR=${LR:-"-lr 1e-3 -lrd 0.1 -lrt 1e-6 -lrs 100"}
 DECAY=${DECAY:-5e-4}
 EPOCHS=${EPOCHS:-60}
 BATCH_SIZE=${BATCH_SIZE:-32}
@@ -22,14 +22,14 @@ PARTS=${PARTS:-GLOBAL}
 
 source config.sh
 
-
 OPTS="${OPTS} --label_smoothing 0.1"
-OPTS="${OPTS} --input_size 299"
+OPTS="${OPTS} --input_size 427"
+OPTS="${OPTS} --pretrained_on inat"
 
 $PYTHON $RUN_SCRIPT \
 	${DATA} \
 	${DATASET} \
-	${DATASET}_${PARTS} \
+	${PARTS} \
 	${OPTS} \
 	$@
 

+ 4 - 8
examples/basic/utils/parser.py

@@ -4,17 +4,15 @@ from cvargparse import GPUParser, Arg
 from chainer_addons.links import PoolingType
 
 from cvfinetune.parser import default_factory
+from cvfinetune import parser as parser_module
 
 
 def parse_args():
 
-	parser = GPUParser(default_factory([
+	parser = parser_module.FineTuneParser(default_factory([
 
-			PoolingType.as_arg("pooling",
-				help_text="type of pre-classification pooling"),
-
-			# Arg("--triplet_loss", action="store_true",
-			# 	help="Use triplet loss"),
+			Arg("--pretrained_on", choices=["inat", "imagenet"],
+				help="network pretraining"),
 
 
 			# Arg("--normalize", action="store_true",
@@ -43,6 +41,4 @@ def parse_args():
 		])
 	)
 
-	parser.init_logger()
-
 	return parser.parse_args()