diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh index 4c70c1accd02..76fd2c6a211d 100755 --- a/ci/docker/runtime_functions.sh +++ b/ci/docker/runtime_functions.sh @@ -868,14 +868,6 @@ unittest_ubuntu_cpu_clojure() { ./contrib/clojure-package/ci-test.sh } -unittest_ubuntu_cpu_clojure_integration() { - set -ex - make scalapkg USE_OPENCV=1 USE_BLAS=openblas USE_DIST_KVSTORE=1 ENABLE_TESTCOVERAGE=1 - make scalainstall USE_OPENCV=1 USE_BLAS=openblas USE_DIST_KVSTORE=1 ENABLE_TESTCOVERAGE=1 - ./contrib/clojure-package/integration-tests.sh -} - - unittest_ubuntu_cpugpu_perl() { set -ex ./perl-package/test.sh diff --git a/ci/jenkins/Jenkins_steps.groovy b/ci/jenkins/Jenkins_steps.groovy index 9db3588a346d..079a38456e2c 100644 --- a/ci/jenkins/Jenkins_steps.groovy +++ b/ci/jenkins/Jenkins_steps.groovy @@ -887,19 +887,6 @@ def test_unix_clojure_cpu() { }] } -def test_unix_clojure_integration_cpu() { - return ['Clojure: CPU Integration': { - node(NODE_LINUX_CPU) { - ws('workspace/ut-clojure-integration-cpu') { - timeout(time: max_time, unit: 'MINUTES') { - utils.unpack_and_init('cpu', mx_lib, true) - utils.docker_run('ubuntu_cpu', 'unittest_ubuntu_cpu_clojure_integration', false) - } - } - } - }] -} - def test_unix_r_cpu() { return ['R: CPU': { node(NODE_LINUX_CPU) { diff --git a/ci/jenkins/Jenkinsfile_unix_cpu b/ci/jenkins/Jenkinsfile_unix_cpu index 9446348cd370..2cf2c356641b 100644 --- a/ci/jenkins/Jenkinsfile_unix_cpu +++ b/ci/jenkins/Jenkinsfile_unix_cpu @@ -52,7 +52,6 @@ core_logic: { custom_steps.test_unix_scala_cpu(), custom_steps.test_unix_scala_mkldnn_cpu(), custom_steps.test_unix_clojure_cpu(), - custom_steps.test_unix_clojure_integration_cpu(), custom_steps.test_unix_perl_cpu(), custom_steps.test_unix_r_cpu(), custom_steps.test_unix_julia07_cpu(), diff --git a/contrib/clojure-package/examples/infer/imageclassifier/src/infer/imageclassifier_example.clj b/contrib/clojure-package/examples/infer/imageclassifier/src/infer/imageclassifier_example.clj index bc8b82e1ece1..6994b4fadc26 100644 --- a/contrib/clojure-package/examples/infer/imageclassifier/src/infer/imageclassifier_example.clj +++ b/contrib/clojure-package/examples/infer/imageclassifier/src/infer/imageclassifier_example.clj @@ -74,8 +74,6 @@ image-file-batches (->> input-dir io/file file-seq - sort - reverse (filter #(.isFile %)) (filter #(re-matches #".*\.jpg$" (.getPath %))) (mapv #(.getPath %)) diff --git a/contrib/clojure-package/examples/infer/objectdetector/images/marcel.jpg b/contrib/clojure-package/examples/infer/objectdetector/images/marcel.jpg deleted file mode 100644 index 1bf7387e097d..000000000000 Binary files a/contrib/clojure-package/examples/infer/objectdetector/images/marcel.jpg and /dev/null differ diff --git a/contrib/clojure-package/examples/infer/objectdetector/src/infer/objectdetector_example.clj b/contrib/clojure-package/examples/infer/objectdetector/src/infer/objectdetector_example.clj index 9331798b038c..6010ddcafe47 100644 --- a/contrib/clojure-package/examples/infer/objectdetector/src/infer/objectdetector_example.clj +++ b/contrib/clojure-package/examples/infer/objectdetector/src/infer/objectdetector_example.clj @@ -78,44 +78,32 @@ (defn detect-single-image "Detect objects in a single image and print top-5 predictions" - ([detector input-dir] (detect-single-image detector input-dir "results")) - ([detector input-image output-dir] - (.mkdir (io/file output-dir)) + [detector input-image output-dir] (let [image (infer/load-image-from-file input-image) - topk 5 - res (infer/detect-objects detector image topk) - ] + topk 5] (process-results [input-image] - res - output-dir) - (first res) - ))) + (infer/detect-objects detector image topk) + output-dir))) (defn detect-images-in-dir "Detect objects in all jpg images in the directory" - ([detector input-dir] (detect-images-in-dir detector input-dir "results")) - ([detector input-dir output-dir] - (.mkdir (io/file output-dir)) + [detector input-dir output-dir] (let [batch-size 20 image-file-batches (->> input-dir io/file file-seq - sort (filter #(.isFile %)) (filter #(re-matches #".*\.jpg$" (.getPath %))) (mapv #(.getPath %)) (partition-all batch-size))] - (apply concat + (doall (for [image-files image-file-batches] - (let [image-batch (infer/load-image-paths image-files) - topk 5 - res (infer/detect-objects-batch detector image-batch topk) ] + (let [image-batch (infer/load-image-paths image-files) topk 5] (process-results image-files - res - output-dir) - res)))))) + (infer/detect-objects-batch detector image-batch topk) + output-dir)))))) (defn run-detector "Runs an image detector based on options provided" @@ -131,7 +119,7 @@ detector (infer/create-object-detector factory {:contexts [(context/default-context)]})] - (println "Output results to:" output-dir ":") + (println "Output results to:" output-dir ":" (.mkdir (io/file output-dir))) (println "Object detection on a single image") (detect-single-image detector input-image output-dir) (println "Object detection on images in a directory") diff --git a/contrib/clojure-package/examples/infer/objectdetector/test/infer/objectdetector_example_test.clj b/contrib/clojure-package/examples/infer/objectdetector/test/infer/objectdetector_example_test.clj index 696d96b3ae3a..2b8ad951ae22 100644 --- a/contrib/clojure-package/examples/infer/objectdetector/test/infer/objectdetector_example_test.clj +++ b/contrib/clojure-package/examples/infer/objectdetector/test/infer/objectdetector_example_test.clj @@ -45,7 +45,6 @@ (let [detector (create-detector) predictions (detect-single-image detector image-file) {:keys [class prob x-min x-max y-min y-max] :as pred} (first predictions)] - (clojure.pprint/pprint predictions) (is (some? predictions)) (is (= 5 (count predictions))) (is (string? class)) @@ -56,13 +55,11 @@ (deftest test-batch-detection (let [detector (create-detector) batch-predictions (detect-images-in-dir detector image-dir) - _ (clojure.pprint/pprint batch-predictions) predictions (first batch-predictions) {:keys [class prob x-min x-max y-min y-max] :as pred} (first predictions)] (is (some? batch-predictions)) (is (= 5 (count predictions))) (is (string? class)) (is (< 0.8 prob)) - (println [x-min x-max y-min y-max]) (every? #(< 0 % 1) [x-min x-max y-min y-max]) - (is (= #{"dog" "person"} (set (mapv :class predictions)))))) + (is (= #{"dog" "person" "bicycle" "car"} (set (mapv :class predictions)))))) diff --git a/contrib/clojure-package/integration-tests.sh b/contrib/clojure-package/integration-tests.sh index ce480a507f92..6e5868712026 100755 --- a/contrib/clojure-package/integration-tests.sh +++ b/contrib/clojure-package/integration-tests.sh @@ -18,15 +18,11 @@ set -evx -MXNET_HOME=${PWD} -cd ${MXNET_HOME}/contrib/clojure-package -# first build the package and install it -lein install - -# then run through the examples +MXNET_HOME=$(cd "$(dirname $0)/../.."; pwd) EXAMPLES_HOME=${MXNET_HOME}/contrib/clojure-package/examples -# use AWK pattern for blacklisting -TEST_CASES=`find ${EXAMPLES_HOME} -name test | awk '!/dontselect1|dontselect2/'` -for i in $TEST_CASES ; do - cd ${i} && lein test -done \ No newline at end of file +#cd ${MXNET_HOME}/contrib/clojure-package +#lein test +#lein cloverage --codecov +for test_dir in `find ${EXAMPLES_HOME} -name test` ; do + cd ${test_dir} && lein test +done