This is an automated email from the ASF dual-hosted git repository.

taolv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new 29885c5  Revert "Bumped minor version from 1.4.0 to 1.5.0 on master, 
updated License file" (#13558)
29885c5 is described below

commit 29885c56700971c1557f7611acb7002d87da5f2b
Author: Tao Lv <[email protected]>
AuthorDate: Thu Dec 6 17:44:06 2018 +0800

    Revert "Bumped minor version from 1.4.0 to 1.5.0 on master, updated License 
file" (#13558)
    
    * Revert "Chi_square_check for discrete distribution fix (#13543)"
    
    This reverts commit cf6e8cbd035bf315b3e8280416468a629c780d03.
    
    * Revert "Updated docs for randint operator (#13541)"
    
    This reverts commit e0ff3c36ee171386fef01fb86c54c343e4b04c14.
    
    * Revert "Simplifications and some fun stuff for the MNIST Gluon tutorial 
(#13094)"
    
    This reverts commit 8bbac827742c21607a863137792f03bd09847419.
    
    * Revert "Fix #13521 (#13537)"
    
    This reverts commit f6b4665995f8f8ff32862a029b2074475d8467eb.
    
    * Revert "Add a retry to qemu_provision (#13551)"
    
    This reverts commit f6f840110d74111f98c20eab5b08d64a46ebf0cd.
    
    * Revert "[MXNET-769] Use MXNET_HOME in a tempdir in windows to prevent 
access denied due t… (#13531)"
    
    This reverts commit bd8e0f8356676749ecae16ec38a366b4cc00bf15.
    
    * Revert "[MXNET-1249] Fix Object Detector Performance with GPU (#13522)"
    
    This reverts commit 1c8972c3c8f832519364916865541f48597581c7.
    
    * Revert "Fixing a 404 in the ubuntu setup doc (#13542)"
    
    This reverts commit cb0db290adcfd0fce956d02c234f81d453e41013.
    
    * Revert "Bumped minor version from 1.4.0 to 1.5.0 on master, updated 
License file (#13478)"
    
    This reverts commit 40db61908000ee86d21aac847ff2225807d6c168.
---
 CMakeLists.txt                                     |  1 -
 LICENSE                                            | 94 ++--------------------
 Makefile                                           |  9 +--
 R-package/DESCRIPTION                              | 10 +--
 ci/docker/runtime_functions.sh                     |  3 +
 ci/jenkins/Jenkins_steps.groovy                    |  8 +-
 contrib/clojure-package/README.md                  | 16 ++--
 .../examples/cnn-text-classification/project.clj   |  2 +-
 contrib/clojure-package/examples/gan/project.clj   |  2 +-
 .../examples/imclassification/project.clj          |  2 +-
 .../clojure-package/examples/module/project.clj    |  2 +-
 .../examples/multi-label/project.clj               |  2 +-
 .../examples/neural-style/project.clj              |  2 +-
 .../examples/pre-trained-models/project.clj        |  2 +-
 .../clojure-package/examples/profiler/project.clj  |  2 +-
 contrib/clojure-package/examples/rnn/project.clj   |  2 +-
 .../clojure-package/examples/tutorial/project.clj  |  6 +-
 .../examples/visualization/project.clj             |  2 +-
 contrib/clojure-package/project.clj                |  4 +-
 docs/api/python/symbol/contrib.md                  |  3 -
 docs/tutorials/scala/mxnet_scala_on_intellij.md    |  4 +-
 include/mxnet/base.h                               |  2 +-
 mkldnn.mk                                          | 12 +--
 python/mxnet/libinfo.py                            |  2 +-
 scala-package/assembly/linux-x86_64-cpu/pom.xml    |  8 +-
 scala-package/assembly/linux-x86_64-gpu/pom.xml    |  8 +-
 scala-package/assembly/osx-x86_64-cpu/pom.xml      |  8 +-
 scala-package/assembly/pom.xml                     |  2 +-
 scala-package/core/pom.xml                         |  6 +-
 scala-package/examples/pom.xml                     |  6 +-
 scala-package/infer/pom.xml                        |  4 +-
 scala-package/init-native/linux-x86_64/pom.xml     |  4 +-
 scala-package/init-native/osx-x86_64/pom.xml       |  4 +-
 scala-package/init-native/pom.xml                  |  2 +-
 scala-package/init/pom.xml                         |  2 +-
 scala-package/macros/pom.xml                       |  6 +-
 scala-package/native/linux-x86_64-cpu/pom.xml      |  4 +-
 scala-package/native/linux-x86_64-gpu/pom.xml      |  4 +-
 scala-package/native/osx-x86_64-cpu/pom.xml        |  4 +-
 scala-package/native/pom.xml                       |  2 +-
 scala-package/pom.xml                              |  2 +-
 scala-package/spark/pom.xml                        |  4 +-
 snapcraft.yaml                                     |  2 +-
 tests/cpp/unittest.mk                              |  8 +-
 .../train_mxnet_legacy_models.sh                   |  4 +-
 tests/python/mkl/test_mkldnn.py                    |  6 +-
 tests/python/mkl/test_mkldnn_install.py            | 56 +++++++++++++
 47 files changed, 158 insertions(+), 192 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1617056..3b8bbd2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -227,7 +227,6 @@ if(USE_MKLDNN)
   include(cmake/DownloadMKLML.cmake)
   # CPU architecture (e.g., C5) can't run on another architecture (e.g., g3).
   if(NOT MSVC)
-    set(MKLDNN_LIBRARY_TYPE "STATIC" CACHE INTERNAL "" FORCE)
     set(ARCH_OPT_FLAGS "-mtune=generic")
   else()
     set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /EHsc")
diff --git a/LICENSE b/LICENSE
index 2eb9c32..a8b57e5 100644
--- a/LICENSE
+++ b/LICENSE
@@ -218,20 +218,16 @@
     1. MXNet Cpp-package - For details, /cpp-package/LICENSE
     2. MXNet rcnn - For details, see, example/rcnn/LICENSE
     3. scala-package - For details, see, scala-package/LICENSE
-    4. Warp-CTC - For details, see, 3rdparty/ctc_include/LICENSE
+    4. Warp-CTC - For details, see, src/operator/contrib/ctc_include/LICENSE
     5. 3rdparty/dlpack - For details, see, 3rdparty/dlpack/LICENSE
     6. 3rdparty/dmlc-core - For details, see, 3rdparty/dmlc-core/LICENSE
     7. 3rdparty/mshadow - For details, see, 3rdparty/mshadow/LICENSE
     8. 3rdparty/tvm - For details, see, 3rdparty/tvm/LICENSE
     9. 3rdparty/tvm/dmlc-core - For details, see, 
3rdparty/tvm/dmlc-core/LICENSE
-    10. 3rdparty/tvm/dlpack - For details, see, 
3rdparty/tvm/3rdparty/dlpack/LICENSE
-    11. 3rdparty/tvm/nnvm - For details, see, 3rdparty/tvm/nnvm/LICENSE
-    12. 3rdparty/ps-lite - For details, see, 3rdparty/ps-lite/LICENSE
-    13. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE
-    14. googlemock scripts/generator - For details, see, 
3rdparty/googletest/googlemock/scripts/generator/LICENSE
-    15. clojure-package - For details, see, contrib/clojure-package/LICENSE
-    16. R-package - For details, see, R-package/LICENSE
-    17. ONNX-TensorRT benchmark package - For details, see, 
3rdparty/onnx-tensorrt/third_party/onnx/third_party/benchmark/LICENSE
+    10. 3rdparty/tvm/nnvm - For details, see, 3rdparty/tvm/nnvm/LICENSE
+    11. 3rdparty/ps-lite - For details, see, 3rdparty/ps-lite/LICENSE
+    12. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE
+    13. googlemock scripts/generator - For details, see, 
3rdparty/googletest/googlemock/scripts/generator/LICENSE
 
 
     
=======================================================================================
@@ -243,9 +239,6 @@
     3. tree_lstm - For details, see example/gluon/tree_lstm/LICENSE
     4. OpenMP - For details, see 3rdparty/openmp/LICENSE.txt
     5. HalideIR - For details, see nnvm/tvm/HalideIR/LICENSE
-    6. HalideIR - For details, see 3rdparty/tvm/3rdparty/HalideIR/LICENSE
-    7. ONNX-TensorRT - For details, see 3rdparty/onnx-tensorrt/LICENSE
-    8. ONNX-TensorRT - For details, see 
3rdparty/onnx-tensorrt/third_party/onnx/LICENSE
 
 
     
=======================================================================================
@@ -253,7 +246,7 @@
     
=======================================================================================
 
     1. Moderngpu
-    For details, see, 3rdparty/ctc_include/contrib/moderngpu/LICENSE
+    For details, see, 
src/operator/contrib/ctc_include/contrib/moderngpu/LICENSE
 
     
/******************************************************************************
     * Redistribution and use in source and binary forms, with or without
@@ -566,79 +559,4 @@
     #  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     #  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-    
=======================================================================================
-
-    12. Google tests
-        For details, ses, 3rdparty/mkldnn/tests/gtests/gtest/LICENSE
-
-    Copyright 2008, Google Inc.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions are
-    met:
-
-        * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-        * Redistributions in binary form must reproduce the above
-    copyright notice, this list of conditions and the following disclaimer
-    in the documentation and/or other materials provided with the
-    distribution.
-        * Neither the name of Google Inc. nor the names of its
-    contributors may be used to endorse or promote products derived from
-    this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-    
=======================================================================================
-
-    13. ONNX python bindings
-    For details, see, 
3rdparty/onnx-tensorrt/third_party/onnx/third_party/pybind11/LICENSE
-
-    Copyright (c) 2016 Wenzel Jakob <[email protected]>, All rights 
reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions are met:
-
-    1. Redistributions of source code must retain the above copyright notice, 
this
-       list of conditions and the following disclaimer.
-
-    2. Redistributions in binary form must reproduce the above copyright 
notice,
-       this list of conditions and the following disclaimer in the 
documentation
-       and/or other materials provided with the distribution.
-
-    3. Neither the name of the copyright holder nor the names of its 
contributors
-       may be used to endorse or promote products derived from this software
-       without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
IS" AND
-    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED
-    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 
LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
LIABILITY,
-    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-    You are under no obligation whatsoever to provide any bug fixes, patches, 
or
-    upgrades to the features, functionality or performance of the source code
-    ("Enhancements") to anyone; however, if you choose to make your 
Enhancements
-    available either publicly, or directly to the author of this software, 
without
-    imposing a separate written license agreement for such Enhancements, then 
you
-    hereby grant the following license: a non-exclusive, royalty-free perpetual
-    license to install, use, modify, prepare derivative works, incorporate into
-    other computer software, distribute, and sublicense such enhancements or
-    derivative works thereof, in binary and source code form.
 
diff --git a/Makefile b/Makefile
index e424904..16ea59f 100644
--- a/Makefile
+++ b/Makefile
@@ -131,13 +131,8 @@ ifeq ($(USE_MKLDNN), 1)
                CFLAGS += -I$(MKLROOT)/include
                LDFLAGS += -L$(MKLROOT)/lib
        endif
-       # MKLDNN but to needs to be dynamically linked for windows as not all 
VS compilers support static linking
-       ifneq ($(UNAME_S), Windows)
-               LIB_DEP += $(MKLDNNROOT)/lib/libmkldnn.a
-       else
-               CFLAGS += -I$(MKLDNNROOT)/include
-               LDFLAGS += -L$(MKLDNNROOT)/lib -lmkldnn -Wl,-rpath,'$${ORIGIN}'
-       endif
+       CFLAGS += -I$(MKLDNNROOT)/include
+       LDFLAGS += -L$(MKLDNNROOT)/lib -lmkldnn -Wl,-rpath,'$${ORIGIN}'
 endif
 
 # setup opencv
diff --git a/R-package/DESCRIPTION b/R-package/DESCRIPTION
index da09899..46702ef 100644
--- a/R-package/DESCRIPTION
+++ b/R-package/DESCRIPTION
@@ -1,17 +1,17 @@
 Package: mxnet
 Type: Package
 Title: MXNet: A Flexible and Efficient Machine Learning Library for 
Heterogeneous Distributed Systems
-Version: 1.5.0
+Version: 1.4.0
 Date: 2017-06-27
 Author: Tianqi Chen, Qiang Kou, Tong He
-Maintainer: Qiang Kou <[email protected]>, anirudhacharya 
<https://github.com/anirudhacharya>
-Repository: Apache
+Maintainer: Qiang Kou <[email protected]>
+Repository: DMLC
 Description: MXNet is a deep learning framework designed for both efficiency
     and flexibility. It allows you to mix the flavours of deep learning 
programs
     together to maximize the efficiency and your productivity.
 License: Apache License (== 2.0)
-URL: https://github.com/apache/incubator-mxnet/tree/master/R-package
-BugReports: https://github.com/apache/incubator-mxnet/issues
+URL: https://github.com/dmlc/mxnet/tree/master/R-package
+BugReports: https://github.com/dmlc/mxnet/issues
 Imports:
     methods,
     Rcpp (>= 0.12.1),
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index 5a44ccc..1fc10bf 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -629,6 +629,9 @@ build_ubuntu_gpu_cmake_mkldnn() {
         /work/mxnet
 
     ninja -v
+    # libmkldnn.so.0 is a link file. We need an actual binary file named 
libmkldnn.so.0.
+    cp 3rdparty/mkldnn/src/libmkldnn.so.0 
3rdparty/mkldnn/src/libmkldnn.so.0.tmp
+    mv 3rdparty/mkldnn/src/libmkldnn.so.0.tmp 
3rdparty/mkldnn/src/libmkldnn.so.0
 }
 
 build_ubuntu_gpu_cmake() {
diff --git a/ci/jenkins/Jenkins_steps.groovy b/ci/jenkins/Jenkins_steps.groovy
index 309775c..f48a267 100644
--- a/ci/jenkins/Jenkins_steps.groovy
+++ b/ci/jenkins/Jenkins_steps.groovy
@@ -23,19 +23,19 @@
 utils = load('ci/Jenkinsfile_utils.groovy')
 
 // mxnet libraries
-mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, 
lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a'
+mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a'
 
 // Python wheels
 mx_pip = 'build/*.whl'
 
 // for scala build, need to pass extra libs when run with dist_kvstore
-mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, 
deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a, lib/libmkldnn.a'
+mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, 
deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a'
 // mxnet cmake libraries, in cmake builds we do not produce a libnvvm static 
library by default.
 mx_cmake_lib = 'build/libmxnet.so, build/libmxnet.a, 
build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, 
build/3rdparty/openmp/runtime/src/libomp.so'
 // mxnet cmake libraries, in cmake builds we do not produce a libnvvm static 
library by default.
 mx_cmake_lib_debug = 'build/libmxnet.so, build/libmxnet.a, 
build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests'
-mx_cmake_mkldnn_lib = 'build/libmxnet.so, build/libmxnet.a, 
build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, 
build/3rdparty/openmp/runtime/src/libomp.so'
-mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, 
lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a'
+mx_cmake_mkldnn_lib = 'build/libmxnet.so, build/libmxnet.a, 
build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, 
build/3rdparty/openmp/runtime/src/libomp.so, 
build/3rdparty/mkldnn/src/libmkldnn.so.0'
+mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, 
lib/libmkldnn.so.0, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 
3rdparty/tvm/nnvm/lib/libnnvm.a'
 mx_tensorrt_lib = 'lib/libmxnet.so, lib/libnvonnxparser_runtime.so.0, 
lib/libnvonnxparser.so.0, lib/libonnx_proto.so, lib/libonnx.so'
 mx_lib_cpp_examples = 'lib/libmxnet.so, lib/libmxnet.a, 
3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a, 
3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a, 
build/cpp-package/example/*'
 mx_lib_cpp_examples_cpu = 'build/libmxnet.so, build/cpp-package/example/*'
diff --git a/contrib/clojure-package/README.md 
b/contrib/clojure-package/README.md
index 10b3ed7..bc6100b 100644
--- a/contrib/clojure-package/README.md
+++ b/contrib/clojure-package/README.md
@@ -105,9 +105,9 @@ brew install opencv
 - Create a new project with `lein new my-mxnet`
 - Edit your `project.clj` and add one of the following entries to 
`:dependencies`, based on your system and the compute device you want to use:
 
-  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-cpu "1.5.0"]`
-  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-gpu "1.5.0"]`
-  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-osx-cpu "1.5.0"]`
+  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-cpu "1.4.0"]`
+  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-gpu "1.4.0"]`
+  - `[org.apache.mxnet.contrib.clojure/clojure-mxnet-osx-cpu "1.4.0"]`
 
 After making this change and running `lein deps`, you should be able to run 
example code like this [NDArray 
Tutorial](https://github.com/apache/incubator-mxnet/blob/master/contrib/clojure-package/examples/tutorial/src/tutorial/ndarray.clj).
 
@@ -116,20 +116,20 @@ After making this change and running `lein deps`, you 
should be able to run exam
 With this option, you will install a Git revision of the Clojure package 
source and a [Scala package jar from 
Maven](https://search.maven.org/search?q=g:org.apache.mxnet) with native 
dependencies baked in.
 
 - Install additional dependencies as described in [the corresponding section 
for Option 1](#installing-additional-dependencies),
-- Recursively clone the MXNet repository and checkout the desired revision. 
Here we assume the `1.5.0` tag and a clone into the `~/mxnet` directory:
+- Recursively clone the MXNet repository and checkout the desired revision. 
Here we assume the `1.4.0` tag and a clone into the `~/mxnet` directory:
 
   ```bash
   git clone --recursive https://github.com/apache/incubator-mxnet.git ~/mxnet
   cd ~/mxnet
   git tag --list  # Find the tag that matches the Scala package version
-  git checkout tags/1.5.0 -b my_mxnet
+  git checkout tags/1.4.0 -b my_mxnet
   git submodule update --init --recursive
   cd contrib/clojure
   ```
 
 - Edit `project.clj` to include the desired Scala jar from Maven:
 
-      [org.apache.mxnet/mxnet-full_2.11-linux-x86_64-cpu "1.5.0”]
+      [org.apache.mxnet/mxnet-full_2.11-linux-x86_64-cpu "1.4.0”]
 
 - Run `lein test`. All the tests should run without error.
 - At this point you can run `lein install` to build and install the Clojure 
jar locally.
@@ -147,7 +147,7 @@ The first step is to recursively clone the MXNet repository 
and checkout the des
   ```bash
   git clone --recursive https://github.com/apache/incubator-mxnet.git ~/mxnet
   cd ~/mxnet
-  git checkout tags/1.5.0 -b my_mxnet  # this is optional
+  git checkout tags/1.4.0 -b my_mxnet  # this is optional
   git submodule update --init --recursive
   ```
 
@@ -176,7 +176,7 @@ The outcome of this step will be a shared library 
`lib/libmxnet.so` that is used
 
 #### Building the Clojure jar
  
-- Enter the `contrib/clojure` directory and edit the `project.clj` file. Add 
the Scala jar that was just created and installed, e.g., 
`[org.apache.mxnet/mxnet-full_2.11-osx-x86_64-cpu "1.5.0-SNAPSHOT"]`, to the 
`:dependencies`.
+- Enter the `contrib/clojure` directory and edit the `project.clj` file. Add 
the Scala jar that was just created and installed, e.g., 
`[org.apache.mxnet/mxnet-full_2.11-osx-x86_64-cpu "1.4.0-SNAPSHOT"]`, to the 
`:dependencies`.
 - Run `lein test`. All the tests should run without an error.
 - Run `lein install` to build and install the Clojure jar locally.
 
diff --git 
a/contrib/clojure-package/examples/cnn-text-classification/project.clj 
b/contrib/clojure-package/examples/cnn-text-classification/project.clj
index 29ebefe..3eed0dd 100644
--- a/contrib/clojure-package/examples/cnn-text-classification/project.clj
+++ b/contrib/clojure-package/examples/cnn-text-classification/project.clj
@@ -19,6 +19,6 @@
   :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.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :pedantic? :skip
   :main cnn-text-classification.classifier)
diff --git a/contrib/clojure-package/examples/gan/project.clj 
b/contrib/clojure-package/examples/gan/project.clj
index b8f6903..36b7c6c 100644
--- a/contrib/clojure-package/examples/gan/project.clj
+++ b/contrib/clojure-package/examples/gan/project.clj
@@ -19,6 +19,6 @@
   :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.5.0-SNAPSHOT"]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]
                  [nu.pattern/opencv "2.4.9-7"]]
   :main gan.gan-mnist)
diff --git a/contrib/clojure-package/examples/imclassification/project.clj 
b/contrib/clojure-package/examples/imclassification/project.clj
index 5f77cf5..0dbede5 100644
--- a/contrib/clojure-package/examples/imclassification/project.clj
+++ b/contrib/clojure-package/examples/imclassification/project.clj
@@ -19,6 +19,6 @@
   :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.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :pedantic? :skip
   :main imclassification.train-mnist)
diff --git a/contrib/clojure-package/examples/module/project.clj 
b/contrib/clojure-package/examples/module/project.clj
index b667a2a..a9a0a5f 100644
--- a/contrib/clojure-package/examples/module/project.clj
+++ b/contrib/clojure-package/examples/module/project.clj
@@ -19,7 +19,7 @@
   :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.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :pedantic? :skip
   :main mnist-mlp)
 
diff --git a/contrib/clojure-package/examples/multi-label/project.clj 
b/contrib/clojure-package/examples/multi-label/project.clj
index 6e6a143..8923738 100644
--- a/contrib/clojure-package/examples/multi-label/project.clj
+++ b/contrib/clojure-package/examples/multi-label/project.clj
@@ -19,5 +19,5 @@
   :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.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :main multi-label.core)
diff --git a/contrib/clojure-package/examples/neural-style/project.clj 
b/contrib/clojure-package/examples/neural-style/project.clj
index b6d29f7..5a8eebe 100644
--- a/contrib/clojure-package/examples/neural-style/project.clj
+++ b/contrib/clojure-package/examples/neural-style/project.clj
@@ -19,7 +19,7 @@
   :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.5.0-SNAPSHOT"]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]
                  [net.mikera/imagez "0.12.0"]
                  [thinktopic/think.image "0.4.16"]]
   :main neural-style.core)
diff --git a/contrib/clojure-package/examples/pre-trained-models/project.clj 
b/contrib/clojure-package/examples/pre-trained-models/project.clj
index 11e0025..58b591c 100644
--- a/contrib/clojure-package/examples/pre-trained-models/project.clj
+++ b/contrib/clojure-package/examples/pre-trained-models/project.clj
@@ -19,7 +19,7 @@
   :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.5.0-SNAPSHOT"]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]
                  [net.mikera/imagez "0.12.0"]
                  [thinktopic/think.image "0.4.16"]]
   :main pre-trained-models.fine-tune)
diff --git a/contrib/clojure-package/examples/profiler/project.clj 
b/contrib/clojure-package/examples/profiler/project.clj
index cc50482..fa30eaf 100644
--- a/contrib/clojure-package/examples/profiler/project.clj
+++ b/contrib/clojure-package/examples/profiler/project.clj
@@ -18,5 +18,5 @@
 (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.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :main profiler.core)
diff --git a/contrib/clojure-package/examples/rnn/project.clj 
b/contrib/clojure-package/examples/rnn/project.clj
index 64f4c29..291f2bd 100644
--- a/contrib/clojure-package/examples/rnn/project.clj
+++ b/contrib/clojure-package/examples/rnn/project.clj
@@ -19,5 +19,5 @@
   :description "RNN example"
   :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :main rnn.train-char-rnn)
diff --git a/contrib/clojure-package/examples/tutorial/project.clj 
b/contrib/clojure-package/examples/tutorial/project.clj
index 9c4f1b9..8a78ec6 100644
--- a/contrib/clojure-package/examples/tutorial/project.clj
+++ b/contrib/clojure-package/examples/tutorial/project.clj
@@ -20,6 +20,6 @@
   :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
                  ;; Uncomment the one appropriate for your machine & 
configuration:
-                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-cpu 
"1.5.0"]
-                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-gpu 
"1.5.0"]
-                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-osx-cpu 
"1.5.0"]])
+                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-cpu 
"1.4.0"]
+                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-linux-gpu 
"1.4.0"]
+                 #_[org.apache.mxnet.contrib.clojure/clojure-mxnet-osx-cpu 
"1.4.0"]])
diff --git a/contrib/clojure-package/examples/visualization/project.clj 
b/contrib/clojure-package/examples/visualization/project.clj
index d91ace3..d56ddfb 100644
--- a/contrib/clojure-package/examples/visualization/project.clj
+++ b/contrib/clojure-package/examples/visualization/project.clj
@@ -19,5 +19,5 @@
   :description "Visualization example"
   :plugins [[lein-cljfmt "0.5.7"]]
   :dependencies [[org.clojure/clojure "1.9.0"]
-                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.5.0-SNAPSHOT"]]
+                 [org.apache.mxnet.contrib.clojure/clojure-mxnet 
"1.4.0-SNAPSHOT"]]
   :main visualization.core)
diff --git a/contrib/clojure-package/project.clj 
b/contrib/clojure-package/project.clj
index 12a0504..ae7ccd6 100644
--- a/contrib/clojure-package/project.clj
+++ b/contrib/clojure-package/project.clj
@@ -15,7 +15,7 @@
 ;; limitations under the License.
 ;;
 
-(defproject org.apache.mxnet.contrib.clojure/clojure-mxnet "1.5.0-SNAPSHOT"
+(defproject org.apache.mxnet.contrib.clojure/clojure-mxnet "1.4.0-SNAPSHOT"
   :description "Clojure package for MXNet"
   :url "https://github.com/apache/incubator-mxnet";
   :license {:name "Apache License"
@@ -29,7 +29,7 @@
                  ;[org.apache.mxnet/mxnet-full_2.11-linux-x86_64-gpu "1.2.1"]
 
                  ;;; CI
-                 [org.apache.mxnet/mxnet-full_2.11-linux-x86_64-cpu 
"1.5.0-SNAPSHOT"]
+                 [org.apache.mxnet/mxnet-full_2.11-linux-x86_64-cpu 
"1.4.0-SNAPSHOT"]
 
                  [org.clojure/tools.logging "0.4.0"]
                  [org.apache.logging.log4j/log4j-core "2.8.1"]
diff --git a/docs/api/python/symbol/contrib.md 
b/docs/api/python/symbol/contrib.md
index 35cd11c..a025321 100644
--- a/docs/api/python/symbol/contrib.md
+++ b/docs/api/python/symbol/contrib.md
@@ -55,9 +55,6 @@ In the rest of this document, we list routines provided by 
the `symbol.contrib`
     foreach
     while_loop
     cond
-    isinf
-    isfinite
-    isnan
     index_copy
     getnnz
     edge_id
diff --git a/docs/tutorials/scala/mxnet_scala_on_intellij.md 
b/docs/tutorials/scala/mxnet_scala_on_intellij.md
index a0bf24e..174e301 100644
--- a/docs/tutorials/scala/mxnet_scala_on_intellij.md
+++ b/docs/tutorials/scala/mxnet_scala_on_intellij.md
@@ -385,14 +385,14 @@ If you chose to "Build from Source" when following the 
[install instructions](ht
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.version}-${platform}-sources</artifactId>
       <scope>system</scope>
-      
<systemPath>/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.5.0-SNAPSHOT-sources.jar</systemPath>
+      
<systemPath>/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.4.0-SNAPSHOT-sources.jar</systemPath>
     </dependency>
 
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-full_${scala.version}-${platform}</artifactId>
       <scope>system</scope>
-      
<systemPath>/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.5.0-SNAPSHOT.jar</systemPath>
+      
<systemPath>/PathToMXNetSource/incubator-mxnet/scala-package/assembly/osx-x86_64-cpu/target/mxnet-full_${scala.version}-osx-x86_64-cpu-1.4.0-SNAPSHOT.jar</systemPath>
     </dependency>
 ```
 
diff --git a/include/mxnet/base.h b/include/mxnet/base.h
index 92d9c26..f773139 100644
--- a/include/mxnet/base.h
+++ b/include/mxnet/base.h
@@ -102,7 +102,7 @@
 /*! \brief major version */
 #define MXNET_MAJOR 1
 /*! \brief minor version */
-#define MXNET_MINOR 5
+#define MXNET_MINOR 4
 /*! \brief patch version */
 #define MXNET_PATCH 0
 /*! \brief mxnet version */
diff --git a/mkldnn.mk b/mkldnn.mk
index 5af3e9b..d79bbe7 100644
--- a/mkldnn.mk
+++ b/mkldnn.mk
@@ -19,20 +19,14 @@ ifeq ($(USE_MKLDNN), 1)
        MKLDNN_SUBMODDIR = $(ROOTDIR)/3rdparty/mkldnn
        MKLDNN_BUILDDIR = $(MKLDNN_SUBMODDIR)/build
        MXNET_LIBDIR = $(ROOTDIR)/lib
-       MKLDNN_LIBRARY_TYPE=STATIC
 ifeq ($(UNAME_S), Darwin)
        OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.dylib
        MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml.dylib
-       MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.a
-else ifeq ($(UNAME_S), Windows)
-       OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.so
-       MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml_intel.so
-       MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.so
-       MKLDNN_LIBRARY_TYPE=SHARED
+       MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.0.dylib
 else
        OMP_LIBFILE = $(MKLDNNROOT)/lib/libiomp5.so
        MKLML_LIBFILE = $(MKLDNNROOT)/lib/libmklml_intel.so
-       MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.a
+       MKLDNN_LIBFILE = $(MKLDNNROOT)/lib/libmkldnn.so.0
 endif
 endif
 
@@ -43,7 +37,7 @@ mkldnn_build: $(MKLDNN_LIBFILE)
 $(MKLDNN_LIBFILE):
        mkdir -p $(MKLDNNROOT)
        cd $(MKLDNN_SUBMODDIR) && rm -rf external && cd scripts && 
./prepare_mkl.sh && cd .. && cp -a external/*/* $(MKLDNNROOT)/.
-       cmake $(MKLDNN_SUBMODDIR) -DCMAKE_INSTALL_PREFIX=$(MKLDNNROOT) 
-B$(MKLDNN_BUILDDIR) -DARCH_OPT_FLAGS="-mtune=generic" -DWITH_TEST=OFF 
-DWITH_EXAMPLE=OFF -DMKLDNN_LIBRARY_TYPE=$(MKLDNN_LIBRARY_TYPE)
+       cmake $(MKLDNN_SUBMODDIR) -DCMAKE_INSTALL_PREFIX=$(MKLDNNROOT) 
-B$(MKLDNN_BUILDDIR) -DARCH_OPT_FLAGS="-mtune=generic" -DWITH_TEST=OFF 
-DWITH_EXAMPLE=OFF
        $(MAKE) -C $(MKLDNN_BUILDDIR) VERBOSE=1
        $(MAKE) -C $(MKLDNN_BUILDDIR) install
        mkdir -p $(MXNET_LIBDIR)
diff --git a/python/mxnet/libinfo.py b/python/mxnet/libinfo.py
index ff795f9..57c73e5 100644
--- a/python/mxnet/libinfo.py
+++ b/python/mxnet/libinfo.py
@@ -111,4 +111,4 @@ def find_include_path():
 
 
 # current version
-__version__ = "1.5.0"
+__version__ = "1.4.0"
diff --git a/scala-package/assembly/linux-x86_64-cpu/pom.xml 
b/scala-package/assembly/linux-x86_64-cpu/pom.xml
index abefead..fbc0ab0 100644
--- a/scala-package/assembly/linux-x86_64-cpu/pom.xml
+++ b/scala-package/assembly/linux-x86_64-cpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -18,18 +18,18 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-linux-x86_64-cpu</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>so</type>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-infer_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/scala-package/assembly/linux-x86_64-gpu/pom.xml 
b/scala-package/assembly/linux-x86_64-gpu/pom.xml
index 96ffa38..a1a9480 100644
--- a/scala-package/assembly/linux-x86_64-gpu/pom.xml
+++ b/scala-package/assembly/linux-x86_64-gpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -18,18 +18,18 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-linux-x86_64-gpu</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>so</type>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-infer_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/scala-package/assembly/osx-x86_64-cpu/pom.xml 
b/scala-package/assembly/osx-x86_64-cpu/pom.xml
index 5c5733a..bb6af03 100644
--- a/scala-package/assembly/osx-x86_64-cpu/pom.xml
+++ b/scala-package/assembly/osx-x86_64-cpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -18,18 +18,18 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-osx-x86_64-cpu</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jnilib</type>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-infer_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
     </dependency>
   </dependencies>
 
diff --git a/scala-package/assembly/pom.xml b/scala-package/assembly/pom.xml
index c1d1a3b..8de320e 100644
--- a/scala-package/assembly/pom.xml
+++ b/scala-package/assembly/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/scala-package/core/pom.xml b/scala-package/core/pom.xml
index 484fbbd..3425bb1 100644
--- a/scala-package/core/pom.xml
+++ b/scala-package/core/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -100,13 +100,13 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-macros_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/scala-package/examples/pom.xml b/scala-package/examples/pom.xml
index 8d3d156..9e8e119 100644
--- a/scala-package/examples/pom.xml
+++ b/scala-package/examples/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -149,13 +149,13 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-infer_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/scala-package/infer/pom.xml b/scala-package/infer/pom.xml
index ac76cdd..3e6980c 100644
--- a/scala-package/infer/pom.xml
+++ b/scala-package/infer/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <artifactId>mxnet-parent_2.11</artifactId>
         <groupId>org.apache.mxnet</groupId>
-        <version>1.5.0-SNAPSHOT</version>
+        <version>1.4.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -89,7 +89,7 @@
         <dependency>
             <groupId>org.apache.mxnet</groupId>
             <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-            <version>1.5.0-SNAPSHOT</version>
+            <version>1.4.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
diff --git a/scala-package/init-native/linux-x86_64/pom.xml 
b/scala-package/init-native/linux-x86_64/pom.xml
index b71d7cf..12a36bd 100644
--- a/scala-package/init-native/linux-x86_64/pom.xml
+++ b/scala-package/init-native/linux-x86_64/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-init-native-parent</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -20,7 +20,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
     </dependency>
diff --git a/scala-package/init-native/osx-x86_64/pom.xml 
b/scala-package/init-native/osx-x86_64/pom.xml
index b4a0b1d..d029094 100644
--- a/scala-package/init-native/osx-x86_64/pom.xml
+++ b/scala-package/init-native/osx-x86_64/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-init-native-parent</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -20,7 +20,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
     </dependency>
diff --git a/scala-package/init-native/pom.xml 
b/scala-package/init-native/pom.xml
index bed216e..17a829c 100644
--- a/scala-package/init-native/pom.xml
+++ b/scala-package/init-native/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/scala-package/init/pom.xml b/scala-package/init/pom.xml
index 4278df6..a5b88c3 100644
--- a/scala-package/init/pom.xml
+++ b/scala-package/init/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
 <!--  <relativePath>../pom.xml</relativePath>-->
   </parent>
 
diff --git a/scala-package/macros/pom.xml b/scala-package/macros/pom.xml
index cd56060..d435e21 100644
--- a/scala-package/macros/pom.xml
+++ b/scala-package/macros/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -53,13 +53,13 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-init-scala-${platform}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
       <type>${libtype}</type>
     </dependency>
diff --git a/scala-package/native/linux-x86_64-cpu/pom.xml 
b/scala-package/native/linux-x86_64-cpu/pom.xml
index 2415cf7..ac8e4a4 100644
--- a/scala-package/native/linux-x86_64-cpu/pom.xml
+++ b/scala-package/native/linux-x86_64-cpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -20,7 +20,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
     </dependency>
diff --git a/scala-package/native/linux-x86_64-gpu/pom.xml 
b/scala-package/native/linux-x86_64-gpu/pom.xml
index 0186217..cdba577 100644
--- a/scala-package/native/linux-x86_64-gpu/pom.xml
+++ b/scala-package/native/linux-x86_64-gpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -20,7 +20,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
     </dependency>
diff --git a/scala-package/native/osx-x86_64-cpu/pom.xml 
b/scala-package/native/osx-x86_64-cpu/pom.xml
index 0ab7ca1..333486c 100644
--- a/scala-package/native/osx-x86_64-cpu/pom.xml
+++ b/scala-package/native/osx-x86_64-cpu/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -20,7 +20,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
     </dependency>
diff --git a/scala-package/native/pom.xml b/scala-package/native/pom.xml
index 2f6425d..e267c8d 100644
--- a/scala-package/native/pom.xml
+++ b/scala-package/native/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
diff --git a/scala-package/pom.xml b/scala-package/pom.xml
index 151462c..76bf00b 100644
--- a/scala-package/pom.xml
+++ b/scala-package/pom.xml
@@ -10,7 +10,7 @@
   </parent>
   <groupId>org.apache.mxnet</groupId>
   <artifactId>mxnet-parent_2.11</artifactId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>1.4.0-SNAPSHOT</version>
   <name>MXNet Scala Package - Parent</name>
   
<url>https://github.com/apache/incubator-mxnet/tree/master/scala-package</url>
   <description>
diff --git a/scala-package/spark/pom.xml b/scala-package/spark/pom.xml
index 2db3bee..ee4f3ef 100644
--- a/scala-package/spark/pom.xml
+++ b/scala-package/spark/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
+    <version>1.4.0-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
 
@@ -40,7 +40,7 @@
     <dependency>
       <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
+      <version>1.4.0-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
diff --git a/snapcraft.yaml b/snapcraft.yaml
index d8d0e30..e70bf6e 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -1,5 +1,5 @@
 name: mxnet
-version: '1.5.0'
+version: '1.4.0'
 summary: MXNet is a deep learning framework designed for efficiency and 
flexibility.
 description: |
   MXNet is a deep learning framework designed for both efficiency and 
diff --git a/tests/cpp/unittest.mk b/tests/cpp/unittest.mk
index 665ce69..746ee2f 100644
--- a/tests/cpp/unittest.mk
+++ b/tests/cpp/unittest.mk
@@ -41,22 +41,22 @@ gtest-all.o : $(GTEST_SRCS_)
 gtest.a : gtest-all.o
        $(AR) $(ARFLAGS) $@ $^
 
-build/tests/cpp/%.o : tests/cpp/%.cc
+build/tests/cpp/%.o : tests/cpp/%.cc | mkldnn
        @mkdir -p $(@D)
        $(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT tests/cpp/$* $< 
> build/tests/cpp/$*.d
        $(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o 
build/tests/cpp/$*.o $(filter %.cc %.a, $^)
 
-build/tests/cpp/operator/%.o : tests/cpp/operator/%.cc
+build/tests/cpp/operator/%.o : tests/cpp/operator/%.cc | mkldnn
        @mkdir -p $(@D)
        $(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT 
tests/cpp/operator/$* $< > build/tests/cpp/operator/$*.d
        $(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o 
build/tests/cpp/operator/$*.o $(filter %.cc %.a, $^)
 
-build/tests/cpp/storage/%.o : tests/cpp/storage/%.cc
+build/tests/cpp/storage/%.o : tests/cpp/storage/%.cc | mkldnn
        @mkdir -p $(@D)
        $(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT 
tests/cpp/storage/$* $< > build/tests/cpp/storage/$*.d
        $(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o 
build/tests/cpp/storage/$*.o $(filter %.cc %.a, $^)
 
-build/tests/cpp/engine/%.o : tests/cpp/engine/%.cc
+build/tests/cpp/engine/%.o : tests/cpp/engine/%.cc | mkldnn
        @mkdir -p $(@D)
        $(CXX) -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -MM -MT 
tests/cpp/engine/$* $< > build/tests/cpp/engine/$*.d
        $(CXX) -c -std=c++11 $(TEST_CFLAGS) -I$(GTEST_INC) -o 
build/tests/cpp/engine/$*.o $(filter %.cc %.a, $^)
diff --git 
a/tests/nightly/model_backwards_compatibility_check/train_mxnet_legacy_models.sh
 
b/tests/nightly/model_backwards_compatibility_check/train_mxnet_legacy_models.sh
index bda47f9..02d480d 100755
--- 
a/tests/nightly/model_backwards_compatibility_check/train_mxnet_legacy_models.sh
+++ 
b/tests/nightly/model_backwards_compatibility_check/train_mxnet_legacy_models.sh
@@ -61,8 +61,8 @@ echo `pwd`
 ## This list is sorted in descending order chronologically.
 ## Sample output for the below git tag command is : 1.2.0 utils 1.1.0 1.0.0 
0.12.1
 ## so from this sample, we will pick up all the versions matching with the 
current latest version
-## Now while performing inference the latest version could be 1.5.0, which 
will help in validating models trained
-## on 1.1.0 and 1.2.0 by loading them on the latest version (1.5.0)
+## Now while performing inference the latest version could be 1.4.0, which 
will help in validating models trained
+## on 1.1.0 and 1.2.0 by loading them on the latest version (1.4.0)
 ## Over a period of time, the model repository will grow since with every new 
release we
 ## upload models trained on newer versions as well through this script
 previous_versions=($(git tag --sort=-creatordate | grep --invert-match rc))
diff --git a/tests/python/mkl/test_mkldnn.py b/tests/python/mkl/test_mkldnn.py
index d9d3abf..c6c0a08 100644
--- a/tests/python/mkl/test_mkldnn.py
+++ b/tests/python/mkl/test_mkldnn.py
@@ -27,6 +27,7 @@ from mxnet.test_utils import rand_ndarray, assert_almost_equal
 from mxnet import gluon
 from mxnet.gluon import nn
 from mxnet.test_utils import *
+import test_mkldnn_install as install
 curr_path = os.path.dirname(os.path.abspath(os.path.expanduser(__file__)))
 sys.path.append(os.path.join(curr_path, '../unittest/'))
 from common import with_seed
@@ -440,4 +441,7 @@ def test_non_mkldnn_fcomputeex():
     custom = mx.symbol.Custom(name='custom', data=conv, op_type='custom')
     exec1 = custom.bind(mx.cpu(), args={'data': mx.nd.ones([10,3,96,96]), 
'conv_weight': mx.nd.ones([8,3,5,5])})
     exec1.forward()[0].wait_to_read()
-    
+
+
+if __name__ == '__main__':
+    install.test_mkldnn_install()
diff --git a/tests/python/mkl/test_mkldnn_install.py 
b/tests/python/mkl/test_mkldnn_install.py
new file mode 100644
index 0000000..c2f26df
--- /dev/null
+++ b/tests/python/mkl/test_mkldnn_install.py
@@ -0,0 +1,56 @@
+# 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.
+
+"""
+MKL-DNN related test cases
+"""
+
+import sys
+import os
+import logging
+
+
+def test_mkldnn_install():
+    """
+    This test will verify that MXNet is built/installed correctly when
+    compiled with Intel MKL-DNN library. The method will try to import
+    the mxnet module and see if the mkldnn library is mapped to this
+    process's address space.
+    """
+    logging.basicConfig(level=logging.INFO)
+
+    if not sys.platform.startswith('linux'):
+        logging.info("Bypass mkldnn install test for non-Linux OS")
+        return
+
+    try:
+        #pylint: disable=unused-variable
+        import mxnet as mx
+    except (ImportError, OSError) as e:
+        assert 0, "Import mxnet error: %s. Please double check your build/" \
+            "install steps or environment variable settings" % str(e)
+
+    pid = os.getpid()
+    rc = os.system("cat /proc/" + str(pid) +
+                   "/maps | grep libmkldnn > /dev/null")
+
+    if rc == 0:
+        logging.info("MXNet is built/installed correctly with MKL-DNN")
+    else:
+        assert 0, "MXNet is built/installed incorrectly with MKL-DNN, please " 
\
+            "double check your build/install steps or environment " \
+            "variable settings"

Reply via email to