File size: 4,016 Bytes
c18b721 9d4d402 c18b721 60603bc 958fcc3 4f5d096 c18b721 a962639 c18b721 9d4d402 c18b721 60603bc 3022254 7b0405b 3022254 4f5d096 958fcc3 720d5d2 c18b721 08633e0 c18b721 9d4d402 c18b721 eb26a46 c18b721 9d4d402 c18b721 3b27ab8 c18b721 08633e0 c18b721 513b119 c18b721 845b45b c18b721 845b45b 9d4d402 c18b721 513b119 c18b721 3b27ab8 c18b721 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
#! /usr/bin/env bash
function image_classifier() {
abcli_image_classifier $@
}
function abcli_image_classifier() {
local task=$(abcli_unpack_keyword "$1" help)
if [ "$task" == "help" ] ; then
abcli_help_line "$abcli_cli_name image_classifier describe object_1" \
"describe model object_1."
abcli_help_line "$abcli_cli_name image_classifier install" \
"install image_classifier."
abcli_help_line "$abcli_cli_name image_classifier predict object_1 [name_1] [object]" \
"run image_classifier saved/object model name_1 predict on object_1."
abcli_help_line "$abcli_cli_name image_classifier save [name_1] [object_1] [force]" \
"[force] save image_classifier [in object_1] [as name_1]."
abcli_help_line "$abcli_cli_name image_classifier train object_1" \
"train image_classifier on data object_1."
if [ "$(abcli_keyword_is $2 verbose)" == true ] ; then
python3 -m image_classifier --help
fi
return
fi
if [[ $(type -t abcli_image_classifier_$task) == "function" ]] ; then
abcli_image_classifier_$task ${@:2}
return
fi
if [ "$task" == "describe" ] ; then
local model_object_name="$2"
abcli_download $model_object_name
python3 -m image_classifier \
describe \
--model_path $abcli_object_root/$model_object_name \
${@:3}
return
fi
if [ "$task" == "install" ] ; then
conda install -y -c anaconda seaborn
return
fi
if [ "$task" == "predict" ] ; then
abcli_huggingface predict \
image-classifier \
$2 \
$(abcli_clarify_arg "$3" image-classifier) \
${@:4}
return
fi
if [ "$task" == "save" ] ; then
abcli_huggingface save \
image-classifier \
$(abcli_clarify_arg "$2" image-classifier) \
${@:3}
return
fi
abcli_log_error "-fashion_mnist: image-classifier: $task: command not found."
}
function abcli_image_classifier_predict() {
local model_object=$(abcli_clarify_object "$1")
local data_object=$(abcli_clarify_object "$2")
abcli_download object $model_object
abcli_download object $data_object
abcli_log "image_classifier($model_object).predict($data_object)"
if [ ! -f "$abcli_object_root/$data_object/test_images.pyndarray" ] ; then
python3 -m image_classifier \
preprocess \
--infer_annotation 0 \
--model_path $abcli_object_root/$model_object \
--objects $abcli_object_root/$data_object \
--output_path $abcli_object_root/$data_object \
--purpose predict \
${@:3}
fi
cp -v ../$data_object/*.pyndarray .
cp -v ../$model_object/image_classifier/model/class_names.json .
python3 -m image_classifier \
predict \
--data_path $abcli_object_root/$data_object \
--model_path $abcli_object_root/$model_object \
--output_path $abcli_object_path \
${@:4}
abcli_tag set . image_classifier,predict
}
function abcli_image_classifier_train() {
local data_object=$(abcli_clarify_object "$1" $abcli_object_name)
abcli_download object $data_object
local options=$2
local do_color=$(abcli_option_int "$options" "color" 0)
local do_convnet=$(abcli_option_int "$options" "convnet" 0)
local do_validate=$(abcli_option_int "$options" "validate" 0)
local extra_args=""
if [ "$do_validate" == 1 ] ; then
local extra_args="--epochs 2"
fi
abcli_log "image_classifier.train($data_object): $options"
python3 -m image_classifier \
train \
--color $do_color \
--convnet $do_convnet \
--data_path $abcli_object_root/$data_object \
--model_path $abcli_object_path \
$extra_args \
${@:3}
abcli_tag set . image_classifier,train
} |