diff --git a/demo/image-classification/README.md b/demo/image-classification/README.md index cbde58fd12942b04fbbda86e91bcd37b0c8403fd..81c1d1e162446208db38521a51e3502aee5df579 100644 --- a/demo/image-classification/README.md +++ b/demo/image-classification/README.md @@ -34,8 +34,8 @@ $ pip install --upgrade paddlepaddle --num_epoch: finetune迭代的轮数。默认为1 --module: 使用哪个Module作为finetune的特征提取器,脚本支持{resnet50/resnet101/resnet152/mobilenet/nasnet/pnasnet}等模型。默认为resnet50 --checkpoint_dir: 模型保存路径,PaddleHub会自动保存验证集上表现最好的模型。默认为paddlehub_finetune_ckpt ---dataset: 使用什么数据集进行finetune, 脚本支持分别是{flowers/dogcat}。默认为flowers ---use_gpu: 使用使用GPU进行训练,如果机器支持GPU且安装了GPU版本的PaddlePaddle,我们建议您打开这个开关。默认关闭 +--dataset: 使用什么数据集进行finetune, 脚本支持分别是{flowers/dogcat/stanforddogs/indoor67/food101}。默认为flowers +--use_gpu: 是否使用GPU进行训练,如果机器支持GPU且安装了GPU版本的PaddlePaddle,我们建议您打开这个开关。默认关闭 ``` ## 进行预测 diff --git a/demo/image-classification/img_classifier.py b/demo/image-classification/img_classifier.py index b3cc57c42de1ec46b2f59724b82775d9710629ea..acef9d224ab75cb5062c645856b4217f707c7ae2 100644 --- a/demo/image-classification/img_classifier.py +++ b/demo/image-classification/img_classifier.py @@ -29,7 +29,19 @@ def finetune(args): module = hub.Module(name=args.module) input_dict, output_dict, program = module.context(trainable=True) - dataset = hub.dataset.Flowers() + if args.dataset.lower() == "flowers": + dataset = hub.dataset.Flowers() + elif args.dataset.lower() == "dogcat": + dataset = hub.dataset.DogCat() + elif args.dataset.lower() == "indoor67": + dataset = hub.dataset.Indoor67() + elif args.dataset.lower() == "food101": + dataset = hub.dataset.Food101() + elif args.dataset.lower() == "stanforddogs": + dataset = hub.dataset.StanfordDogs() + else: + raise ValueError("%s dataset is not defined" % args.dataset) + data_reader = hub.reader.ImageClassificationReader( image_width=module.get_expected_image_width(), image_height=module.get_expected_image_height(), diff --git a/demo/image-classification/predict.py b/demo/image-classification/predict.py index cb13d80cf872a1ff833cdffbebc5039550256be3..32cdc1f1a040c1b176c5d9985f864919d7da3c68 100644 --- a/demo/image-classification/predict.py +++ b/demo/image-classification/predict.py @@ -25,10 +25,18 @@ module_map = { def predict(args): - if args.dataset == "dogcat": - dataset = hub.dataset.DogCat() - elif args.dataset == "flowers": + if args.dataset.lower() == "flowers": dataset = hub.dataset.Flowers() + elif args.dataset.lower() == "dogcat": + dataset = hub.dataset.DogCat() + elif args.dataset.lower() == "indoor67": + dataset = hub.dataset.Indoor67() + elif args.dataset.lower() == "food101": + dataset = hub.dataset.Food101() + elif args.dataset.lower() == "stanforddogs": + dataset = hub.dataset.StanfordDogs() + else: + raise ValueError("%s dataset is not defined" % args.dataset) label_map = dataset.label_dict() num_labels = len(label_map) diff --git a/demo/image-classification/run_classifier.sh b/demo/image-classification/run_classifier.sh index 779722fbf5e86515b5c7f876a9aa3884b5a1e932..30028daf132fdeeba181b6702045f17e25f0352e 100644 --- a/demo/image-classification/run_classifier.sh +++ b/demo/image-classification/run_classifier.sh @@ -1,31 +1 @@ -cuda_visible_devices=0 -module=resnet50 -num_epoch=1 -batch_size=16 -use_gpu=False -checkpoint_dir=paddlehub_finetune_ckpt - -while getopts "gm:n:b:c:d:" options -do - case "$options" in - m) - module=$OPTARG;; - n) - num_epoch=$OPTARG;; - b) - batch_size=$OPTARG;; - c) - checkpoint_dir=$OPTARG;; - d) - cuda_visible_devices=$OPTARG;; - g) - use_gpu=True;; - ?) - echo "unknown options" - exit 1;; - esac -done - -export CUDA_VISIBLE_DEVICES=${cuda_visible_devices} - -python -u img_classifier.py --use_gpu ${use_gpu} --batch_size ${batch_size} --checkpoint_dir ${checkpoint_dir} --num_epoch ${num_epoch} --module ${module} +python -u img_classifier.py $@ diff --git a/demo/image-classification/run_predict.sh b/demo/image-classification/run_predict.sh index f55e23928ac6249dbe6031a59875fb80b9010c61..68eed34c4ca041994b1bf094297a178115fc5619 100644 --- a/demo/image-classification/run_predict.sh +++ b/demo/image-classification/run_predict.sh @@ -1,25 +1 @@ -cuda_visible_devices=0 -module=resnet50 -use_gpu=False -checkpoint_dir=paddlehub_finetune_ckpt - -while getopts "gm:c:d:" options -do - case "$options" in - m) - module=$OPTARG;; - c) - checkpoint_dir=$OPTARG;; - d) - cuda_visible_devices=$OPTARG;; - g) - use_gpu=True;; - ?) - echo "unknown options" - exit 1;; - esac -done - -export CUDA_VISIBLE_DEVICES=${cuda_visible_devices} - -python -u predict.py --use_gpu ${use_gpu} --checkpoint_dir ${checkpoint_dir} --module ${module} +python -u predict.py $@