Command-Line Interface¶
The glab command provides a high-level interface to run experiments from the command line. The command-line interface to the GLAB API can be run as follows.
$ glab [ARGUMENTS]
Note
The location of the glab script is controlled by the pip installer. On
Linux, this location is $HOME/.local/bin. If glab can not be found,
try adding this location to your system path.
As an alternative, this script can always be run as:
$ python -m glimpse.glab.cli [ARGUMENTS]
Arguments¶
Arguments to this command are described below, where they are grouped depending on their functionality.
Corpus arguments
-C DIR, --corpus-subdir=DIR Use DIR as a corpus sub-directory (use -C repeatedly to specify all sub-directories in corpus) -c DIR, --corpus=DIR Use DIR as corpus directory. -b, --balance Choose equal number of images per class
Extraction arguments
-A, --save-all Save activity for all layers, rather than just the layers from which features are extracted. -N, --no-activity Do not compute activity model activity for each image (implies no classifier). This can be used to learn prototypes without immediately evaluating them. -n NUM, --num-prototypes=NUM Generate NUM S2 prototypes (default: 10) -O FILE, --options=FILE Read model options from FILE
Prototype learning arguments
--base-weight=w Add a weight of w for all training patches (default: 0.0) --high=VALUE Use VALUE as the high end of uniform distribution for random prototypes (default: 1.0) --low=VALUE Use VALUE as the low end of uniform distribution for random prototypes (default: 0.0) --masks=DIR Set mask directory for object_mask_wkmeans to DIR (default: ‘’) -P FILE, --prototypes=FILE Read S2 prototypes from FILE (overrides -p) -p ALG, --prototype-algorithm=ALG Use prototype learning algorithm ALG (one of: histogram, ica, imprint, kmeans, kmedoids, meta_feature_wkmeans, nearest_kmeans, nmf, normal, object_mask_wkmeans, pca, shuffle, sparse_pca, uniform) --regr-samples=NUM Sample NUM patches when training regression model for meta_feature_wkmeans (default: 0) --samples=NUM Sample NUM training patches for S2 prototype learning (default: 0)
Evaluation arguments
-E, --evaluate Train and test a classifier -f NUM, --num-folds=NUM Use NUM folds for cross-validation (default: 10) -H, --hist-features Use histograms (accumulated over space and scale) for each feature band (requires spatial features, such as C1) -l LAYER, --layer=LAYER Extract image features from model layer LAYER (default: ‘C2’) -L ALG, --learner=ALG Use learning algorithm ALG to use for classification. ALG can be a Python expression, or one of ‘svm’ or ‘logreg’) (default: ‘svm’) -S FUNC, --score-function=FUNC Use scoring function FUNC for classifier evaluation (one of: accuracy or auc) (default: ‘accuracy’) -T SIZE, --train-size=SIZE Set the size of the training set to SIZE (number of instances or fraction of total) -x, --cross-validate Compute test accuracy via (10x10-way)cross- validation instead of fixed training/testing split
Other arguments
--command=cmd Execute cmd after running the experiment (but before results are saved -h, --help Print this help and exit -i FILE, --input=FILE Read initial experiment data from FILE. -o FILE, --output=FILE Store results to FILE -t TYPE, --pool-type=TYPE Set the worker pool type to TYPE (one of: s, singlecore, m, multicore, c, cluster) -v, --verbose Enable verbose logging
Examples¶
Evaluate with a logistic regression classifier using 100 C2 features based on imprinted prototypes.
$ glab -v -n 100 -p imprint -c cats_and_dogs --learner=logreg -E
INFO:root:Reading class sub-directories from: cats_and_dogs
INFO:root:Reading images from class directories: ['cats_and_dogs/cat', 'cats_and_dogs/dog']
INFO:root:Using pool: MulticorePool
INFO:root:Learning 100 prototypes at 1 sizes from 4 images by imprinting
Time: 0:00:01 |##################################################| Speed: 3.10 unit/s
INFO:root:Learning prototypes took 1.294s
INFO:root:Computing C2 activation maps for 8 images
Time: 0:00:02 |##################################################| Speed: 3.32 unit/s
INFO:root:Computing activation maps took 2.409s
INFO:root:Evaluating classifier on fixed train/test split on 8 images using 100 features from layer(s): C2
INFO:root:Training on 4 images took 0.002s
INFO:root:Classifier is Pipeline(learner=LogisticRegression([...OUTPUT REMOVED...]))
INFO:root:Classifier accuracy on training set is 1.000000
INFO:root:Scoring on training set (4 images) took 0.001s
INFO:root:Scoring on testing set (4 images) took 0.000s
INFO:root:Classifier accuracy on test set is 0.250000