You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2018/07/03 20:53:49 UTC

[GitHub] marcoabreu closed pull request #11537: [MXNET-617] - Improve Clojure styles with cljfmt tools revise

marcoabreu closed pull request #11537: [MXNET-617] - Improve Clojure styles with cljfmt tools revise
URL: https://github.com/apache/incubator-mxnet/pull/11537
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/contrib/clojure-package/README.md b/contrib/clojure-package/README.md
index bd226e04555..6912f915b9e 100644
--- a/contrib/clojure-package/README.md
+++ b/contrib/clojure-package/README.md
@@ -168,6 +168,16 @@ _Note: There is an error thrown in the generated code due to some loading issues
 
 To run the Code Coverage tool. Run `lein cloverage`.
 
+## Tools to keep style consistent
+
+To keep the style consistent for the project we include the script that make it easier.
+There are two script in the base of the project and in each examples.
+
+To run it just see the following file. `lein-cljfmt-check` and `lein-cljfmt-fix`.
+The first command will run and check and confirm if the code needed to be updated to reflect the community style guide.
+The second command will apply the change and fix any inconsistent indentation in place. This is recommendd to be done
+before the submit a new pull request so we can keep the style consistent throughout the project.
+
 ## FAQ
 
 
diff --git a/contrib/clojure-package/examples/cnn-text-classification/project.clj b/contrib/clojure-package/examples/cnn-text-classification/project.clj
index f3eb21ab547..c592dcd6ece 100644
--- a/contrib/clojure-package/examples/cnn-text-classification/project.clj
+++ b/contrib/clojure-package/examples/cnn-text-classification/project.clj
@@ -17,7 +17,8 @@
 
 (defproject cnn-text-classification "0.1.0-SNAPSHOT"
   :description "CNN text classification with MXNet"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
-  :main cnn-text-classification.classifier
-  :pedantic? :skip)
+  :pedantic? :skip
+  :main cnn-text-classification.classifier)
diff --git a/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/classifier.clj b/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/classifier.clj
index 756328caf7a..29ff36fe1ec 100644
--- a/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/classifier.clj
+++ b/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/classifier.clj
@@ -85,7 +85,7 @@
                                         :data-batch-size batch-size
                                         :last-batch-handle "pad"})
         test-data (mx-io/ndarray-iter [(get-in shuffled [:test :data])]
-                                      {:label[(get-in  shuffled [:test :label])]
+                                      {:label [(get-in  shuffled [:test :label])]
                                        :label-name "softmax_label"
                                        :data-batch-size batch-size
                                        :last-batch-handle "pad"})]
@@ -107,8 +107,6 @@
     ;; runs all the examples
     #_(train-convnet {:embedding-size 50 :batch-size 100 :test-size 1000 :num-epoch 10})))
 
-
 (comment
-  (train-convnet {:devs [(context/cpu)] :embedding-size 50 :batch-size 10 :test-size 100 :num-epoch 10 :max-examples 1000})
-  )
+  (train-convnet {:devs [(context/cpu)] :embedding-size 50 :batch-size 10 :test-size 100 :num-epoch 10 :max-examples 1000}))
 
diff --git a/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/data_helper.clj b/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/data_helper.clj
index e7a706fb03e..79665217744 100644
--- a/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/data_helper.clj
+++ b/contrib/clojure-package/examples/cnn-text-classification/src/cnn_text_classification/data_helper.clj
@@ -42,7 +42,6 @@
         (.append sb (new String bs 0 i))))
     (.toString sb)))
 
-
 (defn get-float [b]
   (-> 0
       (bit-or (bit-shift-left (bit-and (aget b 0) 0xff) 0))
@@ -70,31 +69,27 @@
       (println "Finished")
       {:num-embed dim :word2vec word2vec})))
 
-
 (defn clean-str [s]
   (-> s
-    (string/replace #"^A-Za-z0-9(),!?'`]" " ")
-    (string/replace #"'s" " 's")
-    (string/replace #"'ve" " 've")
-    (string/replace #"n't" " n't")
-    (string/replace #"'re" " 're")
-    (string/replace #"'d" " 'd")
-    (string/replace #"'ll" " 'll")
-    (string/replace #"," " , ")
-    (string/replace #"!" " ! ")
-    (string/replace #"\(" " ( ")
-    (string/replace #"\)" " ) ")
-    (string/replace #"\?" " ? ")
-    (string/replace #" {2,}" " ")
-    (string/trim)))
-
-
- ;; Loads MR polarity data from files, splits the data into words and generates labels.
+      (string/replace #"^A-Za-z0-9(),!?'`]" " ")
+      (string/replace #"'s" " 's")
+      (string/replace #"'ve" " 've")
+      (string/replace #"n't" " n't")
+      (string/replace #"'re" " 're")
+      (string/replace #"'d" " 'd")
+      (string/replace #"'ll" " 'll")
+      (string/replace #"," " , ")
+      (string/replace #"!" " ! ")
+      (string/replace #"\(" " ( ")
+      (string/replace #"\)" " ) ")
+      (string/replace #"\?" " ? ")
+      (string/replace #" {2,}" " ")
+      (string/trim)));; Loads MR polarity data from files, splits the data into words and generates labels.
  ;; Returns split sentences and labels.
 (defn load-mr-data-and-labels [path max-examples]
   (println "Loading all the movie reviews from " path)
   (let [positive-examples (mapv #(string/trim %) (-> (slurp (str path "/rt-polarity.pos"))
-                                                    (string/split #"\n")))
+                                                     (string/split #"\n")))
         negative-examples (mapv #(string/trim %) (-> (slurp (str path "/rt-polarity.neg"))
                                                      (string/split #"\n")))
         positive-examples (into [] (if max-examples (take max-examples positive-examples) positive-examples))
@@ -118,10 +113,7 @@
                     (if (pos? diff)
                       (into s (repeat diff padding-word))
                       s)))
-          sentences)))
-
-
- ;; Map sentences and labels to vectors based on a pretrained embeddings
+          sentences)));; Map sentences and labels to vectors based on a pretrained embeddings
 (defn build-input-data-with-embeddings [sentences embedding-size embeddings]
   (mapv (fn [sent]
           (mapv (fn [word] (or (get embeddings word)
diff --git a/contrib/clojure-package/examples/gan/project.clj b/contrib/clojure-package/examples/gan/project.clj
index 1469f9f8f27..bebbc20f82c 100644
--- a/contrib/clojure-package/examples/gan/project.clj
+++ b/contrib/clojure-package/examples/gan/project.clj
@@ -17,6 +17,7 @@
 
 (defproject gan "0.1.0-SNAPSHOT"
   :description "GAN MNIST with MXNet"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]
                  [nu.pattern/opencv "2.4.9-7"]]
diff --git a/contrib/clojure-package/examples/gan/src/gan/gan_mnist.clj b/contrib/clojure-package/examples/gan/src/gan/gan_mnist.clj
index 42c116a1bf7..14dd2c5cc3f 100644
--- a/contrib/clojure-package/examples/gan/src/gan/gan_mnist.clj
+++ b/contrib/clojure-package/examples/gan/src/gan/gan_mnist.clj
@@ -32,7 +32,6 @@
             [org.apache.clojure-mxnet.context :as context])
   (:gen-class))
 
-
 ;; based off of https://medium.com/@julsimon/generative-adversarial-networks-on-apache-mxnet-part-1-b6d39e6b5df1
 
 
@@ -57,7 +56,7 @@
 (comment
 
   ;;This is for figuring out the convolution and deconvolution layers to convert the image sizes
-  
+
   (defn conv-output-size [input-size kernel-size padding stride]
     (float (inc (/ (- (+ input-size (* 2 padding)) kernel-size) stride))))
 
@@ -86,7 +85,6 @@
 (def lr  0.0005) ;; learning rate
 (def beta1 0.5)
 
-
 (def label (sym/variable "label"))
 
 (defn discriminator []
@@ -130,26 +128,24 @@
       label [(ndarray/ones [batch-size 100 1 1])]]
   (def my-iter (mx-io/ndarray-iter data)))
 
-
 (defn save-img-gout [i n x]
   (do
     (viz/im-sav {:title (str "gout-" i "-" n)
-             :output-path output-path
-             :x x
-             :flip false})))
+                 :output-path output-path
+                 :x x
+                 :flip false})))
 
 (defn save-img-diff [i n x]
   (do (viz/im-sav {:title (str "diff-" i "-" n)
-            :output-path output-path
-               :x x
-               :flip false})))
+                   :output-path output-path
+                   :x x
+                   :flip false})))
 
 (defn save-img-data [i n batch]
   (do (viz/im-sav {:title (str "data-" i "-" n)
-               :output-path output-path
-               :x (first (mx-io/batch-data batch))
-               :flip false})))
-
+                   :output-path output-path
+                   :x (first (mx-io/batch-data batch))
+                   :flip false})))
 
 (defn calc-diff [i n diff-d]
   (let [diff (ndarray/copy diff-d)
@@ -161,8 +157,6 @@
 
       (save-img-diff i n calc-diff))))
 
-
-
 (defn train [devs]
   (let [mod-d  (-> (m/module (discriminator) {:contexts devs :data-names ["data"] :label-names ["label"]})
                    (m/bind {:data-shapes (mx-io/provide-data mnist-iter)
@@ -171,55 +165,53 @@
                    (m/init-params {:initializer (init/normal 0.02)})
                    (m/init-optimizer {:optimizer (opt/adam {:learning-rate lr :wd 0.0 :beta1 beta1})}))
         mod-g (-> (m/module (generator) {:contexts devs :data-names ["rand"] :label-names nil})
-                   (m/bind {:data-shapes (mx-io/provide-data rand-noise-iter)})
-                   (m/init-params {:initializer (init/normal 0.02)})
-                   (m/init-optimizer {:optimizer (opt/adam {:learning-rate lr :wd 0.0 :beta1 beta1})}))]
+                  (m/bind {:data-shapes (mx-io/provide-data rand-noise-iter)})
+                  (m/init-params {:initializer (init/normal 0.02)})
+                  (m/init-optimizer {:optimizer (opt/adam {:learning-rate lr :wd 0.0 :beta1 beta1})}))]
 
     (println "Training for " num-epoch " epochs...")
     (doseq [i (range num-epoch)]
-     (mx-io/reduce-batches mnist-iter
-                           (fn [n batch]
-                             (let [rbatch (mx-io/next rand-noise-iter)
-                                   out-g (-> mod-g
-                                             (m/forward rbatch)
-                                             (m/outputs))
+      (mx-io/reduce-batches mnist-iter
+                            (fn [n batch]
+                              (let [rbatch (mx-io/next rand-noise-iter)
+                                    out-g (-> mod-g
+                                              (m/forward rbatch)
+                                              (m/outputs))
                                    ;; update the discriminiator on the fake
-                                   grads-f  (mapv #(ndarray/copy (first %)) (-> mod-d
-                                                                                (m/forward {:data (first out-g) :label [(ndarray/zeros [batch-size])]})
-                                                                                (m/backward)
-                                                                                (m/grad-arrays)))
+                                    grads-f  (mapv #(ndarray/copy (first %)) (-> mod-d
+                                                                                 (m/forward {:data (first out-g) :label [(ndarray/zeros [batch-size])]})
+                                                                                 (m/backward)
+                                                                                 (m/grad-arrays)))
                                    ;; update the discrimintator on the real
-                                   grads-r (-> mod-d
-                                               (m/forward {:data (mx-io/batch-data batch) :label [(ndarray/ones [batch-size])]})
-                                               (m/backward)
-                                               (m/grad-arrays))
-                                   _ (mapv (fn [real fake] (let [r (first real)]
-                                                             (ndarray/set r (ndarray/+ r fake)))) grads-r grads-f)
-                                   _ (m/update mod-d)
+                                    grads-r (-> mod-d
+                                                (m/forward {:data (mx-io/batch-data batch) :label [(ndarray/ones [batch-size])]})
+                                                (m/backward)
+                                                (m/grad-arrays))
+                                    _ (mapv (fn [real fake] (let [r (first real)]
+                                                              (ndarray/set r (ndarray/+ r fake)))) grads-r grads-f)
+                                    _ (m/update mod-d)
                                    ;; update the generator
-                                   diff-d (-> mod-d
-                                              (m/forward {:data (first out-g) :label [(ndarray/ones [batch-size])]})
-                                              (m/backward)
-                                              (m/input-grads))
-                                   _ (-> mod-g
-                                         (m/backward (first diff-d))
-                                         (m/update))]
-                               (when (zero? (mod n 100))
-                                 (println "iteration = " i  "number = " n)
-                                 (save-img-gout i n (ndarray/copy (ffirst out-g)))
-                                 (save-img-data i n batch)
-                                 (calc-diff i n (ffirst diff-d)))
-                               (inc n)))))))
+                                    diff-d (-> mod-d
+                                               (m/forward {:data (first out-g) :label [(ndarray/ones [batch-size])]})
+                                               (m/backward)
+                                               (m/input-grads))
+                                    _ (-> mod-g
+                                          (m/backward (first diff-d))
+                                          (m/update))]
+                                (when (zero? (mod n 100))
+                                  (println "iteration = " i  "number = " n)
+                                  (save-img-gout i n (ndarray/copy (ffirst out-g)))
+                                  (save-img-data i n batch)
+                                  (calc-diff i n (ffirst diff-d)))
+                                (inc n)))))))
 
 (defn -main [& args]
   (let [[dev dev-num] args
         devs (if (= dev ":gpu")
                (mapv #(context/gpu %) (range (Integer/parseInt (or dev-num "1"))))
                (mapv #(context/cpu %) (range (Integer/parseInt (or dev-num "1")))))]
-     (println "Running with context devices of" devs)
+    (println "Running with context devices of" devs)
     (train devs)))
 
 (comment
-  (train [(context/cpu)])
-
-  )
+  (train [(context/cpu)]))
diff --git a/contrib/clojure-package/examples/gan/src/gan/viz.clj b/contrib/clojure-package/examples/gan/src/gan/viz.clj
index 7fab13e38ae..8b57b9432a7 100644
--- a/contrib/clojure-package/examples/gan/src/gan/viz.clj
+++ b/contrib/clojure-package/examples/gan/src/gan/viz.clj
@@ -27,7 +27,6 @@
 ;;; Viz stuff
 (OpenCV/loadShared)
 
-
 (defn clip [x]
   (->> x
        (mapv #(* 255 %))
@@ -69,7 +68,7 @@
         [n c h w] shape
         totals (* h w)
         raw-data (byte-array (clip (ndarray/to-array x)))
-        row (.intValue(Math/sqrt n))
+        row (.intValue (Math/sqrt n))
         col row
         line-arrs (into [] (partition (* col c totals) raw-data))
         line-mats (mapv (fn [line]
diff --git a/contrib/clojure-package/examples/imclassification/project.clj b/contrib/clojure-package/examples/imclassification/project.clj
index 5c22d86cfcf..e4c34e7ac71 100644
--- a/contrib/clojure-package/examples/imclassification/project.clj
+++ b/contrib/clojure-package/examples/imclassification/project.clj
@@ -17,7 +17,8 @@
 
 (defproject imclassification "0.1.0-SNAPSHOT"
   :description "Clojure examples for image classification"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
-  :main imclassification.train-mnist
-  :pedantic? :skip)
+  :pedantic? :skip
+  :main imclassification.train-mnist)
diff --git a/contrib/clojure-package/examples/imclassification/src/imclassification/train_mnist.clj b/contrib/clojure-package/examples/imclassification/src/imclassification/train_mnist.clj
index 44d3364438d..a43dc3b69bd 100644
--- a/contrib/clojure-package/examples/imclassification/src/imclassification/train_mnist.clj
+++ b/contrib/clojure-package/examples/imclassification/src/imclassification/train_mnist.clj
@@ -111,5 +111,4 @@
     (start devs)))
 
 (comment
-  (start [(context/cpu)])
-  )
+  (start [(context/cpu)]))
diff --git a/contrib/clojure-package/examples/module/project.clj b/contrib/clojure-package/examples/module/project.clj
index 2cd97964289..7b32f325c61 100644
--- a/contrib/clojure-package/examples/module/project.clj
+++ b/contrib/clojure-package/examples/module/project.clj
@@ -17,8 +17,9 @@
 
 (defproject module-examples "0.1.0-SNAPSHOT"
   :description "Clojure examples for module"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
-  :main  mnist-mlp
-  :pedantic? :skip)
+  :pedantic? :skip
+  :main mnist-mlp)
 
diff --git a/contrib/clojure-package/examples/module/src/mnist_mlp.clj b/contrib/clojure-package/examples/module/src/mnist_mlp.clj
index 039a6ebc612..74edf71172c 100644
--- a/contrib/clojure-package/examples/module/src/mnist_mlp.clj
+++ b/contrib/clojure-package/examples/module/src/mnist_mlp.clj
@@ -116,7 +116,6 @@
     (let [score (m/score mod {:eval-data test-data :eval-metric (eval-metric/accuracy)})]
       (println "High level predict score is " score))))
 
-
 (defn run-predication-and-calc-accuracy-manually [devs]
   ;;; Gathers all the predictions at once with `predict-every-batch`
   ;;; then cycles thorugh the batches and manually calculates the accuracy stats
@@ -128,23 +127,23 @@
     (m/fit mod {:train-data train-data :eval-data test-data :num-epoch num-epoch})
     (let [preds (m/predict-every-batch mod {:eval-data test-data})
           stats (mx-io/reduce-batches test-data
-                         (fn [r b]
-                           (let [pred-label (->> (ndarray/argmax-channel (first (get preds (:index r))))
-                                                 (ndarray/->vec)
-                                                 (mapv int))
-                                 label (->> (mx-io/batch-label b)
-                                            (first)
-                                            (ndarray/->vec)
-                                            (mapv int))
-                                 acc-sum (apply + (mapv (fn [pl l] (if (= pl l) 1 0))
-                                                        pred-label label))]
-                             (-> r
-                                 (update :index inc)
-                                 (update :acc-cnt (fn [v] (+ v (count pred-label))))
-                                 (update :acc-sum (fn [v] (+ v
-                                                             (apply + (mapv (fn [pl l] (if (= pl l) 1 0))
-                                                                            pred-label label))))))))
-                         {:acc-sum 0 :acc-cnt 0 :index 0})]
+                                      (fn [r b]
+                                        (let [pred-label (->> (ndarray/argmax-channel (first (get preds (:index r))))
+                                                              (ndarray/->vec)
+                                                              (mapv int))
+                                              label (->> (mx-io/batch-label b)
+                                                         (first)
+                                                         (ndarray/->vec)
+                                                         (mapv int))
+                                              acc-sum (apply + (mapv (fn [pl l] (if (= pl l) 1 0))
+                                                                     pred-label label))]
+                                          (-> r
+                                              (update :index inc)
+                                              (update :acc-cnt (fn [v] (+ v (count pred-label))))
+                                              (update :acc-sum (fn [v] (+ v
+                                                                          (apply + (mapv (fn [pl l] (if (= pl l) 1 0))
+                                                                                         pred-label label))))))))
+                                      {:acc-sum 0 :acc-cnt 0 :index 0})]
       (println "Stats: " stats)
       (println "Accuracy: " (/ (:acc-sum stats)
                                (* 1.0 (:acc-cnt stats)))))))
@@ -159,19 +158,19 @@
     ;;; note only one function for training
     (m/fit mod {:train-data train-data :eval-data test-data :num-epoch num-epoch})
     (mx-io/reduce-batches test-data
-                        (fn [r b]
-                          (let [preds (m/predict-batch mod b)
-                                pred-label (->> (ndarray/argmax-channel (first preds))
-                                                (ndarray/->vec)
-                                                (mapv int))
-                                label (->> (mx-io/batch-label b)
-                                           (first)
-                                           (ndarray/->vec)
-                                           (mapv int))
-                                acc (/ (apply + (mapv (fn [pl l] (if (= pl l) 1 0)) pred-label label))
-                                       (* 1.0 (count pred-label)))]
-                            (println "Batch " r " acc: " acc)
-                            (inc r))))))
+                          (fn [r b]
+                            (let [preds (m/predict-batch mod b)
+                                  pred-label (->> (ndarray/argmax-channel (first preds))
+                                                  (ndarray/->vec)
+                                                  (mapv int))
+                                  label (->> (mx-io/batch-label b)
+                                             (first)
+                                             (ndarray/->vec)
+                                             (mapv int))
+                                  acc (/ (apply + (mapv (fn [pl l] (if (= pl l) 1 0)) pred-label label))
+                                         (* 1.0 (count pred-label)))]
+                              (println "Batch " r " acc: " acc)
+                              (inc r))))))
 
 (defn run-all [devs]
   (run-intermediate-level-api :devs devs)
@@ -190,7 +189,6 @@
     (println "Running with context devices of" devs)
     (run-all devs)))
 
-
 (comment
 
   ;;; run all the example functions
@@ -237,4 +235,3 @@
   ;;=> Accuracy:  0.9494
 )
 
-
diff --git a/contrib/clojure-package/examples/multi-label/project.clj b/contrib/clojure-package/examples/multi-label/project.clj
index b67178b25c4..88e3cffe808 100644
--- a/contrib/clojure-package/examples/multi-label/project.clj
+++ b/contrib/clojure-package/examples/multi-label/project.clj
@@ -17,6 +17,7 @@
 
 (defproject multi-label "0.1.0-SNAPSHOT"
   :description "Example of multi-label classification"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
   :main multi-label.core)
diff --git a/contrib/clojure-package/examples/multi-label/src/multi_label/core.clj b/contrib/clojure-package/examples/multi-label/src/multi_label/core.clj
index 0707d4293f5..e96783daad9 100644
--- a/contrib/clojure-package/examples/multi-label/src/multi_label/core.clj
+++ b/contrib/clojure-package/examples/multi-label/src/multi_label/core.clj
@@ -30,7 +30,6 @@
            (java.util NoSuchElementException))
   (:gen-class))
 
-
 (def data-dir "data/")
 (def batch-size 100)
 (def num-epoch 1)
@@ -101,8 +100,8 @@
                                              (vals)
                                              last)]
                               (util/list-map
-                                        {"softmax1_label" (mx-shape/->shape shape)
-                                         "softmax2_label" (mx-shape/->shape shape)})))
+                               {"softmax1_label" (mx-shape/->shape shape)
+                                "softmax2_label" (mx-shape/->shape shape)})))
                           (provideData []
                             (.provideData data-iter)))))
 
@@ -153,7 +152,7 @@
                           (update :batch-num inc))))
                   {:sum [0 0] :batch-num 0})]
         (println "Multi-accuracy " acc)
-        (println "Multi-accuracy "(mapv #(/ % (:batch-num acc)) (:sum acc)))))))
+        (println "Multi-accuracy " (mapv #(/ % (:batch-num acc)) (:sum acc)))))))
 
 (defn -main [& args]
   (let [[dev dev-num] args
@@ -164,6 +163,5 @@
     (println "Running with context devices of" devs)
     (train devs)))
 
-
 (comment
   (train [(context/cpu)]))
diff --git a/contrib/clojure-package/examples/neural-style/project.clj b/contrib/clojure-package/examples/neural-style/project.clj
index 4daf20f8d09..f179618974c 100644
--- a/contrib/clojure-package/examples/neural-style/project.clj
+++ b/contrib/clojure-package/examples/neural-style/project.clj
@@ -17,9 +17,9 @@
 
 (defproject neural-style "0.1.0-SNAPSHOT"
   :description "Neural Style Transfer with MXNet"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]
                  [net.mikera/imagez "0.12.0"]
                  [thinktopic/think.image "0.4.16"]]
-  :main neural-style.core
-)
+  :main neural-style.core)
diff --git a/contrib/clojure-package/examples/neural-style/src/neural_style/core.clj b/contrib/clojure-package/examples/neural-style/src/neural_style/core.clj
index 07b0a293243..50f95c9750e 100644
--- a/contrib/clojure-package/examples/neural-style/src/neural_style/core.clj
+++ b/contrib/clojure-package/examples/neural-style/src/neural_style/core.clj
@@ -28,13 +28,10 @@
             [mikera.image.filters :as img-filter]
             [think.image.pixel :as pixel]
             [neural-style.model-vgg-19 :as model-vgg-19])
-  (:gen-class))
-
-
- ;; An Implementation of the paper A Neural Algorithm of Artistic Style
+  (:gen-class));; An Implementation of the paper A Neural Algorithm of Artistic Style
  ;;by Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge
 
-(def content-image "input/IMG_4343.jpg" )
+(def content-image "input/IMG_4343.jpg")
 (def style-image "input/starry_night.jpg")
 (def model-path "model/vgg19.params")
 (def max-long-edge 600) ;; resize the content image
@@ -69,7 +66,7 @@
   (let [simg (img/load-image path)
         _ (println "The content image is size " {:height (img/height simg) :width (img/width simg)})
         factor (/ short-edge (img/width simg))
-        resized-img (img/resize simg (* (img/width simg) factor) (* (img/height simg) factor) )
+        resized-img (img/resize simg (* (img/width simg) factor) (* (img/height simg) factor))
         new-height (img/height resized-img)
         new-width (img/width resized-img)]
     (image->ndarray resized-img)))
@@ -97,29 +94,28 @@
         _  (img/set-pixels new-image (int-array pixels))]
     new-image))
 
-
 (defn style-gram-symbol [input-size style]
   (let [[_ output-shape _] (sym/infer-shape style {:data [1 3 (first input-size) (second input-size)]})
         output-shapes (mx-shape/->vec output-shape)
         {:keys [gram-list grad-scale]} (doall (reduce
-                                                 (fn [result i]
-                                                   (let [shape (get output-shapes i)
-                                                         [s0 s1 s2 s3] shape
-                                                         x (sym/reshape {:data (sym/get style i) :target-shape [s1 (* s2 s3)] })
+                                               (fn [result i]
+                                                 (let [shape (get output-shapes i)
+                                                       [s0 s1 s2 s3] shape
+                                                       x (sym/reshape {:data (sym/get style i) :target-shape [s1 (* s2 s3)]})
                                                          ;; use fully connected to quickly do dot(x x^T)
-                                                         gram (sym/fully-connected {:data x :weight x :no-bias true :num-hidden s1})]
-                                                     (-> result
-                                                         (update :gram-list conj gram)
-                                                         (update :grad-scale conj (* s1 s2 s3 s1)))))
-                                                 {:gram-list [] :grad-scale []}
-                                                 (range (count (sym/list-outputs style)))))]
+                                                       gram (sym/fully-connected {:data x :weight x :no-bias true :num-hidden s1})]
+                                                   (-> result
+                                                       (update :gram-list conj gram)
+                                                       (update :grad-scale conj (* s1 s2 s3 s1)))))
+                                               {:gram-list [] :grad-scale []}
+                                               (range (count (sym/list-outputs style)))))]
     {:gram (sym/group (into [] gram-list)) :g-scale grad-scale}))
 
 (defn get-loss [gram content]
   (let [gram-loss (doall (mapv (fn [i]
-                           (let [gvar (sym/variable (str "target_gram_" i))]
-                             (sym/sum (sym/square (sym/- gvar (sym/get gram i))))))
-                         (range (count (sym/list-outputs gram)))))
+                                 (let [gvar (sym/variable (str "target_gram_" i))]
+                                   (sym/sum (sym/square (sym/- gvar (sym/get gram i))))))
+                               (range (count (sym/list-outputs gram)))))
         cvar (sym/variable "target_content")
         content-loss (sym/sum (sym/square (sym/- cvar content)))]
     {:style-loss (sym/group gram-loss) :content-loss content-loss}))
@@ -137,7 +133,6 @@
     (> a 255) 255
     :else a))
 
-
 (defn save-image [img filename radius blur?]
   (let [filtered-image (if blur?
                          ((img-filter/box-blur blur-radius blur-radius) (postprocess-image img))
@@ -149,7 +144,7 @@
 (defn get-tv-grad-executor [img ctx tv-weight]
   (when (pos? tv-weight)
     (let [img-shape (mx-shape/->vec (ndarray/shape img))
-          n-channel(get img-shape 1)
+          n-channel (get img-shape 1)
           s-img (sym/variable "img")
           s-kernel (sym/variable "kernel")
           channels (sym/split {:data s-img :axis 1 :num-outputs n-channel})
@@ -162,7 +157,6 @@
           out (ndarray/* out tv-weight)]
       (sym/bind out ctx {"img" img "kernel" kernel}))))
 
-
 (defn train [devs]
 
   (let [dev (first devs)
@@ -217,7 +211,7 @@
         clip-norm (apply  * (mx-shape/->vec (ndarray/shape img)))
         tv-grad-executor (get-tv-grad-executor img dev tv-weight)
         eps 0.0
-        e 0 ]
+        e 0]
     (doseq [i (range 20)]
       (ndarray/set (:data model-executor) img)
       (-> (:executor model-executor)
@@ -255,10 +249,6 @@
     (println "Running with context devices of" devs)
     (train devs)))
 
-
-
 (comment
 
-  (train [(context/cpu)])
-
-  )
+  (train [(context/cpu)]))
diff --git a/contrib/clojure-package/examples/neural-style/src/neural_style/model_vgg_19.clj b/contrib/clojure-package/examples/neural-style/src/neural_style/model_vgg_19.clj
index 5fa11be8851..e7efa8c93eb 100644
--- a/contrib/clojure-package/examples/neural-style/src/neural_style/model_vgg_19.clj
+++ b/contrib/clojure-package/examples/neural-style/src/neural_style/model_vgg_19.clj
@@ -71,7 +71,6 @@
         content (sym/group [relu1-1])]
     {:style style :content content}))
 
-
 (defn get-executor [style content model-path input-size ctx]
   (let [out (sym/group [style content])
         ;; make executor
@@ -83,12 +82,12 @@
         ;;; I'm not sure this is being set properly
         pretrained (do (ndarray/load model-path))
         arg-map (into {} (mapv (fn [[k v]]
-                           (let [pretrained-key (str "arg:" k)]
-                             (if (and (get pretrained pretrained-key) (not= "data" k))
-                               (do (ndarray/set v (get pretrained pretrained-key))
-                                   [k v])
-                               [k v])))
-                         arg-map))
+                                 (let [pretrained-key (str "arg:" k)]
+                                   (if (and (get pretrained pretrained-key) (not= "data" k))
+                                     (do (ndarray/set v (get pretrained pretrained-key))
+                                         [k v])
+                                     [k v])))
+                               arg-map))
         exec (sym/bind out ctx arg-map grad-map)
         outs (executor/outputs exec)]
     {:executor exec
diff --git a/contrib/clojure-package/examples/pre-trained-models/project.clj b/contrib/clojure-package/examples/pre-trained-models/project.clj
index 254f34a9877..e689e9a69a6 100644
--- a/contrib/clojure-package/examples/pre-trained-models/project.clj
+++ b/contrib/clojure-package/examples/pre-trained-models/project.clj
@@ -17,6 +17,7 @@
 
 (defproject pre-trained-models "0.1.0-SNAPSHOT"
   :description "Example of using pre-trained models with MXNet"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]
                  [net.mikera/imagez "0.12.0"]
diff --git a/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/fine_tune.clj b/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/fine_tune.clj
index a73aa300363..f2b9eddeb2a 100644
--- a/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/fine_tune.clj
+++ b/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/fine_tune.clj
@@ -34,7 +34,6 @@
 (def model-dir "model")
 (def batch-size 16)
 
-
 ;;; image set is http://www.vision.caltech.edu/Image_Datasets/Caltech101/
 ;; Pictures of objects belonging to 101 categories. About 40 to 800 images per category. Most categories have about 50 images
 
@@ -49,13 +48,13 @@
                   :rand-mirror true}))
 
 (def val-iter (mx-io/image-record-iter
-                 {:path-imgrec "caltech-256/caltech-256-60-val.rec"
-                  :data-name "data"
-                  :label-name "softmax_label"
-                  :batch-size batch-size
-                  :data-shape [3 224 224]
-                  :rand-crop false
-                  :rand-mirror false}))
+               {:path-imgrec "caltech-256/caltech-256-60-val.rec"
+                :data-name "data"
+                :label-name "softmax_label"
+                :batch-size batch-size
+                :data-shape [3 224 224]
+                :rand-crop false
+                :rand-mirror false}))
 
 (defn get-model []
   (let [mod (m/load-checkpoint {:prefix (str model-dir "/resnet-50") :epoch 0})]
@@ -104,9 +103,7 @@
                (mapv #(context/gpu %) (range (Integer/parseInt (or dev-num "1"))))
                (mapv #(context/cpu %) (range (Integer/parseInt (or dev-num "1")))))]
     (println "Running with context devices of" devs)
-   (fine-tune! devs))
-  )
-
+    (fine-tune! devs)))
 
 (comment
 
@@ -126,7 +123,5 @@
 ;; INFO  ml.dmlc.mxnet.Callback$Speedometer: Epoch[0] Batch [120]	Speed: 3.44 samples/sec	Train-accuracy=0.040806
 ;; INFO  ml.dmlc.mxnet.Callback$Speedometer: Epoch[0] Batch [130]	Speed: 3.41 samples/sec	Train-accuracy=0.043893
 ;; INFO  ml.dmlc.mxnet.Callback$Speedometer: Epoch[0] Batch [140]	Speed: 3.42 samples/sec	Train-accuracy=0.045213
-
 )
 
-
diff --git a/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/predict_image.clj b/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/predict_image.clj
index ee25e4ce504..12bdb12fb5a 100644
--- a/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/predict_image.clj
+++ b/contrib/clojure-package/examples/pre-trained-models/src/pre_trained_models/predict_image.clj
@@ -39,7 +39,6 @@
               out (io/output-stream file)]
     (io/copy in out)))
 
-
 (defn get-image [url show?]
   (let [fname "test-image.jpg"
         _ (download url fname)
@@ -54,8 +53,8 @@
                            pixels)]
     (when show? (img/show image))
     (-> rgb-pixels
-               (flatten)
-               (ndarray/array [1 num-channels h w]))))
+        (flatten)
+        (ndarray/array [1 num-channels h w]))))
 
 (defn predict [img-url show?]
   (let [mod (m/load-checkpoint {:prefix (str model-dir "/resnet-152") :epoch 0})
@@ -110,6 +109,5 @@
   ;;  {:prob 0.023329297, :label "n02083346 canine, canid"})
 
   (feature-extraction) ;=> [1 2048]
-
-  )
+)
 
diff --git a/contrib/clojure-package/examples/profiler/project.clj b/contrib/clojure-package/examples/profiler/project.clj
index ca2fad25137..6ea2dfef708 100644
--- a/contrib/clojure-package/examples/profiler/project.clj
+++ b/contrib/clojure-package/examples/profiler/project.clj
@@ -16,6 +16,7 @@
 ;;
 
 (defproject profiler "0.1.0-SNAPSHOT"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
   :main profiler.core)
diff --git a/contrib/clojure-package/examples/rnn/project.clj b/contrib/clojure-package/examples/rnn/project.clj
index ff00a10fc28..01755915792 100644
--- a/contrib/clojure-package/examples/rnn/project.clj
+++ b/contrib/clojure-package/examples/rnn/project.clj
@@ -17,6 +17,7 @@
 
 (defproject rnn "0.1.0-SNAPSHOT"
   :description "RNN example"
-  :main rnn.train-char-rnn
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]])
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
+  :main rnn.train-char-rnn)
diff --git a/contrib/clojure-package/examples/rnn/src/rnn/lstm.clj b/contrib/clojure-package/examples/rnn/src/rnn/lstm.clj
index ec8e9e8b6f8..fb3a8f352de 100644
--- a/contrib/clojure-package/examples/rnn/src/rnn/lstm.clj
+++ b/contrib/clojure-package/examples/rnn/src/rnn/lstm.clj
@@ -56,14 +56,14 @@
         cls-weight (sym/variable "cls_weight")
         cls-bias (sym/variable "cls_bias")
         param-cells (mapv (fn [i]
-                             (lstm-param (sym/variable (str "l" i "_i2h_weight"))
-                                         (sym/variable (str "l" i "_i2h_bias"))
-                                         (sym/variable (str "l" i "_h2h_weight"))
-                                         (sym/variable (str "l" i "_h2h_bias"))))
-                           (range 0 num-lstm-layer))
+                            (lstm-param (sym/variable (str "l" i "_i2h_weight"))
+                                        (sym/variable (str "l" i "_i2h_bias"))
+                                        (sym/variable (str "l" i "_h2h_weight"))
+                                        (sym/variable (str "l" i "_h2h_bias"))))
+                          (range 0 num-lstm-layer))
         last-states (mapv (fn [i]
-                             (lstm-state (sym/variable (str "l" i "_init_c_beta"))
-                                         (sym/variable (str "l" i "_init_h_beta"))))
+                            (lstm-state (sym/variable (str "l" i "_init_c_beta"))
+                                        (sym/variable (str "l" i "_init_h_beta"))))
                           (range 0 num-lstm-layer))
         ;; embedding layer
         data (sym/variable "data")
@@ -76,7 +76,7 @@
         hidden-all (doall (for [seq-idx (range seq-len)]
                             (let [hidden (:h (last (loop [i 0
                                                           hidden (sym/get wordvec seq-idx)
-                                                    next-states []]
+                                                          next-states []]
                                                      (if (= i num-lstm-layer)
                                                        next-states
                                                        (let [dp-ratio (if (zero? i) 0 dropout)
@@ -108,14 +108,14 @@
         cls-weight (sym/variable "cls_weight")
         cls-bias (sym/variable "cls_bias")
         param-cells (mapv (fn [i]
-                             (lstm-param (sym/variable (str "l" i "_i2h_weight"))
-                                         (sym/variable (str "l" i "_i2h_bias"))
-                                         (sym/variable (str "l" i "_h2h_weight"))
-                                         (sym/variable (str "l" i "_h2h_bias"))))
-                           (range 0 num-lstm-layer))
+                            (lstm-param (sym/variable (str "l" i "_i2h_weight"))
+                                        (sym/variable (str "l" i "_i2h_bias"))
+                                        (sym/variable (str "l" i "_h2h_weight"))
+                                        (sym/variable (str "l" i "_h2h_bias"))))
+                          (range 0 num-lstm-layer))
         last-states (mapv (fn [i]
-                             (lstm-state (sym/variable (str "l" i "_init_c_beta"))
-                                         (sym/variable (str "l" i "_init_h_beta"))))
+                            (lstm-state (sym/variable (str "l" i "_init_c_beta"))
+                                        (sym/variable (str "l" i "_init_h_beta"))))
                           (range 0 num-lstm-layer))
         data (sym/variable "data")
         dp-ratio 0
diff --git a/contrib/clojure-package/examples/rnn/src/rnn/test_char_rnn.clj b/contrib/clojure-package/examples/rnn/src/rnn/test_char_rnn.clj
index 35e1a18c05c..d03b1a6b36e 100644
--- a/contrib/clojure-package/examples/rnn/src/rnn/test_char_rnn.clj
+++ b/contrib/clojure-package/examples/rnn/src/rnn/test_char_rnn.clj
@@ -37,11 +37,11 @@
   (let [trained-mod (m/load-checkpoint {:prefix model-prefix :epoch epoch-num})
         trained-arg-params (m/arg-params trained-mod)
         model (lstm/lstm-inference-model {:num-lstm-layer 3
-                                     :input-size (inc (count vocab))
-                                     :num-label (inc (count vocab))
-                                     :num-hidden num-hidden
-                                     :num-embed num-embed
-                                     :arg-params trained-arg-params})
+                                          :input-size (inc (count vocab))
+                                          :num-label (inc (count vocab))
+                                          :num-hidden num-hidden
+                                          :num-embed num-embed
+                                          :arg-params trained-arg-params})
         input-ndarray (ndarray/zeros [1])
         revert-vocab (util/make-revert-vocab vocab)
         fix-dict (into [""]
@@ -68,7 +68,6 @@
                      output
                      (str output next-char)))))))))
 
-
 (comment
 
   (rnn-test "data/obama" 75 200 false)
@@ -76,4 +75,4 @@
 
   (rnn-test "data/obama" 75 200 true)
   ;=>"The joke before them prepared for five years ago, we only hear a chance to lose our efforts and they made striggling procedural deficit at the city between a politics in the efforts on the Edmund Pett"
-  )
+)
diff --git a/contrib/clojure-package/examples/rnn/src/rnn/train_char_rnn.clj b/contrib/clojure-package/examples/rnn/src/rnn/train_char_rnn.clj
index d2467609ad1..29aba26b195 100644
--- a/contrib/clojure-package/examples/rnn/src/rnn/train_char_rnn.clj
+++ b/contrib/clojure-package/examples/rnn/src/rnn/train_char_rnn.clj
@@ -69,15 +69,15 @@
 
 
 (defn build-training-data [path]
-    (let [content (slurp path)
-          sentences (string/split content #"\n")
-          max-length (first buckets)
-          padding-int 0]
-      (doall (for [sentence sentences]
-               (let [ids (mapv #(get vocab %) sentence)]
-                 (if (>= (count ids) max-length)
-                   (into [] (take max-length ids))
-                   (into ids (repeat (- max-length (count ids)) 0))))))))
+  (let [content (slurp path)
+        sentences (string/split content #"\n")
+        max-length (first buckets)
+        padding-int 0]
+    (doall (for [sentence sentences]
+             (let [ids (mapv #(get vocab %) sentence)]
+               (if (>= (count ids) max-length)
+                 (into [] (take max-length ids))
+                 (into ids (repeat (- max-length (count ids)) 0))))))))
 
 (defn build-labels [train-data]
     ;; want to learn the next char some rotate by 1
@@ -90,7 +90,6 @@
         (first)
         (apply hash-map)))
 
-
 (defn train [devs]
   (let [;; initialize the states for the lstm
         init-c (into {} (map (fn [l]
@@ -118,7 +117,7 @@
 
         rnn-mod (-> (m/module rnn-sym {:contexts devs})
                     (m/bind {:data-shapes (into (mx-io/provide-data train-iter)
-                                            (mapv (fn [[k v]] {:name k :shape v}) init-states))
+                                                (mapv (fn [[k v]] {:name k :shape v}) init-states))
                              :label-shapes (mx-io/provide-label train-iter)})
                     (m/init-params {:initializer (init/xavier {:factor-type "in" :magnitude 2.34})})
                     (m/init-optimizer {:optimizer (optimizer/adam {:learning-rate learning-rate :wd 0.0001})}))
@@ -138,8 +137,7 @@
                                     (mapv #(Math/log %))
                                     (mapv #(* -1.0 %))
                                     (apply +))]
-                    (float (Math/exp (/ result (count labels)))))
-                  )
+                    (float (Math/exp (/ result (count labels))))))
 
                 "perplexity")]
 
@@ -151,11 +149,11 @@
        (fn [batch-num batch]
          (let [batch (mx-io/next train-iter)]
            (-> rnn-mod
-            (m/forward (mx-io/data-batch {:data (into (mx-io/batch-data batch) init-states-data)
-                                          :label (mx-io/batch-label batch)}))
-            (m/update-metric metric (mx-io/batch-label batch))
-            (m/backward)
-            (m/update))
+               (m/forward (mx-io/data-batch {:data (into (mx-io/batch-data batch) init-states-data)
+                                             :label (mx-io/batch-label batch)}))
+               (m/update-metric metric (mx-io/batch-label batch))
+               (m/backward)
+               (m/update))
            (when (zero? (mod batch-num 10))
              (println "Eval metric for batch-num " batch-num " is " (eval-metric/get metric)))
            (inc batch-num))))
@@ -171,7 +169,6 @@
     (println (test-rnn/rnn-test "data/obama" 75 200 true))
     (println "=====")))
 
-
 (defn -main [& args]
   (let [[dev dev-num] args
         devs (if (= dev ":gpu")
diff --git a/contrib/clojure-package/examples/rnn/src/rnn/util.clj b/contrib/clojure-package/examples/rnn/src/rnn/util.clj
index 27e2132cf91..bce5bb710ad 100644
--- a/contrib/clojure-package/examples/rnn/src/rnn/util.clj
+++ b/contrib/clojure-package/examples/rnn/src/rnn/util.clj
@@ -21,13 +21,13 @@
 (defn build-vocab [path]
   (let [content (slurp path)
         vocab-map (reduce (fn [{:keys [vocab idx] :as result} c]
-                               (if (get vocab c)
-                result
-                (-> result
-                    (update :vocab assoc c (inc idx))
-                    (update :idx inc))))
-                             {:vocab {} :idx 0}     ;; 0 is used for padding
-                             content)]
+                            (if (get vocab c)
+                              result
+                              (-> result
+                                  (update :vocab assoc c (inc idx))
+                                  (update :idx inc))))
+                          {:vocab {} :idx 0}     ;; 0 is used for padding
+                          content)]
     (:vocab vocab-map)))
 
 (defn make-revert-vocab [vmap]
@@ -42,10 +42,9 @@
 
 (defn cdf [weights]
   (let [total (* 1.0 (apply + weights))
-        csums (reduce (fn [cumsum w] (conj cumsum (+ (or (last cumsum) 0) w)) ) [] weights)]
+        csums (reduce (fn [cumsum w] (conj cumsum (+ (or (last cumsum) 0) w))) [] weights)]
     (mapv #(/ % total) csums)))
 
-
 (defn choice [population weights]
   (assert (= (count population) (count weights)))
   (let [cdf-vals (cdf weights)
diff --git a/contrib/clojure-package/examples/tutorial/project.clj b/contrib/clojure-package/examples/tutorial/project.clj
index 027c1d3f395..ab7606e4bc8 100644
--- a/contrib/clojure-package/examples/tutorial/project.clj
+++ b/contrib/clojure-package/examples/tutorial/project.clj
@@ -17,5 +17,6 @@
 
 (defproject tutorial "0.1.0-SNAPSHOT"
   :description "MXNET tutorials"
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]])
diff --git a/contrib/clojure-package/examples/tutorial/src/tutorial/kvstore.clj b/contrib/clojure-package/examples/tutorial/src/tutorial/kvstore.clj
index 5780ac25868..558b21f0aa4 100644
--- a/contrib/clojure-package/examples/tutorial/src/tutorial/kvstore.clj
+++ b/contrib/clojure-package/examples/tutorial/src/tutorial/kvstore.clj
@@ -48,7 +48,7 @@
 (def cpus [(context/cpu 0) (context/cpu 1) (context/cpu 2)])
 (def b [(ndarray/ones shape {:ctx (nth cpus 0)})
         (ndarray/ones shape {:ctx (nth cpus 1)})
-        (ndarray/ones shape {:ctx (nth cpus 2)}) ])
+        (ndarray/ones shape {:ctx (nth cpus 2)})])
 (kvstore/push kv ["3" "3" "3"] b)
 (kvstore/pull kv "3" a)
 (ndarray/->vec a) ;=> [3.0 3.0 3.0 3.0 3.0 3.0]
@@ -57,7 +57,7 @@
 ;;Pull
 ;;You’ve already seen how to pull a single key-value pair. Similar to the way that you use the push command, you can pull the value into several devices with a single call.
 (def b [(ndarray/ones shape {:ctx (context/cpu 0)})
-        (ndarray/ones shape {:ctx (context/cpu 1)}) ])
+        (ndarray/ones shape {:ctx (context/cpu 1)})])
 (kvstore/pull kv ["3" "3"] b)
 (map ndarray/->vec b) ;=> ([3.0 3.0 3.0 3.0 3.0 3.0] [3.0 3.0 3.0 3.0 3.0 3.0])
 
@@ -67,7 +67,7 @@
 (def ks ["5" "7" "9"])
 (kvstore/init kv ks [(ndarray/ones shape) (ndarray/ones shape) (ndarray/ones shape)])
 (kvstore/push kv ks [(ndarray/ones shape) (ndarray/ones shape) (ndarray/ones shape)])
-(def b [(ndarray/zeros shape) (ndarray/zeros shape)(ndarray/zeros shape)])
+(def b [(ndarray/zeros shape) (ndarray/zeros shape) (ndarray/zeros shape)])
 (kvstore/pull kv ks b)
 (map ndarray/->vec b);=> ([1.0 1.0 1.0 1.0 1.0 1.0] [1.0 1.0 1.0 1.0 1.0 1.0] [1.0 1.0 1.0 1.0 1.0 1.0])
 
diff --git a/contrib/clojure-package/examples/tutorial/src/tutorial/module.clj b/contrib/clojure-package/examples/tutorial/src/tutorial/module.clj
index ad5ff133a5b..0009a01e0a9 100644
--- a/contrib/clojure-package/examples/tutorial/src/tutorial/module.clj
+++ b/contrib/clojure-package/examples/tutorial/src/tutorial/module.clj
@@ -31,14 +31,14 @@
 
 ;;; Load the MNIST datasets
 (def train-data (mx-io/mnist-iter {:image (str data-dir "train-images-idx3-ubyte")
-                                       :label (str data-dir "train-labels-idx1-ubyte")
-                                       :label-name "softmax_label"
-                                       :input-shape [784]
-                                       :batch-size 10
-                                       :shuffle true
-                                       :flat true
-                                       :silent false
-                                       :seed 10}))
+                                   :label (str data-dir "train-labels-idx1-ubyte")
+                                   :label-name "softmax_label"
+                                   :input-shape [784]
+                                   :batch-size 10
+                                   :shuffle true
+                                   :flat true
+                                   :silent false
+                                   :seed 10}))
 
 (def test-data (mx-io/mnist-iter {:image (str data-dir "t10k-images-idx3-ubyte")
                                   :label (str data-dir "t10k-labels-idx1-ubyte")
@@ -131,10 +131,10 @@
 
 (let [save-prefix "my-model"]
   (doseq [epoch-num (range 3)]
-        (mx-io/do-batches train-data (fn [batch
+    (mx-io/do-batches train-data (fn [batch
                                           ;; do something
-                                          ]))
-        (m/save-checkpoint mod {:prefix save-prefix :epoch epoch-num :save-opt-states true})))
+]))
+    (m/save-checkpoint mod {:prefix save-prefix :epoch epoch-num :save-opt-states true})))
 
 ;; INFO  ml.dmlc.mxnet.module.Module: Saved checkpoint to my-model-0000.params
 ;; INFO  ml.dmlc.mxnet.module.Module: Saved optimizer state to my-model-0000.states
@@ -155,8 +155,8 @@
 ;;To get current parameters, use `params`
 
 (let [[arg-params aux-params] (m/params new-mod)]
-     {:arg-params arg-params
-      :aux-params aux-params})
+  {:arg-params arg-params
+   :aux-params aux-params})
 
 ;; {:arg-params
 ;;  {"fc3_bias"
@@ -190,30 +190,3 @@
 ;;Create fit-params, and then use it to set `begin-epoch` so that fit() knows to resume from a saved epoch.
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/contrib/clojure-package/examples/visualization/project.clj b/contrib/clojure-package/examples/visualization/project.clj
index 6dc7c49f92a..99d0e401b7b 100644
--- a/contrib/clojure-package/examples/visualization/project.clj
+++ b/contrib/clojure-package/examples/visualization/project.clj
@@ -17,6 +17,7 @@
 
 (defproject visualization "0.1.0-SNAPSHOT"
   :description "Visualization example"
-  :main visualization.core
+  :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]])
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet "1.3.0-SNAPSHOT"]]
+  :main visualization.core)
diff --git a/contrib/clojure-package/examples/visualization/src/visualization/core.clj b/contrib/clojure-package/examples/visualization/src/visualization/core.clj
index 58980a0ca3e..31cce9206d8 100644
--- a/contrib/clojure-package/examples/visualization/src/visualization/core.clj
+++ b/contrib/clojure-package/examples/visualization/src/visualization/core.clj
@@ -25,10 +25,7 @@
     #_(sym/convolution "conv1" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
     #_(sym/batch-norm "bn1" {:data data})
     #_(sym/activation "relu1" {:data data :act-type "relu"})
-    #_(sym/pooling "mp1" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]})
-
-
-    #_(sym/convolution "conv2" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
+    #_(sym/pooling "mp1" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]}) #_(sym/convolution "conv2" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
     #_(sym/batch-norm "bn2" {:data data})
     #_(sym/activation "relu2" {:data data :act-type "relu"})
     #_(sym/pooling "mp2" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]})
@@ -39,12 +36,11 @@
 
 (defn test-viz []
   (let [dot (viz/plot-network (get-symbol)
-                          {"data" [1 1 28 28]}
-                          {:title "foo" :node-attrs {:shape "oval" :fixedsize "false"}})]
+                              {"data" [1 1 28 28]}
+                              {:title "foo" :node-attrs {:shape "oval" :fixedsize "false"}})]
     (viz/render dot "testviz" "./")))
 
 (defn -main [& args]
   (do (test-viz)
       (println "Check for the testviz.pdf file in the project directory")))
 
-
diff --git a/contrib/clojure-package/lein-cljfmt-check b/contrib/clojure-package/lein-cljfmt-check
new file mode 100755
index 00000000000..93f2d3ca822
--- /dev/null
+++ b/contrib/clojure-package/lein-cljfmt-check
@@ -0,0 +1,24 @@
+#!/usr/bin/env sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+set -vx
+
+lein cljfmt check `find ./src/org/apache/clojure_mxnet -depth 1 -type f -iname "*.clj" | grep -v /gen/`
+lein cljfmt check `find ./test -type f -iname "*.clj" | grep -v /test/good-test`
+lein cljfmt check `find ./examples -type f -iname "*.clj" | grep -v /scripts/`
diff --git a/contrib/clojure-package/vi ci-test.sh b/contrib/clojure-package/lein-cljfmt-fix
old mode 100644
new mode 100755
similarity index 74%
rename from contrib/clojure-package/vi ci-test.sh
rename to contrib/clojure-package/lein-cljfmt-fix
index dc12f138968..8c35892d3be
--- a/contrib/clojure-package/vi ci-test.sh	
+++ b/contrib/clojure-package/lein-cljfmt-fix
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env sh
 
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
@@ -17,8 +17,8 @@
 # specific language governing permissions and limitations
 # under the License.
 
-
 set -evx
 
-cd contrib/clojure-package
-lein test
+lein cljfmt fix `find ./src/org/apache/clojure_mxnet -type f -iname "*.clj" | grep -v /gen/`
+lein cljfmt fix `find ./test -type f -iname "*.clj" | grep -v /test/good-test`
+lein cljfmt fix `find ./examples -type f -iname "*.clj" | grep -v /scripts/`
diff --git a/contrib/clojure-package/project.clj b/contrib/clojure-package/project.clj
index 42da163d1f6..5d94fa789d9 100644
--- a/contrib/clojure-package/project.clj
+++ b/contrib/clojure-package/project.clj
@@ -34,7 +34,8 @@
                  [org.slf4j/slf4j-log4j12 "1.7.25" :exclusions [org.slf4j/slf4j-api]]]
   :pedantic? :skip
   :plugins [[lein-codox "0.10.3" :exclusions [org.clojure/clojure]]
-            [lein-cloverage "1.0.10" :exclusions [org.clojure/clojure]]]
+            [lein-cloverage "1.0.10" :exclusions [org.clojure/clojure]]
+            [lein-cljfmt "0.5.7"]]
   :codox {:namespaces [#"^org\.apache\.clojure-mxnet\.(?!gen).*"]}
   :aot [dev.generator]
   :repositories [["staging" {:url "https://repository.apache.org/content/repositories/staging"
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/callback.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/callback.clj
index d1c6d8820f9..c0077208978 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/callback.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/callback.clj
@@ -18,7 +18,6 @@
 (ns org.apache.clojure-mxnet.callback
   (:import (org.apache.mxnet Callback$Speedometer)))
 
-
 ;;; used to track status during epoch
 
 (defn speedometer
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/context.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/context.clj
index f89fd58e43c..126838cea4c 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/context.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/context.clj
@@ -18,7 +18,6 @@
 (ns org.apache.clojure-mxnet.context
   (:import (org.apache.mxnet Context)))
 
-
 (defn cpu
   ([device-id]
    (new Context "cpu" device-id))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/dtype.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/dtype.clj
index d21fe7f7ce8..1d96c2247ec 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/dtype.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/dtype.clj
@@ -18,7 +18,6 @@
 (ns org.apache.clojure-mxnet.dtype
   (:import (org.apache.mxnet DType)))
 
-
 (def UINT8 (DType/UInt8))
 (def INT32 (DType/Int32))
 (def FLOAT16 (DType/Float16))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/eval_metric.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/eval_metric.clj
index 3cddb1fabc4..1946103a4a2 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/eval_metric.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/eval_metric.clj
@@ -20,7 +20,6 @@
   (:require [org.apache.clojure-mxnet.util :as util])
   (:import (org.apache.mxnet Accuracy TopKAccuracy F1 Perplexity MAE MSE RMSE CustomMetric)))
 
-
 (defn accuracy
   "Basic Accuracy Metric"
   []
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/executor.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/executor.clj
index d1f8df90c96..4f4155e2d80 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/executor.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/executor.clj
@@ -21,7 +21,6 @@
             [org.apache.clojure-mxnet.ndarray :as ndarray]
             [org.apache.clojure-mxnet.shape :as mx-shape]))
 
-
 ;; need to revisit to get all functions
 
 (defn ->vec [nd-array]
@@ -96,7 +95,7 @@
    (do
      (let [kwargs-shapes (zipmap (keys kwargs)
                                  (mapv (fn [v] (if (vector? v) (mx-shape/->shape v) v)) (vals kwargs)))]
-      (.reshape executor partial-shaping allow-up-sizing (util/convert-map kwargs-shapes)))
+       (.reshape executor partial-shaping allow-up-sizing (util/convert-map kwargs-shapes)))
      executor))
   ([executor kwargs]
    (reshape executor kwargs {})))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/initializer.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/initializer.clj
index 58413c811a1..a161759b76b 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/initializer.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/initializer.clj
@@ -20,7 +20,7 @@
   (:import (org.apache.mxnet Uniform Normal Xavier)))
 
 (defn uniform
- "Initialize the weight with uniform [-scale, scale]
+  "Initialize the weight with uniform [-scale, scale]
    scale - The scale of uniform distribution"
   ([scale]
    (new Uniform (float scale)))
@@ -41,9 +41,9 @@
   factor-type - 'avg' 'in' or 'out'
   magnitude - scale of random number range "
   ([{:keys [rand-type factor-type magnitude :as opts]
-      :or {rand-type "uniform"
-           factor-type "avg"
-           magnitude 3}}]
+     :or {rand-type "uniform"
+          factor-type "avg"
+          magnitude 3}}]
    (new Xavier rand-type factor-type (float magnitude)))
   ([]
    (xavier {})))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/io.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/io.clj
index 2f73beb12bb..d6f1499ba82 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/io.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/io.clj
@@ -27,7 +27,6 @@
   (:import (org.apache.mxnet IO DataDesc DataBatch NDArray)
            (org.apache.mxnet.io ResizeIter PrefetchingIter NDArrayIter MXDataIter)))
 
-
 (defn batches
   "Convert the data-pack to a batch seq"
   [data-pack]
@@ -56,19 +55,19 @@
 (defn iterator [data-pack]
   (.iterator data-pack))
 
-(defn resize-iter [iter nbatch ])
+(defn resize-iter [iter nbatch])
 
 (defn provide-data [pack-iterator]
-    (->> pack-iterator
-        (.provideData)
-        (util/scala-map->map)
-        (mapv (fn [[k v]] {:name k :shape (mx-shape/->vec v)}))))
+  (->> pack-iterator
+       (.provideData)
+       (util/scala-map->map)
+       (mapv (fn [[k v]] {:name k :shape (mx-shape/->vec v)}))))
 
 (defn provide-label [pack-iterator]
-    (->> pack-iterator
-         (.provideLabel)
-         (util/scala-map->map)
-         (mapv (fn [[k v]] {:name k :shape (mx-shape/->vec v)}))))
+  (->> pack-iterator
+       (.provideLabel)
+       (util/scala-map->map)
+       (mapv (fn [[k v]] {:name k :shape (mx-shape/->vec v)}))))
 
 (defn reset [iterator]
   (.reset iterator))
@@ -89,7 +88,7 @@
   (util/scala-vector->vec (.initLabel iterator)))
 
 (defmacro do-batches [iter f]
-   "Takes an iterator and a function of one argument. The iterator will be reset and run thhrough all the batches with the batch passed to the function argument. nil is returned"
+  "Takes an iterator and a function of one argument. The iterator will be reset and run thhrough all the batches with the batch passed to the function argument. nil is returned"
   `(do
      (reset ~iter)
      (loop [it# ~iter]
@@ -126,48 +125,48 @@
    `(reduce-batches ~iter ~f 0)))
 
 (defn
- csv-iter
- ([kwargs]
-  (util/apply-scala-fn (IO/CSVIter) (util/convert-io-map kwargs))))
+  csv-iter
+  ([kwargs]
+   (util/apply-scala-fn (IO/CSVIter) (util/convert-io-map kwargs))))
 
 (defn
- csv-pack
- ([kwargs]
-  (util/apply-scala-fn (IO/CSVPack) (util/convert-io-map kwargs))))
+  csv-pack
+  ([kwargs]
+   (util/apply-scala-fn (IO/CSVPack) (util/convert-io-map kwargs))))
 
 (defn
- image-recode-pack
- ([kwargs]
-  (util/apply-scala-fn
-   (IO/ImageRecodePack)
-   (util/convert-io-map kwargs))))
+  image-recode-pack
+  ([kwargs]
+   (util/apply-scala-fn
+    (IO/ImageRecodePack)
+    (util/convert-io-map kwargs))))
 
 (defn
- image-record-iter
- ([kwargs]
-  (util/apply-scala-fn
-   (IO/ImageRecordIter)
-   (util/convert-io-map kwargs))))
+  image-record-iter
+  ([kwargs]
+   (util/apply-scala-fn
+    (IO/ImageRecordIter)
+    (util/convert-io-map kwargs))))
 
 (defn
- mnist-iter
- ([kwargs]
-  (util/apply-scala-fn (IO/MNISTIter) (util/convert-io-map kwargs))))
+  mnist-iter
+  ([kwargs]
+   (util/apply-scala-fn (IO/MNISTIter) (util/convert-io-map kwargs))))
 
 (defn
- mnist-pack
- ([kwargs]
-  (util/apply-scala-fn (IO/MNISTPack) (util/convert-io-map kwargs))))
+  mnist-pack
+  ([kwargs]
+   (util/apply-scala-fn (IO/MNISTPack) (util/convert-io-map kwargs))))
 
 (defn
- create-iterator
- ([iter-name kwargs-map]
-  (util/coerce-return (IO/createIterator iter-name (util/convert-io-map kwargs-map)))))
+  create-iterator
+  ([iter-name kwargs-map]
+   (util/coerce-return (IO/createIterator iter-name (util/convert-io-map kwargs-map)))))
 
 (defn
- create-mx-data-pack
- ([pack-name kwargs-map]
-  (util/coerce-return (IO/createMXDataPack pack-name (util/convert-io-map kwargs-map)))))
+  create-mx-data-pack
+  ([pack-name kwargs-map]
+   (util/coerce-return (IO/createMXDataPack pack-name (util/convert-io-map kwargs-map)))))
 
 (defn resize-iter
   "* Resize a data iterator to given number of batches per epoch.
@@ -233,7 +232,6 @@
 (s/def ::dtype #{dtype/UINT8 dtype/INT32 dtype/FLOAT16 dtype/FLOAT32 dtype/FLOAT64})
 (s/def ::data-desc (s/keys :req-un [::name ::shape] :opt-un [::dtype ::layout]))
 
-
 ;; NCHW is N:batch size C: channel H: height W: width
 ;;; other layouts are
 ;; NT, TNC, nad N
@@ -249,7 +247,7 @@
                              (= 3 sc) "TNC"
                              (= 4 sc) "NCHW"
                              :else (apply str (repeat sc "?"))))]
-    (new DataDesc name (mx-shape/->shape shape) dtype layout)))
+     (new DataDesc name (mx-shape/->shape shape) dtype layout)))
   ([name shape]
    (data-desc {:name name :shape shape})))
 
@@ -276,40 +274,40 @@
   ;;  provided-data and provided label is a map of name to shape to indicate the order of the data/label loading
   (util/validate! ::data-batch info "Invalid data batch")
   (new DataBatch
-        (util/vec->indexed-seq data)
-        (util/vec->indexed-seq label)
-        (util/vec->indexed-seq index)
-        (int pad)
-        bucket-key
-        (when provided-data (util/list-map provided-data))
-        (when provided-label(util/list-map provided-label))))
+       (util/vec->indexed-seq data)
+       (util/vec->indexed-seq label)
+       (util/vec->indexed-seq index)
+       (int pad)
+       bucket-key
+       (when provided-data (util/list-map provided-data))
+       (when provided-label (util/list-map provided-label))))
 
 (defn rand-iter
   "A implementation of a random noise iterator
    Instead of data pass in the shape vector of the noise shape"
   ([shape-vec {:keys [label data-batch-size shuffle last-batch-handle data-name label-name] :as opts
-          :or {label nil
-               data-batch-size 1
-               shuffle false
-               last-batch-handle "pad"
-               data-name "rand"
-               label-name "label"}}]
+               :or {label nil
+                    data-batch-size 1
+                    shuffle false
+                    last-batch-handle "pad"
+                    data-name "rand"
+                    label-name "label"}}]
    (let [data [(ndarray/ones shape-vec)]]
-    (proxy [NDArrayIter]
-        [(util/vec->indexed-seq data)
-         (if label (util/vec->indexed-seq label) (util/empty-indexed-seq))
-         (int data-batch-size)
-         shuffle
-         last-batch-handle
-         data-name
-         label-name]
-        (provideData []
-          (util/list-map {data-name (mx-shape/->vec (ndarray/shape (first data)))}))
-        (provideLabel [] (util/empty-list-map))
-        (hasNext [] true)
-        (getData
-          ([] (util/vec->indexed-seq [(random/normal 0 1 (mx-shape/->vec (ndarray/shape (first data))))])))
-        (getLabel
-          ([] (util/vec->indexed-seq []))))))
+     (proxy [NDArrayIter]
+            [(util/vec->indexed-seq data)
+             (if label (util/vec->indexed-seq label) (util/empty-indexed-seq))
+             (int data-batch-size)
+             shuffle
+             last-batch-handle
+             data-name
+             label-name]
+       (provideData []
+         (util/list-map {data-name (mx-shape/->vec (ndarray/shape (first data)))}))
+       (provideLabel [] (util/empty-list-map))
+       (hasNext [] true)
+       (getData
+         ([] (util/vec->indexed-seq [(random/normal 0 1 (mx-shape/->vec (ndarray/shape (first data))))])))
+       (getLabel
+         ([] (util/vec->indexed-seq []))))))
   ([shape-vec]
    (rand-iter shape-vec {})))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore.clj
index 574bd77321e..ea7e7f933cd 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore.clj
@@ -40,7 +40,6 @@
   [kvstore]
   (.dispose kvstore))
 
-
 (s/def ::ks (s/or :string string?
                   :vec-of-string (s/coll-of string? :kind vector?)))
 (s/def ::ndarray #(instance? NDArray %))
@@ -83,10 +82,10 @@
    (util/validate! ::priority priority "Invalid priority")
    (let [store-vals (if (vector? vs) vs [vs])
          store-keys (if (vector? ks) ks (into [] (repeat (count store-vals) ks)))]
-    (doto kvstore
-      (.push (into-array store-keys)
-             (into-array store-vals)
-             (int priority)))))
+     (doto kvstore
+       (.push (into-array store-keys)
+              (into-array store-vals)
+              (int priority)))))
   ([kvstore ks vs]
    (push kvstore ks vs 0)))
 
@@ -113,10 +112,10 @@
    (util/validate! ::priority priority "Invalid priority")
    (let [store-vals (if (vector? outs) outs [outs])
          store-keys (if (vector? ks) ks (into [] (repeat (count store-vals) ks)))]
-    (doto kvstore
-      (.pull (into-array store-keys)
-             (into-array store-vals)
-             (int priority)))))
+     (doto kvstore
+       (.pull (into-array store-keys)
+              (into-array store-vals)
+              (int priority)))))
   ([kvstore ks outs]
    (pull kvstore ks outs 0)))
 
@@ -183,7 +182,6 @@
   (doto kvstore
     (.sendCommandToServers (int head) body)))
 
-
 (s/def ::fname string?)
 
 (defn save-optimizer-states
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore_server.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore_server.clj
index 7fa116d45a9..ffce70a24d5 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore_server.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/kvstore_server.clj
@@ -21,14 +21,12 @@
             [clojure.spec.alpha :as s])
   (:import (org.apache.mxnet KVStoreServer)))
 
-
 (s/def ::env-map (s/map-of string? string?))
 
 (defn init [env-map]
   (util/validate! ::env-map env-map "Invalid environment map")
   (KVStoreServer/init (util/convert-map env-map)))
 
-
 (s/def ::die-if-others-go-out-timeout int?)
 
 (defn start
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/lr_scheduler.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/lr_scheduler.clj
index d08c40e3354..d3965401af9 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/lr_scheduler.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/lr_scheduler.clj
@@ -18,7 +18,6 @@
 (ns org.apache.clojure-mxnet.lr-scheduler
   (:import (org.apache.mxnet FactorScheduler)))
 
-
 (defn factor-scheduler
   "Assume the weight has been updated by n times, then the learning rate will
     be base_lr * factor^^(floor(n/step))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/module.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/module.clj
index 42d206a2dc2..22ab761547e 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/module.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/module.clj
@@ -33,7 +33,6 @@
            (org.apache.mxnet Initializer Optimizer NDArray DataBatch
                              Context EvalMetric Monitor Callback$Speedometer DataDesc)))
 
-
 (defn module
   "Module is a basic module that wrap a symbol.
    sym : Symbol definition.
@@ -131,7 +130,7 @@
 (s/def ::force-init boolean?)
 (s/def ::allow-extra boolean?)
 (s/def ::init-params-opts (s/keys :opt-un [::initializer ::arg-params ::aux-params
-                                          ::force-init ::allow-extra]))
+                                           ::force-init ::allow-extra]))
 
 (defn init-params
   " Initialize the parameters and auxiliary states.
@@ -190,7 +189,6 @@
   ([mod]
    (init-optimizer mod {})))
 
-
 (defn forward
   "Forward computation.
    data-batch -  input data of form io/data-batch either map or DataBatch
@@ -206,7 +204,6 @@
   ([mod data-batch-map]
    (forward mod data-batch-map nil)))
 
-
 (s/def ::ndarray #(instance? NDArray %))
 (s/def ::out-grads (s/nilable (s/coll-of ::ndarray)))
 
@@ -299,7 +296,6 @@
   ([mod prefix epoch]
    (save-checkpoint mod {:prefix prefix :epoch epoch})))
 
-
 (s/def ::load-optimizer-states boolean?)
 (s/def ::data-names (s/coll-of string? :kind vector?))
 (s/def ::label-names (s/coll-of string? :kind vector?))
@@ -419,7 +415,6 @@
   (doto mod
     (.installMonitor monitor)))
 
-
 (defn borrow-optimizer
   "Borrow optimizer from a shared module. Used in bucketing, where exactly the same
    optimizer (esp. kvstore) is used.
@@ -446,11 +441,9 @@
   (doto mod
     (.loadOptimzerStates fname)))
 
-
 (s/def ::eval-metric #(instance? EvalMetric %))
 (s/def ::labels (s/coll-of ::ndarray :kind vector?))
 
-
 (defn update-metric
   "Evaluate and accumulate evaluation metric on outputs of the last forward computation.
     - mod module
@@ -462,7 +455,6 @@
   (doto mod
     (.updateMetric eval-metric (util/vec->indexed-seq labels))))
 
-
 (s/def ::begin-epoch int?)
 (s/def ::validation-metric ::eval-metric)
 (s/def ::monitor #(instance? Monitor %))
@@ -472,7 +464,6 @@
                                           ::force-init ::begin-epoch ::validation-metric ::monitor
                                           ::batch-end-callback]))
 
-
 ;; callbacks are not supported for now
 (defn fit-params
   "Fit Params"
@@ -490,23 +481,22 @@
           begin-epoch 0}}]
    (util/validate! ::fit-params-opts opts "Invalid fit param opts")
    (doto (new FitParams)
-      (.setEvalMetric eval-metric)
-      (.setKVStore kvstore)
-      (.setOptimizer optimizer)
-      (.setInitializer initializer)
-      (.setArgParams (some-> arg-params (util/convert-map)))
-      (.setAuxParams (some-> aux-params (util/convert-map)))
-      (.setAllowMissing allow-missing)
-      (.setForceRebind force-rebind)
-      (.setForceInit force-init)
-      (.setBeginEpoch (int begin-epoch))
-      (.setValidationMetric validation-metric)
-      (.setMonitor monitor)
-      (.setBatchEndCallback batch-end-callback)))
+     (.setEvalMetric eval-metric)
+     (.setKVStore kvstore)
+     (.setOptimizer optimizer)
+     (.setInitializer initializer)
+     (.setArgParams (some-> arg-params (util/convert-map)))
+     (.setAuxParams (some-> aux-params (util/convert-map)))
+     (.setAllowMissing allow-missing)
+     (.setForceRebind force-rebind)
+     (.setForceInit force-init)
+     (.setBeginEpoch (int begin-epoch))
+     (.setValidationMetric validation-metric)
+     (.setMonitor monitor)
+     (.setBatchEndCallback batch-end-callback)))
   ([]
    (new FitParams)))
 
-
 (s/def ::mx-data-iter #(instance? MXDataIter %))
 (s/def ::ndarray-iter #(instance? NDArrayIter %))
 (s/def ::train-data (s/or :mx-iter ::mx-data-iter :ndarry-iter ::ndarray-iter))
@@ -515,7 +505,6 @@
 (s/def ::fit-params #(instance? FitParams %))
 (s/def ::fit-options (s/keys :req-un [::train-data] :opt-un [::eval-data ::num-epoch ::fit-params]))
 
-
 ;;; High Level API
 
 (defn score
@@ -556,8 +545,8 @@
    - num-epoch Number of epochs to run training.
    - f-params Extra parameters for training (See fit-params)."
   [mod {:keys [train-data eval-data num-epoch fit-params] :as opts
-        `            :or {num-epoch 1
-                          fit-params (new FitParams)}}]
+        `:or {num-epoch 1
+              fit-params (new FitParams)}}]
   (util/validate! ::fit-options opts "Invalid options for fit")
   (let [fmod (-> mod
                  (bind {:data-shapes (mx-io/provide-data train-data)
@@ -576,37 +565,37 @@
         val-metric (or (util/option->value (.validationMetric fit-params)) (eval-metric/accuracy))]
     (doseq [i (range num-epoch)]
       (let [tic (System/currentTimeMillis)]
-       (mx-io/reduce-batches train-data
-                             (fn [batch-num batch]
-                               (-> fmod
-                                   (forward batch)
-                                   (backward)
-                              (update)
-                              (update-metric eval-metric (mx-io/batch-label batch)))
-                               (when-let [cb (util/option->value (.batchEndCallback fit-params))]
-                                 (callback/invoke cb i batch-num eval-metric))
-                               (.dispose batch)
-                          (inc batch-num)))
-       (println "Epoch " i " Train-" (eval-metric/get eval-metric))
-       (println "Epoch " i " Time cost-" (- (System/currentTimeMillis) tic))
+        (mx-io/reduce-batches train-data
+                              (fn [batch-num batch]
+                                (-> fmod
+                                    (forward batch)
+                                    (backward)
+                                    (update)
+                                    (update-metric eval-metric (mx-io/batch-label batch)))
+                                (when-let [cb (util/option->value (.batchEndCallback fit-params))]
+                                  (callback/invoke cb i batch-num eval-metric))
+                                (.dispose batch)
+                                (inc batch-num)))
+        (println "Epoch " i " Train-" (eval-metric/get eval-metric))
+        (println "Epoch " i " Time cost-" (- (System/currentTimeMillis) tic))
 
        ;;sync across kvstores
-       (get-params fmod)
-       (when-let [cb (util/option->value (.epochEndCallback fit-params))]
-         (callback/invoke cb i 0 val-metric))
+        (get-params fmod)
+        (when-let [cb (util/option->value (.epochEndCallback fit-params))]
+          (callback/invoke cb i 0 val-metric))
 
        ;; evaluation on the validation set
-       (when eval-data
-         (let [res (score fmod {:eval-data eval-data :eval-metric eval-metric :epoch i})]
-          (println "Epoch " i " Validation- " res)))))
+        (when eval-data
+          (let [res (score fmod {:eval-data eval-data :eval-metric eval-metric :epoch i})]
+            (println "Epoch " i " Validation- " res)))))
     fmod)
   ;; old way if the problem with the sizes get resolved in DataDesc
   #_(doto mod
-    (.fit
-     train-data
-     (util/->option eval-data)
-     (int num-epoch)
-     fit-params)))
+      (.fit
+       train-data
+       (util/->option eval-data)
+       (int num-epoch)
+       fit-params)))
 
 (s/def ::eval-data ::train-data)
 (s/def ::num-batch integer?)
@@ -621,7 +610,7 @@
   (util/validate! ::mx-io/data-batch data-batch "Invalid data batch")
   (util/coerce-return (.predict mod (if (map? data-batch)
                                       (mx-io/data-batch data-batch)
-                                          data-batch))))
+                                      data-batch))))
 
 (defn predict
   "Run prediction and collect the outputs.
@@ -639,7 +628,6 @@
   (util/validate! ::predict-opts opts "Invalid opts for predict")
   (util/scala-vector->vec (.predict mod eval-data (int num-batch) reset)))
 
-
 (s/def ::predict-every-batch-opts (s/keys :req-un [::eval-data] :opt-un [::num-batch ::reset]))
 
 (defn predict-every-batch
@@ -660,11 +648,8 @@
   (util/validate! ::predict-every-batch-opts opts "Invalid opts for predict-every-batch")
   (mapv util/scala-vector->vec (util/scala-vector->vec (.predictEveryBatch mod eval-data (int num-batch) reset))))
 
-
-
 (s/def ::score-opts (s/keys :req-un [::eval-data ::eval-metric] :opt-un [::num-batch ::reset ::epoch]))
 
-
 (defn exec-group [mod]
   (.execGroup mod))
 
@@ -676,16 +661,13 @@
   (r/reflect DataDesc)
   (new DataDesc)
 
-        (.setEpochEndCallback (if epoch-end-callback
-                              (util/->option epoch-end-callback)
-                              (util/->option nil)))
-      (.setBatchEndCallback (if batch-end-callback
-                              (util/->option batch-end-callback)
-                              (util/->option nil)))
-
-      (fit-params {:allow-missing true})
-      (fit-params {})
-
-  )
+  (.setEpochEndCallback (if epoch-end-callback
+                          (util/->option epoch-end-callback)
+                          (util/->option nil)))
+  (.setBatchEndCallback (if batch-end-callback
+                          (util/->option batch-end-callback)
+                          (util/->option nil)))
 
+  (fit-params {:allow-missing true})
+  (fit-params {}))
 
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/monitor.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/monitor.clj
index 0550b4c4653..cbe04843db0 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/monitor.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/monitor.clj
@@ -19,7 +19,6 @@
   (:require [org.apache.clojure-mxnet.util :as util])
   (:import (org.apache.mxnet Monitor)))
 
-
 (defmacro monitor
   "Monitor outputs, weights, and gradients for debugging.
   -  interval Number of batches between printing.
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/ndarray.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/ndarray.clj
index b471055cb81..e37a8bc8c98 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/ndarray.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/ndarray.clj
@@ -26,7 +26,6 @@
             [t6.from-scala.core :refer [$] :as $])
   (:import (org.apache.mxnet NDArray)))
 
-
 ;; loads the generated functions into the namespace
 (do (clojure.core/load "gen/ndarray"))
 
@@ -80,7 +79,6 @@
   ([source-vec shape-vec]
    (array source-vec shape-vec {})))
 
-
 (defn arange
   "Returns evenly spaced values within a given interval.
    Values are generated within the half-open interval [`start`, `stop`). In other
@@ -88,14 +86,14 @@
   ([start stop  {:keys [step repeat ctx dtype]
                  :or {step (float 1) repeat (int 1) ctx (mx-context/default-context) dtype base/MX_REAL_TYPE}
                  :as opts}]
-   (NDArray/arange (float start) ($/option(float stop)) step repeat ctx dtype))
+   (NDArray/arange (float start) ($/option (float stop)) step repeat ctx dtype))
   ([start stop]
    (arange start stop {})))
 
 (defn slice
   "Return a sliced NDArray that shares memory with current one."
   ([ndarray i]
-         (.slice ndarray (int i)))
+   (.slice ndarray (int i)))
   ([ndarray start stop]
    (.slice ndarray (int start) (int stop))))
 
@@ -104,7 +102,6 @@
   [source-ndarray target-ndarray]
   (.copyTo source-ndarray target-ndarray))
 
-
 (defn save
   "Save list of NDArray or dict of str->NDArray to binary file
  (The name of the file.Can be S3 or HDFS address (remember built with S3 support))
@@ -139,7 +136,7 @@
   (.asInContext ndarray ctx))
 
 (defn as-type
-   "Return a copied numpy array of current array with specified type."
+  "Return a copied numpy array of current array with specified type."
   [ndarray dtype]
   (.asType ndarray dtype))
 
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/optimizer.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/optimizer.clj
index 45dcc484eec..f18ff40f569 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/optimizer.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/optimizer.clj
@@ -22,10 +22,10 @@
 (defn sgd
   "A very simple SGD optimizer with momentum and weight regularization."
   ([{:keys [learning-rate momentum wd clip-gradient lr-scheduler] :as opts
-      :or {learning-rate 0.01
-           momentum 0.0
-           wd 0.0001
-           clip-gradient 0}}]
+     :or {learning-rate 0.01
+          momentum 0.0
+          wd 0.0001
+          clip-gradient 0}}]
    (new SGD (float learning-rate) (float momentum) (float wd) (float clip-gradient) lr-scheduler))
   ([]
    (sgd {})))
@@ -35,11 +35,11 @@
   Implementation of paper 'Asynchronous Stochastic Gradient Descent with
   Delay Compensation for Distributed Deep Learning'"
   ([{:keys [learning-rate momentum lambda wd clip-gradient lr-scheduler] :as opts
-      :or {learning-rate 0.01
-           momentum 0.0
-           lambda 0.04
-           wd 0.0
-           clip-gradient 0}}]
+     :or {learning-rate 0.01
+          momentum 0.0
+          lambda 0.04
+          wd 0.0
+          clip-gradient 0}}]
    (new DCASGD (float learning-rate) (float lambda) (float momentum) (float wd) (float clip-gradient) lr-scheduler))
   ([]
    (dcasgd {})))
@@ -49,10 +49,10 @@
    It is implemented according to
    https://github.com/torch/optim/blob/master/sgd.lua"
   ([{:keys [learning-rate momentum wd clip-gradient lr-scheduler] :as opts
-      :or {learning-rate 0.01
-           momentum 0.0
-           wd 0.0001
-           clip-gradient 0}}]
+     :or {learning-rate 0.01
+          momentum 0.0
+          wd 0.0001
+          clip-gradient 0}}]
    (new NAG (float learning-rate) (float momentum) (float wd) (float clip-gradient) lr-scheduler))
   ([]
    (nag {})))
@@ -106,7 +106,7 @@
           rescale-gradient 1.0
           epsilon 1e-7
           wd 0.0}}]
-   (new AdaGrad (float learning-rate) (float rescale-gradient) (float epsilon) (float wd) ))
+   (new AdaGrad (float learning-rate) (float rescale-gradient) (float epsilon) (float wd)))
   ([]
    (ada-grad {})))
 
@@ -139,7 +139,7 @@
    (adam {})))
 
 (defn sgld
- "Stochastic Langevin Dynamics Updater to sample from a distribution.
+  "Stochastic Langevin Dynamics Updater to sample from a distribution.
 
   - learning-rate Step size.
   - rescale-gradient rescaling factor of gradient.
@@ -169,7 +169,6 @@
   (doto optimizer
     (.update (int index) weight grad state)))
 
-
 (defn create-state
   "Create additional optimizer state such as momentum."
   [optimizer index weight]
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/profiler.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/profiler.clj
index 0bc93cc558e..48fd0414d82 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/profiler.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/profiler.clj
@@ -26,7 +26,7 @@
    -fileName, optional The name of output trace file. Default is profile.json."
   [kwargs]
   (Profiler/profilerSetConfig
-   (util/convert-io-map kwargs) ))
+   (util/convert-io-map kwargs)))
 
 (defn profiler-set-state
   "Set up the profiler state to record operator.
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/random.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/random.clj
index 99f09aab993..d6e33789a62 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/random.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/random.clj
@@ -34,7 +34,7 @@
    (uniform low high shape-vec {})))
 
 (defn normal
-    "Generate normal(Gaussian) distribution N(mean, stdvar^^2) with shape.
+  "Generate normal(Gaussian) distribution N(mean, stdvar^^2) with shape.
     loc: The standard deviation of the normal distribution
     scale: The upper bound of distribution.
     shape-vec: vector shape of the ndarray generated.
@@ -47,7 +47,6 @@
   ([loc scale shape-vec]
    (normal loc scale shape-vec {})))
 
-
 (defn seed
   " Seed the random number generators in mxnet.
     This seed will affect behavior of functions in this module,
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/shape.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/shape.clj
index 684cb0fc56e..01bedeff8a9 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/shape.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/shape.clj
@@ -19,7 +19,6 @@
   (:require [t6.from-scala.core :refer [$] :as $])
   (:import (org.apache.mxnet Shape)))
 
-
 (defn ->shape [v]
   (new Shape (apply $/immutable-list (map int v))))
 
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/symbol.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/symbol.clj
index 2dcd8475633..42ae034eb6d 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/symbol.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/symbol.clj
@@ -28,7 +28,6 @@
             [org.apache.clojure-mxnet.ndarray :as ndarray])
   (:import (org.apache.mxnet Symbol)))
 
-
 ;; loads the generated functions into the namespace
 (do (clojure.core/load "gen/symbol"))
 
@@ -44,14 +43,14 @@
   kwarg-map: Additional attributes which must start and end with double underscores"
   ([var-name]
    (variable var-name {}))
-  ([var-name  {:keys [attrs shape lr-mult wd-mult dtype kwargs]:as opts}]
-    (Symbol/Variable var-name
-                     (when attrs (util/convert-symbol-map attrs))
-                     (when shape (mx-shape/->shape shape))
-                     (if lr-mult (float lr-mult)($/option nil))
-                     (if wd-mult (float wd-mult)($/option nil))
-                     dtype
-                     (if kwargs (util/convert-symbol-map kwargs) (util/empty-map)))))
+  ([var-name  {:keys [attrs shape lr-mult wd-mult dtype kwargs] :as opts}]
+   (Symbol/Variable var-name
+                    (when attrs (util/convert-symbol-map attrs))
+                    (when shape (mx-shape/->shape shape))
+                    (if lr-mult (float lr-mult) ($/option nil))
+                    (if wd-mult (float wd-mult) ($/option nil))
+                    dtype
+                    (if kwargs (util/convert-symbol-map kwargs) (util/empty-map)))))
 
 (defn bind
   "Bind the current symbol to get an executor.
@@ -136,80 +135,80 @@
   ([start stop  {:keys [step repeat dtype]
                  :or {step (float 1) repeat (int 1) dtype base/MX_REAL_TYPE}
                  :as opts}]
-   (Symbol/arange (float start) ($/option(float stop)) step repeat nil dtype))
+   (Symbol/arange (float start) ($/option (float stop)) step repeat nil dtype))
   ([start stop]
    (arange start stop {})))
 
 ;;; manually defined because of a conflicting arity of 2 with the auto-gen
 (defn min
- ([sym-name kwargs-map symbol-list kwargs-map-1]
-  (util/coerce-return
-   (Symbol/min
-    (util/nil-or-coerce-param sym-name #{"java.lang.String"})
-    (util/nil-or-coerce-param
-     kwargs-map
-     #{"scala.collection.immutable.Map"})
-    (util/nil-or-coerce-param symbol-list #{"scala.collection.Seq"})
-    (util/nil-or-coerce-param
-     kwargs-map-1
-     #{"scala.collection.immutable.Map"}))))
- ([sym-name attr-map kwargs-map]
-  (min sym-name attr-map (util/empty-list) kwargs-map))
- ([kwargs-map] (min nil nil (util/empty-list) kwargs-map))
- ([sym1 sym2]
-  (util/coerce-return
-   (Symbol/min
-    (util/nil-or-coerce-param
-     sym1
-     #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})
-    (util/nil-or-coerce-param
-     sym2
-     #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})))))
+  ([sym-name kwargs-map symbol-list kwargs-map-1]
+   (util/coerce-return
+    (Symbol/min
+     (util/nil-or-coerce-param sym-name #{"java.lang.String"})
+     (util/nil-or-coerce-param
+      kwargs-map
+      #{"scala.collection.immutable.Map"})
+     (util/nil-or-coerce-param symbol-list #{"scala.collection.Seq"})
+     (util/nil-or-coerce-param
+      kwargs-map-1
+      #{"scala.collection.immutable.Map"}))))
+  ([sym-name attr-map kwargs-map]
+   (min sym-name attr-map (util/empty-list) kwargs-map))
+  ([kwargs-map] (min nil nil (util/empty-list) kwargs-map))
+  ([sym1 sym2]
+   (util/coerce-return
+    (Symbol/min
+     (util/nil-or-coerce-param
+      sym1
+      #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})
+     (util/nil-or-coerce-param
+      sym2
+      #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})))))
 
 ;;; manually defined because of a conflicting arity of 2 with the auto-gen
 
 (defn max
- ([sym1 sym2]
-  (util/coerce-return
-   (Symbol/max
-    (util/nil-or-coerce-param
-     sym1
-     #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})
-    (util/nil-or-coerce-param
-     sym2
-     #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"}))))
- ([sym-name kwargs-map symbol-list kwargs-map-1]
-  (util/coerce-return
-   (Symbol/max
-    (util/nil-or-coerce-param sym-name #{"java.lang.String"})
-    (util/nil-or-coerce-param
-     kwargs-map
-     #{"scala.collection.immutable.Map"})
-    (util/nil-or-coerce-param symbol-list #{"scala.collection.Seq"})
-    (util/nil-or-coerce-param
-     kwargs-map-1
-     #{"scala.collection.immutable.Map"}))))
- ([sym-name attr-map kwargs-map]
-  (max sym-name attr-map (util/empty-list) kwargs-map))
+  ([sym1 sym2]
+   (util/coerce-return
+    (Symbol/max
+     (util/nil-or-coerce-param
+      sym1
+      #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"})
+     (util/nil-or-coerce-param
+      sym2
+      #{"ml.dmlc.mxnet.Symbol" "java.lang.Object"}))))
+  ([sym-name kwargs-map symbol-list kwargs-map-1]
+   (util/coerce-return
+    (Symbol/max
+     (util/nil-or-coerce-param sym-name #{"java.lang.String"})
+     (util/nil-or-coerce-param
+      kwargs-map
+      #{"scala.collection.immutable.Map"})
+     (util/nil-or-coerce-param symbol-list #{"scala.collection.Seq"})
+     (util/nil-or-coerce-param
+      kwargs-map-1
+      #{"scala.collection.immutable.Map"}))))
+  ([sym-name attr-map kwargs-map]
+   (max sym-name attr-map (util/empty-list) kwargs-map))
   ([kwargs-map] (max nil nil (util/empty-list) kwargs-map)))
 
 ;;; redefining to make it easier to work with
 
 (defn- coerce-infer-shape-return [ret]
   (->> ret
-          (map util/scala-vector->vec)
-          (map (fn [shapes] (map mx-shape/->vec shapes)))))
+       (map util/scala-vector->vec)
+       (map (fn [shapes] (map mx-shape/->vec shapes)))))
 
 (defn
- infer-shape
- ([sym vec-or-strings vec-of-ints vec-of-ints-1]
-  (let [ret (util/coerce-return
-             (.inferShape
-              sym
-              (util/nil-or-coerce-param vec-or-strings #{"java.lang.String<>"})
-              (util/nil-or-coerce-param vec-of-ints #{"int<>"})
-              (util/nil-or-coerce-param vec-of-ints-1 #{"int<>"})))]
-    (coerce-infer-shape-return ret)))
+  infer-shape
+  ([sym vec-or-strings vec-of-ints vec-of-ints-1]
+   (let [ret (util/coerce-return
+              (.inferShape
+               sym
+               (util/nil-or-coerce-param vec-or-strings #{"java.lang.String<>"})
+               (util/nil-or-coerce-param vec-of-ints #{"int<>"})
+               (util/nil-or-coerce-param vec-of-ints-1 #{"int<>"})))]
+     (coerce-infer-shape-return ret)))
   ([sym symbol-list-or-kwargs-map]
    (let [ret (util/coerce-return
               (.inferShape
@@ -235,5 +234,4 @@
                                (into {})))
           param-name (format "%s-%04d.params" prefix epoch)]
       (ndarray/save param-name save-map)
-      (println "Saved checkpoint to " param-name)))
-  )
+      (println "Saved checkpoint to " param-name))))
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
index f42a1248f23..8f2bb3bfae9 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/util.clj
@@ -75,11 +75,10 @@
 (defn convert-tuple [param]
   (apply $/tuple param))
 
-
 (def tuple-param-names #{"kernel" "stride" "pad" "target-shape" "shape"})
 
 (defn convert-by-shape [param]
-    (into {} (mapv (fn [[k v]]
+  (into {} (mapv (fn [[k v]]
                    [k (if (vector? v) (mx-shape/->shape v) v)])
                  param)))
 
@@ -87,8 +86,8 @@
   (into {} (mapv (fn [[k v]]
                    (if (or (get tuple-param-names k)
                            (get tuple-param-names (name k)))
-                               [k (str (if (vector? v) (mx-shape/->shape v) v))]
-                               [k v]))
+                     [k (str (if (vector? v) (mx-shape/->shape v) v))]
+                     [k v]))
                  param)))
 
 (def io-param-names #{"input-shape" "data-shape" "label-shape"})
@@ -110,7 +109,6 @@
                                 flatten
                                 keyword->snake-case))))
 
-
 (defn convert-symbol-map [param]
   (convert-map (tuple-convert-by-param-name param)))
 
@@ -183,7 +181,7 @@
   [f]
   `($/fn ~@(drop-last (rest f)) ~(last f)))
 
-(defn translate-keyword-shape[[k v]]
+(defn translate-keyword-shape [[k v]]
   [(if (keyword? k) (string/replace (name k) "-" "_") k)
    (if (vector? v) (mx-shape/->shape v) v)])
 
diff --git a/contrib/clojure-package/src/org/apache/clojure_mxnet/visualization.clj b/contrib/clojure-package/src/org/apache/clojure_mxnet/visualization.clj
index c7002bf676a..37d141bb654 100644
--- a/contrib/clojure-package/src/org/apache/clojure_mxnet/visualization.clj
+++ b/contrib/clojure-package/src/org/apache/clojure_mxnet/visualization.clj
@@ -20,8 +20,6 @@
             [org.apache.clojure-mxnet.shape :as mx-shape])
   (:import (org.apache.mxnet Visualization)))
 
-
-
 (defn plot-network
   "convert symbol to Dot object for visualization
    -  symbol symbol to be visualized
@@ -47,7 +45,6 @@
   ([sym shape-map]
    (plot-network sym shape-map {})))
 
-
 (defn render
   " Render file with Graphviz engine into format.
     - dot the dot file from plot-network function
diff --git a/contrib/clojure-package/test/dev/generator_test.clj b/contrib/clojure-package/test/dev/generator_test.clj
index ed168632208..a3ec338921b 100644
--- a/contrib/clojure-package/test/dev/generator_test.clj
+++ b/contrib/clojure-package/test/dev/generator_test.clj
@@ -30,7 +30,7 @@
 (defn ndarray-reflect-info [name]
   (->> gen/ndarray-public-no-default
        (filter #(= name (str (:name %))))
-                            first))
+       first))
 
 (defn symbol-reflect-info [name]
   (->> gen/symbol-public-no-default
@@ -50,7 +50,6 @@
     (is (= transformed-params (gen/symbol-transform-param-name
                                (:parameter-types (symbol-reflect-info "floor")))))))
 
-
 (deftest test-ndarray-transform-param-name
   (let [params ["scala.collection.immutable.Map"
                 "scala.collection.Seq"]
@@ -116,13 +115,13 @@
               sym-name
               nil
               (if
-                  (clojure.core/map? kwargs-map-or-vec-or-sym)
+               (clojure.core/map? kwargs-map-or-vec-or-sym)
                 (util/empty-list)
                 (util/coerce-param
                  kwargs-map-or-vec-or-sym
                  #{"scala.collection.Seq"}))
               (if
-                  (clojure.core/map? kwargs-map-or-vec-or-sym)
+               (clojure.core/map? kwargs-map-or-vec-or-sym)
                 (org.apache.clojure-mxnet.util/convert-symbol-map
                  kwargs-map-or-vec-or-sym)
                 nil))))
@@ -132,13 +131,13 @@
               nil
               nil
               (if
-                  (clojure.core/map? kwargs-map-or-vec-or-sym)
+               (clojure.core/map? kwargs-map-or-vec-or-sym)
                 (util/empty-list)
                 (util/coerce-param
                  kwargs-map-or-vec-or-sym
                  #{"scala.collection.Seq"}))
               (if
-                  (clojure.core/map? kwargs-map-or-vec-or-sym)
+               (clojure.core/map? kwargs-map-or-vec-or-sym)
                 (org.apache.clojure-mxnet.util/convert-symbol-map
                  kwargs-map-or-vec-or-sym)
                 nil))))
@@ -170,17 +169,17 @@
 (deftest test-gen-ndarray-function-arity
   (let [op-name (symbol "$div")
         op-values {1 [{:name (symbol "$div")
-                        :return-type "org.apache.mxnet.NDArray,"
-                        :declaring-class "org.apache.mxnet.NDArray,"
-                        :parameter-types ["float"],
-                        :exception-types [],
-                        :flags #{:public}}
-                       {:name (symbol "$div")
-                        :return-type "org.apache.mxnet.NDArray,"
-                        :declaring-class "org.apache.mxnet.NDArray,"
-                        :parameter-types ["org.apache.mxnet.NDArray"],
-                        :exception-types [],
-                        :flags #{:public}}]}]
+                       :return-type "org.apache.mxnet.NDArray,"
+                       :declaring-class "org.apache.mxnet.NDArray,"
+                       :parameter-types ["float"],
+                       :exception-types [],
+                       :flags #{:public}}
+                      {:name (symbol "$div")
+                       :return-type "org.apache.mxnet.NDArray,"
+                       :declaring-class "org.apache.mxnet.NDArray,"
+                       :parameter-types ["org.apache.mxnet.NDArray"],
+                       :exception-types [],
+                       :flags #{:public}}]}]
     (is (= '(([ndarray num-or-ndarray]
               (util/coerce-return
                (.$div
@@ -192,19 +191,19 @@
 
 (deftest test-write-to-file
   (testing "symbol"
-   (let [fname "test/test-symbol.clj"
-         _ (gen/write-to-file [(first gen/all-symbol-functions)]
-                              gen/symbol-gen-ns
-                              fname)
-         good-contents (slurp "test/good-test-symbol.clj")
-         contents (slurp fname)]
-     (is (= good-contents contents))))
+    (let [fname "test/test-symbol.clj"
+          _ (gen/write-to-file [(first gen/all-symbol-functions)]
+                               gen/symbol-gen-ns
+                               fname)
+          good-contents (slurp "test/good-test-symbol.clj")
+          contents (slurp fname)]
+      (is (= good-contents contents))))
 
   (testing "ndarray"
-   (let [fname "test/test-ndarray.clj"
-         _ (gen/write-to-file [(first gen/all-ndarray-functions)]
-                              gen/ndarray-gen-ns
-                              fname)
-         good-contents (slurp "test/good-test-ndarray.clj")
-         contents (slurp fname)]
-     (is (= good-contents contents)))))
+    (let [fname "test/test-ndarray.clj"
+          _ (gen/write-to-file [(first gen/all-ndarray-functions)]
+                               gen/ndarray-gen-ns
+                               fname)
+          good-contents (slurp "test/good-test-ndarray.clj")
+          contents (slurp fname)]
+      (is (= good-contents contents)))))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/conv_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/conv_test.clj
index 856a9f5ab9c..feda45b9d02 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/conv_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/conv_test.clj
@@ -57,10 +57,7 @@
     (sym/convolution "conv1" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
     (sym/batch-norm "bn1" {:data data})
     (sym/activation "relu1" {:data data :act-type "relu"})
-    (sym/pooling "mp1" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]})
-
-
-    (sym/convolution "conv2" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
+    (sym/pooling "mp1" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]}) (sym/convolution "conv2" {:data data :kernel [3 3] :num-filter 32 :stride [2 2]})
     (sym/batch-norm "bn2" {:data data})
     (sym/activation "relu2" {:data data :act-type "relu"})
     (sym/pooling "mp2" {:data data :kernel [2 2] :pool-type "max" :stride [2 2]})
@@ -69,10 +66,8 @@
     (sym/fully-connected "fc2" {:data data :num-hidden 10})
     (sym/softmax-output "softmax" {:data data})))
 
-
-
 (deftest test-conv []
-  (let [mod (m/module (get-symbol) )]
+  (let [mod (m/module (get-symbol))]
     ;;; note only one function for training
     (m/fit mod {:train-data train-data :eval-data test-data :num-epoch num-epoch
                 :fit-params (m/fit-params {:optimizer (optimizer/sgd {:learning-rate 0.1
@@ -90,5 +85,4 @@
 (comment
 
   (require '[clojure.reflect :as r])
-  (r/reflect train-data)
-  )
+  (r/reflect train-data))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
index 6c885ce8158..b2a87d41e34 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/executor_test.clj
@@ -53,7 +53,6 @@
         (is (test-util/approx= 1e-6 (ndarray/->vec lhs-grad) (ndarray/->vec lhs-grad2)))
         (is (test-util/approx= 1e-6 (ndarray/->vec rhs-grad) (ndarray/->vec rhs-grad2)))))))
 
-
 (deftest test-reshape
   (let [x (sym/variable "x")
         y (sym/fully-connected {:data x :num-hidden 4})
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/io_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/io_test.clj
index 2ccfc1c3c18..ace39ec201e 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/io_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/io_test.clj
@@ -59,7 +59,6 @@
         (is (= label1 label0))
         (is (= data1 data0))))))
 
-
 (deftest test-image-record-iter
   (let [_ (when-not (.exists (io/file "data/cifar/train.rec"))
             (sh "scripts/get_cifar_data.sh"))
@@ -120,7 +119,6 @@
       (is (= #{[100]} (into #{} (map :shape provide-label))))
       (mx-io/dispose prefetch-iter))))
 
-
 (deftest test-ndarray-iter
   (let [shape0 [1000 2 2]
         data [(ndarray/ones shape0) (ndarray/zeros shape0)]
@@ -138,17 +136,17 @@
           nbatch0 8]
       (is (= nbatch0 (count (mx-io/for-batches data-iter0 (fn [batch] 1)))))
       (is (every? true? (mx-io/for-batches data-iter0
-                                            (fn [batch]
-                                              (= batch-data0
-                                                 (first (mx-io/batch-data batch)))))))
+                                           (fn [batch]
+                                             (= batch-data0
+                                                (first (mx-io/batch-data batch)))))))
       (is (every? true? (mx-io/for-batches data-iter0
-                                            (fn [batch]
-                                              (= batch-data1
-                                                 (second (mx-io/batch-data batch)))))))
+                                           (fn [batch]
+                                             (= batch-data1
+                                                (second (mx-io/batch-data batch)))))))
       (is (every? true? (mx-io/for-batches data-iter0
-                                            (fn [batch]
-                                              (= batch-label
-                                                 (first (mx-io/batch-label batch))))))))
+                                           (fn [batch]
+                                             (= batch-label
+                                                (first (mx-io/batch-label batch))))))))
 
     ;; test discard
     (let [data-iter1 (mx-io/ndarray-iter data {:label label
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
index 5ec918fbf15..f3d4e75e8c9 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/module_test.clj
@@ -32,7 +32,6 @@
             [clojure.reflect :as r]
             [clojure.string :as string]))
 
-
 (deftest test-model-dtype
   (let [dtype dtype/FLOAT32
         dshape [3 8 7]
@@ -44,14 +43,14 @@
         (m/bind {:data-shapes [{:name "data" :shape dshape :dtype dtype :layout "TNC"}]})
         (m/init-params)
         (m/forward {:data [(ndarray/ones dshape {:dtype dtype})]})
-        (m/backward[(ndarray/ones dshape {:dtype dtype})]))
+        (m/backward [(ndarray/ones dshape {:dtype dtype})]))
     (let [outputs  (-> mod (m/outputs) flatten)]
       (is (every? #(= dtype/FLOAT32 (ndarray/dtype %)) outputs)))))
 
 (deftest test-module-input-grads
   (let [a (sym/variable "a" {:kwargs {"__layout__" "NC"}})
         b (sym/variable "b" {:kwargs {"__layout__" "NC"}})
-        c (sym/variable "c" {:kwargs {"__layout__" "NC"}} )
+        c (sym/variable "c" {:kwargs {"__layout__" "NC"}})
         c (sym/+ a (sym/+ (sym/* b 2) (sym/* c 3)))
         mod (m/module c ["b" "c" "a"] nil [(context/cpu 0) (context/cpu 1)])]
     (-> mod
@@ -61,11 +60,11 @@
                  :inputs-need-grad true})
         (m/init-params)
         (m/forward {:data [(ndarray/ones [5 5])
-                            (ndarray/ones [5 5])
-                            (ndarray/ones [5 5])]
-                     :label nil
-                     :index nil
-                     :pad 0})
+                           (ndarray/ones [5 5])
+                           (ndarray/ones [5 5])]
+                    :label nil
+                    :index nil
+                    :pad 0})
         (m/backward [(ndarray/ones [5 5])]))
     (let [[a-grad b-grad c-grad] (m/input-grads-merged mod)]
       (is (every? #(= 1.0 %) (ndarray/->vec a-grad)))
@@ -74,17 +73,17 @@
 
 (deftest test-module-layout
   (let [s (sym/variable "data")
-        s (sym/activation "act "{"__layout__" "TNC"} {:data s :act_type "relu"})
+        s (sym/activation "act " {"__layout__" "TNC"} {:data s :act_type "relu"})
         dshape [3 8 7]
         mod (m/module s ["data"] nil [(context/cpu 0) (context/cpu 1)])]
     (-> mod
         (m/bind {:data-shapes [{:name "data" :shape dshape :dtype dtype/FLOAT32 :layout "TNC"}]})
         (m/init-params)
         (m/forward {:data [(ndarray/ones dshape)]
-                     :label nil
-                     :index nil
-                     :pad 0})
-        (m/backward[(ndarray/ones dshape)]))
+                    :label nil
+                    :index nil
+                    :pad 0})
+        (m/backward [(ndarray/ones dshape)]))
     (let [outputs-merged (m/outputs-merged mod)
           outputs (m/outputs mod)
           hd-shape [3 4 7]]
@@ -107,7 +106,7 @@
       (-> mod2
           (m/bind {:data-shapes [{:name "data" :shape [10 10] :layout "NT"}]})
           (m/init-optimizer {:optimizer (optimizer/sgd {:learning-rate 0.1 :momentum 0.9})}))
-      (is (= (-> mod m/symbol sym/to-json)  (-> mod2 m/symbol sym/to-json) ))
+      (is (= (-> mod m/symbol sym/to-json)  (-> mod2 m/symbol sym/to-json)))
       (is (= (-> mod m/params first) (-> mod2 m/params first))))))
 
 (deftest test-module-save-load-multi-device
@@ -127,7 +126,7 @@
       (-> mod2
           (m/bind {:data-shapes [{:name "data" :shape [10 10] :layout "NT"}]})
           (m/init-optimizer {:optimizer (optimizer/sgd {:learning-rate 0.1 :momentum 0.9})}))
-      (is (= (-> mod m/symbol sym/to-json)  (-> mod2 m/symbol sym/to-json) ))
+      (is (= (-> mod m/symbol sym/to-json)  (-> mod2 m/symbol sym/to-json)))
       (is (= (-> mod m/params first) (-> mod2 m/params first))))))
 
 (deftest test-module-reshape
@@ -158,7 +157,7 @@
   (let [data (ndarray/array [0.05 0.1] [1 1 1 2])
         label (ndarray/array [0.01 0.99] [1 1 1 2])
         train-data (mx-io/ndarray-iter [data] {:label [label] :label-name "softmax_label"})
-          x (as-> (sym/variable "data") v
+        x (as-> (sym/variable "data") v
             (sym/fully-connected "fc_0" {:data v :num-hidden 2})
             (sym/activation "act_0" {:data v :act-type "sigmoid"})
             (sym/fully-connected "fc_1" {:data v :num-hidden 2})
@@ -166,7 +165,7 @@
             (sym/linear-regression-output "softmax" {:data v :grad-scale 2}))
 
         mod (m/module x)]
-    (m/bind mod {:data-shapes (mx-io/provide-data train-data) :label-shapes (mx-io/provide-label train-data)} )
+    (m/bind mod {:data-shapes (mx-io/provide-data train-data) :label-shapes (mx-io/provide-label train-data)})
 
     (let [arg-params-correct {"fc_0_weight" (ndarray/array [0.15 0.2 0.25 0.3] [2 2])
                               "fc_0_bias" (ndarray/array [0.35 0.35] [2])
@@ -214,14 +213,13 @@
     (let [result (monitor/toc mon)
           freq (->> result
                     (map (fn [v] (as-> (second v) ?
-                                     (clojure.string/split ? #"_")
+                                   (clojure.string/split ? #"_")
                                    (take 2 ?)
                                    (clojure.string/join "_" ?))))
                     (frequencies))
           expected-freq {"act_0" 2 "act_1" 2 "data" 1 "fc_0" 6 "fc_1" 6}]
       (is (= expected-freq (select-keys freq (keys expected-freq)))))))
 
-
 (deftest test-forward-reshape
   (let [num-class 10
         data1 (sym/variable "data1")
@@ -271,9 +269,9 @@
       (-> mod
           (m/forward data-batch))
       (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
-         (-> mod
-        (m/backward)
-        (m/update)))
+      (-> mod
+          (m/backward)
+          (m/update)))
 
     (let [d-shape1 [20 3 64 64]
           d-shape2 [20 3 32 32]
@@ -286,43 +284,41 @@
       (-> mod
           (m/forward data-batch))
       (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
-         (-> mod
-        (m/backward)
-        (m/update)))
+      (-> mod
+          (m/backward)
+          (m/update)))
 
     ;; train with both different batch sizes and data shapes
     (let [d-shape1 [20 3 120 120]
           d-shape2 [20 3 32 64]
           l-shape [20]
           data-batch {:data [(ndarray/random-uniform 0 9 (str (mx-shape/->shape d-shape1)))
-                               (ndarray/random-uniform 15 25 (str (mx-shape/->shape d-shape2)))]
-                        :label [(ndarray/ones l-shape)]
-                        :index nil
-                        :pad 0}]
+                             (ndarray/random-uniform 15 25 (str (mx-shape/->shape d-shape2)))]
+                      :label [(ndarray/ones l-shape)]
+                      :index nil
+                      :pad 0}]
       (-> mod
           (m/forward data-batch))
       (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
-         (-> mod
-        (m/backward)
-        (m/update)))
+      (-> mod
+          (m/backward)
+          (m/update)))
     (let [d-shape1 [5 3 28 40]
           d-shape2 [5 3 24 16]
           l-shape [5]
           data-batch {:data [(ndarray/random-uniform 0 9 (str (mx-shape/->shape d-shape1)))
-                               (ndarray/random-uniform 15 25 (str (mx-shape/->shape d-shape2)))]
-                        :label [(ndarray/ones l-shape)]
-                        :index nil
-                        :pad 0}]
+                             (ndarray/random-uniform 15 25 (str (mx-shape/->shape d-shape2)))]
+                      :label [(ndarray/ones l-shape)]
+                      :index nil
+                      :pad 0}]
       (-> mod
           (m/forward data-batch))
       (is (= [(first l-shape) num-class]) (-> (m/outputs-merged mod) first (ndarray/shape) (mx-shape/->vec)))
-         (-> mod
-        (m/backward)
-        (m/update)))))
-
+      (-> mod
+          (m/backward)
+          (m/update)))))
 
 (comment
 
- (m/data-shapes x)
-  )
+  (m/data-shapes x))
 
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
index 25d01ec5bec..79e94412d0d 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/ndarray_test.clj
@@ -46,13 +46,13 @@
 
 (deftest test-set-scalar-value
   (is (= [10.0 10.0] (-> (ndarray/empty [2 1])
-                      (ndarray/set 10)
-                      (->vec)))))
+                         (ndarray/set 10)
+                         (->vec)))))
 
 (deftest test-copy-from-vector
   (is (= [1.0 2.0 3.0 4.0] (-> (ndarray/empty [4 1])
-                            (ndarray/set [1 2 3 4])
-                            (->vec)))))
+                               (ndarray/set [1 2 3 4])
+                               (->vec)))))
 
 (deftest test-plus
   (let [ndzeros (zeros [2 1])
@@ -103,12 +103,12 @@
 
 (deftest test-clip
   (let [nda (-> (ndarray/empty [3 2])
-                  (ndarray/set [1 2 3 4 5 6]))]
+                (ndarray/set [1 2 3 4 5 6]))]
     (is (= [2.0 2.0 3.0 4.0 5.0 5.0] (->vec (ndarray/clip nda 2 5))))))
 
 (deftest test-sqrt
   (let [nda (-> (ndarray/empty [4 1])
-                  (ndarray/set [0 1 4 9]))]
+                (ndarray/set [0 1 4 9]))]
     (is (= [0.0 1.0 2.0 3.0] (->vec (ndarray/sqrt nda))))))
 
 (deftest test-rsqrt
@@ -138,7 +138,6 @@
     (is (= [1 1] (mx-shape/->vec (shape res))))
     (is (= [11.0] (->vec res)))))
 
-
 (deftest test-arrange
   (let [start 0
         stop 5
@@ -179,7 +178,6 @@
       (is (= [2 1] (-> nda shape mx-shape/->vec)))
       (is (= [27.0 3125.0] (->vec nda))))))
 
-
 (deftest test-equal
   (let [nda1 (ndarray/array [1 2 3 5] [2 2])
         nda2 (ndarray/array [1 4 3 6] [2 2])]
@@ -190,7 +188,6 @@
     (is (= [2 2] (-> (ndarray/equal nda1 3) shape mx-shape/->vec)))
     (is (= [0.0 0.0 1.0 0.0] (->vec (ndarray/equal nda1 3))))))
 
-
 (deftest test-not-equal
   (let [nda1 (ndarray/array [1 2 3 5] [2 2])
         nda2 (ndarray/array [1 4 3 6] [2 2])]
@@ -211,7 +208,6 @@
     (is (= [2 2] (-> (ndarray/> nda1 2) shape mx-shape/->vec)))
     (is (= [0.0 0.0 1.0 1.0] (->vec (ndarray/> nda1 2))))))
 
-
 (deftest test-greater-equal
   (let [nda1 (ndarray/array [1 2 4 5] [2 2])
         nda2 (ndarray/array [1 4 3 6] [2 2])]
@@ -242,7 +238,6 @@
     (is (= [2 2] (-> (ndarray/< nda1 2) shape mx-shape/->vec)))
     (is (= [1.0 1.0 0.0 0.0] (->vec (ndarray/<= nda1 2))))))
 
-
 (deftest test-choose-element-0index
   (let [nda (ndarray/array [1 2 3 4 6 5] [2 3])
         indices (ndarray/array [0 1] [2])
@@ -331,7 +326,6 @@
     (is (= [2] (-> argmax shape mx-shape/->vec)))
     (is (= [1.0 0.0] (->vec argmax)))))
 
-
 (deftest test-concatenate-axis-0
   (let [nda1 (ndarray/array [1 2 4 3 3 3] [2 3])
         nda2 (ndarray/array [8 7 6] [1 3])
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
index 1a822d5b479..a71a312e1ae 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/operator_test.clj
@@ -50,9 +50,8 @@
       (doseq [grad arr-grad]
         (is (= out-grad grad))))))
 
-
 (deftest test-concat
-  (let [shape-vecs[[2 2] [3 2]]
+  (let [shape-vecs [[2 2] [3 2]]
         x (sym/variable "x")
         y (sym/variable "y")
         out (sym/concat "conc" nil [x y] {:dim 0})
@@ -80,7 +79,6 @@
           np-grads arr-np]
       (is (= grads (mapv #(ndarray/+ % 1) np-grads))))))
 
-
 (defn check-regression [model forward-fn backward-fn]
   (let [shape-vec [3 1]
         arr-data (random/uniform -1 1 shape-vec)
@@ -99,7 +97,6 @@
                            np-out (ndarray/->vec arr-label))]
       (is (approx= 1e-6 npout-back arr-grad)))))
 
-
 (deftest test-regression
   (check-regression (sym/logistic-regression-output {:data (sym/variable "data") :label (sym/variable "label")})
                     (fn [x] (/ 1.0 (+ 1.0 (Math/exp (* -1.0 x)))))
@@ -151,7 +148,6 @@
         (let [val (ndarray/->vec (ndarray/slice out i))]
           (is (approx= 1e-6 [1 1 1 2 2 2] val)))))))
 
-
 (defn check-symbolic-forward [test-sym location expected tolerance]
   (let [arr-data (mapv #(ndarray/copy %) location)
         arr-grad (mapv #(ndarray/empty (mx-shape/->vec (ndarray/shape %))) location)
@@ -184,7 +180,6 @@
                        expected
                        grad-arrays)))))
 
-
 (deftest test-scalar-op
   (let [data (sym/variable "data")
         shape-vec [3 4]
@@ -216,7 +211,6 @@
                  [0 0 0 0]
                  (-> exec (executor/forward) (executor/outputs) (first))))))
 
-
 (deftest test-arange
   (let [start 1
         stop 100
@@ -384,7 +378,6 @@
     (executor/backward exec-test (ndarray/* (ndarray/ones shape-vec) 2))
     (is (approx= 1e-6 (ndarray/zeros shape-vec) arr-grad))))
 
-
 (deftest test-round-ceil-floor
   (let [data (sym/variable "data")
         shape-vec [3 4]
@@ -402,7 +395,6 @@
                      (ndarray/+ (ndarray/floor data-tmp)))
                  (-> (executor/forward exec-test) (executor/outputs) (first))))))
 
-
 (deftest test-rsqrt-cos-sin
   (let [data (sym/variable "data")
         shape-vec [3 4]
@@ -451,8 +443,8 @@
         exec-test (sym/bind test (context/default-context) [arr-data1 arr-data2])
         out (-> (executor/forward exec-test) (executor/outputs) (first))]
     (is (approx= 1e-6
-                           (mapv min (ndarray/->vec data-tmp1) (ndarray/->vec data-tmp2))
-                           out))))
+                 (mapv min (ndarray/->vec data-tmp1) (ndarray/->vec data-tmp2))
+                 out))))
 
 (deftest test-transpose
   (let [data (sym/variable "data")
@@ -513,41 +505,36 @@
     (let [out-grad (ndarray/* (ndarray/ones shape-vec) 2)
           npout-grad (ndarray/* out-grad (ndarray/sign data-tmp))]
       (executor/backward exec-test out-grad)
-      (is (approx= 1e-6 npout-grad arr-grad)))))
-
-
-  ;; configure A: input --> conv --> deconv --> output.
+      (is (approx= 1e-6 npout-grad arr-grad)))));; configure A: input --> conv --> deconv --> output.
   ;;  the convolution and deconvoluiton has similar parameter which ensure
   ;;  the input shape is the same as output, and the same weights between conv
   ;;  and deconv;
   ;;  If the input value of forward() and backwrad() is the same, then
 ;;  the output value of them should also the same;
 
-(defn check-deconvolution-forward-backward [{:keys[input-shape-vec num-filter kernel stride pad]}]
+(defn check-deconvolution-forward-backward [{:keys [input-shape-vec num-filter kernel stride pad]}]
   (let [data (sym/variable "data")
-          conv (sym/convolution "conv" {:data data :kernel kernel :stride stride
-                                        :pad pad :num-filter num-filter :no-bias "true"})
-          deconv (sym/deconvolution "deconv" {:data conv :kernel kernel :stride stride
-                                              :pad pad :num-filter num-filter :no-bias "true"} )
-          arg-names (sym/list-arguments deconv)
-          arg-shape-vecs (first (sym/infer-shape deconv {:data input-shape-vec}))
-          input-data (random/uniform -5 5 input-shape-vec)
-          out-grad input-data
-          conv-weight (random/normal 0 1 [num-filter (second input-shape-vec) (first kernel) (last kernel)])
-          args {:data input-data :conv-weight conv-weight :deconv-weight conv-weight}
-          args-grad (mapv #(ndarray/empty %) arg-shape-vecs)
-          exec (sym/bind deconv (context/default-context) args args-grad)
-          out (-> (executor/forward exec) (executor/outputs) first)]
-      (executor/backward exec out-grad)
-      (is (approx= 1e-3 (ndarray/->vec out) (ndarray/->vec (first args-grad))))))
-
+        conv (sym/convolution "conv" {:data data :kernel kernel :stride stride
+                                      :pad pad :num-filter num-filter :no-bias "true"})
+        deconv (sym/deconvolution "deconv" {:data conv :kernel kernel :stride stride
+                                            :pad pad :num-filter num-filter :no-bias "true"})
+        arg-names (sym/list-arguments deconv)
+        arg-shape-vecs (first (sym/infer-shape deconv {:data input-shape-vec}))
+        input-data (random/uniform -5 5 input-shape-vec)
+        out-grad input-data
+        conv-weight (random/normal 0 1 [num-filter (second input-shape-vec) (first kernel) (last kernel)])
+        args {:data input-data :conv-weight conv-weight :deconv-weight conv-weight}
+        args-grad (mapv #(ndarray/empty %) arg-shape-vecs)
+        exec (sym/bind deconv (context/default-context) args args-grad)
+        out (-> (executor/forward exec) (executor/outputs) first)]
+    (executor/backward exec out-grad)
+    (is (approx= 1e-3 (ndarray/->vec out) (ndarray/->vec (first args-grad))))))
 
 (deftest test-deconvolution-forward-and-backward
   (check-deconvolution-forward-backward {:input-shape-vec [1 1 5 5] :num-filter 1 :kernel [3 3] :stride [1 1] :pad [1 1]})
   (check-deconvolution-forward-backward {:input-shape-vec [32 3 28 28] :num-filter 3 :kernel [3 3] :stride [1 1] :pad [1 1]})
   ;; commented out to make the tests fast
-  #_(check-deconvolution-forward-backward {:input-shape-vec [10 3 403 403] :num-filter 3 :kernel [7 7] :stride [5 5] :pad [2 2]})
-  )
+  #_(check-deconvolution-forward-backward {:input-shape-vec [10 3 403 403] :num-filter 3 :kernel [7 7] :stride [5 5] :pad [2 2]}))
 
 ;;  configure A: input --> conv --> output.
 ;;  configure B: input --> deconv --> output
@@ -558,52 +545,51 @@
 
 (defn check-deconvolution-gradient [{:keys [input-shape-vec num-filter pad]}]
   (let [stride [1 1]
-         kernel [(inc (* 2 (first pad))) (inc (* 2 (second pad)))]
-         data-conv (sym/variable "data_conv")
-         conv (sym/convolution "conv" {:data data-conv :kernel kernel :stride stride
-                                       :pad pad :num-filter num-filter :no-bias "true"})
-         data-deconv (sym/variable "data_deconv")
-         deconv (sym/deconvolution "deconv" {:data data-deconv :kernel kernel :stride stride
-                                             :pad pad :num-filter num-filter :no-bias true})
-         conv-data (random/uniform -5 5 input-shape-vec)
-         conv-args {"data_conv" conv-data "conv_weight" (random/normal 0 1 [num-filter (second input-shape-vec) (first kernel) (second kernel)])}
-         conv-args-grad [(ndarray/zeros (-> conv-data (ndarray/shape) (ndarray/->vec)))
-                         (ndarray/zeros [num-filter (second input-shape-vec) (first kernel) (second kernel)])]
-         exec-conv (sym/bind conv (context/default-context) conv-args conv-args-grad)
-         conv-out-grad (random/normal 0 2 (-> (executor/outputs exec-conv) (first) (ndarray/shape) (mx-shape/->vec)))]
-     (executor/forward exec-conv)
-     (executor/backward exec-conv conv-out-grad)
-
-     (let [deconv-data conv-out-grad
-           deconv-args {"data_deconv" deconv-data "deconv_weight" (get conv-args "conv_weight")}
-           deconv-args-grad [(ndarray/zeros (-> deconv-data (ndarray/shape) (mx-shape/->vec)))
-                             (ndarray/zeros [num-filter (second input-shape-vec) (first kernel) (second kernel)])]
-           exec-deconv (sym/bind deconv (context/default-context) deconv-args deconv-args-grad)
-           deconv-out-grad conv-data]
-       (executor/forward exec-deconv)
-       (executor/backward exec-deconv deconv-out-grad)
-
-       (is (approx= 1e-4 (ndarray/->vec (second conv-args-grad)) (ndarray/->vec (second deconv-args-grad)))))))
+        kernel [(inc (* 2 (first pad))) (inc (* 2 (second pad)))]
+        data-conv (sym/variable "data_conv")
+        conv (sym/convolution "conv" {:data data-conv :kernel kernel :stride stride
+                                      :pad pad :num-filter num-filter :no-bias "true"})
+        data-deconv (sym/variable "data_deconv")
+        deconv (sym/deconvolution "deconv" {:data data-deconv :kernel kernel :stride stride
+                                            :pad pad :num-filter num-filter :no-bias true})
+        conv-data (random/uniform -5 5 input-shape-vec)
+        conv-args {"data_conv" conv-data "conv_weight" (random/normal 0 1 [num-filter (second input-shape-vec) (first kernel) (second kernel)])}
+        conv-args-grad [(ndarray/zeros (-> conv-data (ndarray/shape) (ndarray/->vec)))
+                        (ndarray/zeros [num-filter (second input-shape-vec) (first kernel) (second kernel)])]
+        exec-conv (sym/bind conv (context/default-context) conv-args conv-args-grad)
+        conv-out-grad (random/normal 0 2 (-> (executor/outputs exec-conv) (first) (ndarray/shape) (mx-shape/->vec)))]
+    (executor/forward exec-conv)
+    (executor/backward exec-conv conv-out-grad)
+
+    (let [deconv-data conv-out-grad
+          deconv-args {"data_deconv" deconv-data "deconv_weight" (get conv-args "conv_weight")}
+          deconv-args-grad [(ndarray/zeros (-> deconv-data (ndarray/shape) (mx-shape/->vec)))
+                            (ndarray/zeros [num-filter (second input-shape-vec) (first kernel) (second kernel)])]
+          exec-deconv (sym/bind deconv (context/default-context) deconv-args deconv-args-grad)
+          deconv-out-grad conv-data]
+      (executor/forward exec-deconv)
+      (executor/backward exec-deconv deconv-out-grad)
+
+      (is (approx= 1e-4 (ndarray/->vec (second conv-args-grad)) (ndarray/->vec (second deconv-args-grad)))))))
 
 (deftest test-deconvolution-gradient
   (check-deconvolution-gradient {:input-shape-vec [1 3 5 5] :num-filter 3 :pad [1 1]}))
 
 (defn check-nearest-up-sampling-with-shape [{:keys [shape-vecs scale root-scale]}]
- (let [arr (zipmap (map #(str "arg_" %) (range 0 (count shape-vecs)))
-                   (map #(random/uniform -10 10 %) shape-vecs))
-       arr-grad (zipmap (map #(str "arg_" %) (range 0 (count shape-vecs)))
-                        (map #(ndarray/zeros %) shape-vecs))
-       up-args (mapv #(sym/variable (str "arg_" %)) (range 0 (count shape-vecs)))
-       up (sym/up-sampling "up-sampling" nil up-args {:sample-type "nearest" :scale root-scale})
-       exec (sym/bind up (context/default-context) arr arr-grad)]
-   (executor/forward exec)
-   (executor/backward exec (executor/outputs exec))
-   (doseq [k (range 0 (count shape-vecs))]
-     (let [k-name (str "arg_" k)
-           expected (->> (get arr k-name) (ndarray/->vec) (mapv #(* % (Math/pow root-scale 2) (Math/pow scale (*  2 k)))))
-           real (-> (get arr-grad k-name) (ndarray/->vec))]
-       (is (approx= 0.1 expected real))))))
-
+  (let [arr (zipmap (map #(str "arg_" %) (range 0 (count shape-vecs)))
+                    (map #(random/uniform -10 10 %) shape-vecs))
+        arr-grad (zipmap (map #(str "arg_" %) (range 0 (count shape-vecs)))
+                         (map #(ndarray/zeros %) shape-vecs))
+        up-args (mapv #(sym/variable (str "arg_" %)) (range 0 (count shape-vecs)))
+        up (sym/up-sampling "up-sampling" nil up-args {:sample-type "nearest" :scale root-scale})
+        exec (sym/bind up (context/default-context) arr arr-grad)]
+    (executor/forward exec)
+    (executor/backward exec (executor/outputs exec))
+    (doseq [k (range 0 (count shape-vecs))]
+      (let [k-name (str "arg_" k)
+            expected (->> (get arr k-name) (ndarray/->vec) (mapv #(* % (Math/pow root-scale 2) (Math/pow scale (*  2 k)))))
+            real (-> (get arr-grad k-name) (ndarray/->vec))]
+        (is (approx= 0.1 expected real))))))
 
 (deftest test-nearest-upsampling
   (doall (for [root-scale (range 1 4)
@@ -611,6 +597,6 @@
                num-shape (range 1 4)
                base (range 1 4)]
            (let [shape-vecs (mapv (fn [i] [1 3 (* base root-scale (int (Math/pow scale (- (dec num-shape) i))))
-                                     (* base root-scale (int (Math/pow scale (- (dec num-shape) i))))])
+                                           (* base root-scale (int (Math/pow scale (- (dec num-shape) i))))])
                                   (range 0 num-shape))]
              (check-nearest-up-sampling-with-shape {:shape-vecs shape-vecs :scale scale :root-scale root-scale})))))
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/optimizer_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/optimizer_test.clj
index e90516fcdc4..f6461b10f02 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/optimizer_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/optimizer_test.clj
@@ -33,7 +33,6 @@
         (m/init-optimizer {:optimizer (optimizer-fn)})
         (m/update))))
 
-
 (deftest test-optimizer-update
   (let [opts [["sgd" optimizer/sgd]
               ["dcasgd" optimizer/dcasgd]
diff --git a/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj b/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
index 9d37f07267d..6df2a10f888 100644
--- a/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
+++ b/contrib/clojure-package/test/org/apache/clojure_mxnet/symbol_test.clj
@@ -21,7 +21,6 @@
             [org.apache.clojure-mxnet.util :as util]
             [clojure.test :refer :all]))
 
-
 (deftest test-compose
   (let [data (sym/variable "data")
         net1 (sym/fully-connected "fc1" {:data data :num-hidden 10})
@@ -45,8 +44,8 @@
         net1 (sym/fully-connected "fc2" {:data oldfc :num-hidden 100})]
     (is (= ["data" "fc1_weight" "fc1_bias" "fc2_weight" "fc2_bias"] (sym/list-arguments net1)))
     (= (sym/list-arguments oldfc) (-> (sym/get-internals net1)
-                                    (sym/get "fc1_output")
-                                    (sym/list-arguments)))))
+                                      (sym/get "fc1_output")
+                                      (sym/list-arguments)))))
 
 (deftest test-infer-type
   (let [data (sym/variable "data")


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services