Hi Da,

After looking at your detailed description in github issue
https://github.com/apache/incubator-mxnet/issues/10663, I would argue that
the fix should go to mxnet-onnx instead of mxnet-mkldnn.

In onnx padding params are in the form of (left, right, top, bottom), which
supports asymmetric padding. In MXNet only symmetric padding is supported
in the form of (height, width) tuple, which doesn't support asymmetric
padding.

If you remove the check in mkldnn, that means onnx-mxnet user can pass in
an asymmetric padding of (left, right, top, bottom) but mxnet would only
look at the first 2 numbers in the tuple and compute the wrong result
silently.

One way to fix it is to support (left, right, top, bottom) in mxnet padding
op (both with mkl-dnn and without mkl-dnn), which will take some time.
Another way is that mxnet-onnx checks the (left, right, top, bottom) tuple,
and pass the arguments in the form of (height, width) to mxnet ops if
symmetric, or throw an exception for asymmetric paddings.

I'm not an expert in onnx but I'm curious if this can be fixed in
mxnet-onnx quickly. Removing the correct check in mkldnn doesn't sound
reasonable...

Best,
Haibin

On Mon, Apr 23, 2018 at 5:12 PM, Zheng, Da <dzz...@amazon.com> wrote:

> I think I have found the root of the problem.
>
> The tutorial loads a model from onnx, which uses padding (left, right,
> top, bottom). But mxnet uses padding (height, width). Currently, when an
> ONNX model is loaded to MXNet, the padding is converted correctly. MXNet
> conv doesn't check the number of elements in the padding and ignores the
> problem. However, mxnet-mkldnn checks it and fails.
>
> The correct way of fixing this issue is to check the number of elements in
> the padding tuple in mxnet conv. If the tuple size mismatches, it should
> fail. When an ONNX model is loaded to MXNet, the padding should be
> converted correctly.
>
> For the time being, I'll just fix MKLDNN so it doesn't check the tuple
> length of padding.
>
> Best,
> Da
>
> On 4/23/18, 2:58 PM, "Zheng, Da" <dzz...@amazon.com> wrote:
>
>     I can reproduce the bug now. I'm working on a fix for the bug.
>
>     Currently, there are a few more bug fixes for MKLDNN.
>     https://github.com/apache/incubator-mxnet/pull/10651
>     https://github.com/apache/incubator-mxnet/pull/10624
>     https://github.com/apache/incubator-mxnet/pull/10619/files
>     https://github.com/apache/incubator-mxnet/pull/10616
>     https://github.com/apache/incubator-mxnet/pull/10591/files
>
>     They are ready for review.
>
>     I just discussed with @Anirudh. Maybe we should say in the release
> note that MKLDNN in MXNet is still experimental.
>     What do you think?
>
>     Best,
>     Da
>
>     On 4/21/18, 7:59 PM, "Zheng, Da" <dzz...@amazon.com> wrote:
>
>         It seems I have problems of compiling scala when running "make
> docs". Please see the error below.
>
>         Are there any instructions of compiling these scala code? I guess
> I might miss some packages.
>         I tried installing libslf4j-java and didn't help.
>
>         Best,
>         Da
>
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package; scaladoc `find . -type f
> -name "*.scala" | egrep "\/core|\/infer" | egrep -v "Suite"`; exit 0"
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:24: error: object kohsuke is
> not a member of package org
>         import org.kohsuke.args4j.{CmdLineParser, Option}
>                    ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:25: error: object slf4j is not
> a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:41: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--model-path-prefix", usage = "the input model
> directory and prefix of the model")
>            ^
>         warning: no valid targets for annotation on value modelPathPrefix
> - it is discarded unused. You may specify targets with meta-annotations,
> e.g. @(<error> @getter)
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:43: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--input-image", usage = "the input image")
>            ^
>         warning: no valid targets for annotation on value inputImagePath -
> it is discarded unused. You may specify targets with meta-annotations, e.g.
> @(<error> @getter)
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:45: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--input-dir", usage = "the input batch of images
> directory")
>            ^
>         warning: no valid targets for annotation on value inputImageDir -
> it is discarded unused. You may specify targets with meta-annotations, e.g.
> @(<error> @getter)
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:51: error: not found: value
> LoggerFactory
>           private val logger = LoggerFactory.getLogger(
> classOf[SSDClassifierExample])
>                                ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:109: error: not found: type
> CmdLineParser
>             val parser : CmdLineParser = new CmdLineParser(inst)
>                          ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> objectdetector/SSDClassifierExample.scala:109: error: not found: type
> CmdLineParser
>             val parser : CmdLineParser = new CmdLineParser(inst)
>                                              ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:21: error: object kohsuke is
> not a member of package org
>         import org.kohsuke.args4j.{CmdLineParser, Option}
>                    ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:22: error: object slf4j is
> not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:40: error: not found: value
> LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[
> ImageClassifierExample])
>                                ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:108: error: not found: type
> CmdLineParser
>             val parser: CmdLineParser = new CmdLineParser(inst)
>                         ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:108: error: not found: type
> CmdLineParser
>             val parser: CmdLineParser = new CmdLineParser(inst)
>                                             ^
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:157: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--model-path-prefix", usage = "the input model
> directory")
>            ^
>         warning: no valid targets for annotation on value modelPathPrefix
> - it is discarded unused. You may specify targets with meta-annotations,
> e.g. @(<error> @getter)
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:159: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--input-image", usage = "the input image")
>            ^
>         warning: no valid targets for annotation on value inputImagePath -
> it is discarded unused. You may specify targets with meta-annotations, e.g.
> @(<error> @getter)
>         ./examples/src/main/scala/org/apache/mxnetexamples/infer/
> imageclassifier/ImageClassifierExample.scala:161: error: class Option is
> abstract; cannot be instantiated
>           @Option(name = "--input-dir", usage = "the input batch of images
> directory")
>            ^
>         warning: no valid targets for annotation on value inputImageDir -
> it is discarded unused. You may specify targets with meta-annotations, e.g.
> @(<error> @getter)
>         
> ./core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala:22:
> error: object slf4j is not a member of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         
> ./core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala:27:
> error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[NativeLibraryLoader])
>                               ^
>         
> ./core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala:27:
> error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[NativeLibraryLoader])
>                                        ^
>         
> ./core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala:20:
> error: object slf4j is not a member of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         
> ./core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala:27:
> error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[WarnIfNotDisposed])
>                               ^
>         
> ./core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala:27:
> error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[WarnIfNotDisposed])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/LRScheduler.scala:19:
> error: object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/LRScheduler.scala:56:
> error: not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(
> classOf[FactorScheduler])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/SGD.scala:59:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/AdaGrad.scala:54:
> error: value sqrt is not a member of object org.apache.mxnet.NDArray
>             val newWeight = (-lr * (resdGrad / NDArray.sqrt(history +
> this.epsilon) + this.wd * weight))
>                                                        ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/AdaGrad.scala:54:
> error: overloaded method value * with alternatives:
>           (x: Double)Double <and>
>           (x: Float)Float <and>
>           (x: Long)Float <and>
>           (x: Int)Float <and>
>           (x: Char)Float <and>
>           (x: Short)Float <and>
>           (x: Byte)Float
>          cannot be applied to (org.apache.mxnet.NDArray)
>             val newWeight = (-lr * (resdGrad / NDArray.sqrt(history +
> this.epsilon) + this.wd * weight))
>
>                     ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/Adam.scala:90:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/Adam.scala:99:
> error: value sqrt is not a member of object org.apache.mxnet.NDArray
>             val step = (learningRate * meanT / (NDArray.sqrt(varianceT) +
> epsilon))
>                                                         ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/NAG.scala:67:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala:52:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala:62:
> error: value sqrt is not a member of object org.apache.mxnet.NDArray
>               NDArray.sqrt(accDelta + this.epsilon) /
>                       ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala:63:
> error: value sqrt is not a member of object org.apache.mxnet.NDArray
>               NDArray.sqrt(accG + this.epsilon) *
> resdGrad).disposeDepsExcept(accDelta, accG, resdGrad)
>                       ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala:56:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala:71:
> error: value sqrt is not a member of object org.apache.mxnet.NDArray
>               (this.gamma2 * delta - lr * (resdGrad / NDArray.sqrt(n - g *
> g + 1e-4f) + wd * weight))
>                                                               ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala:71:
> error: overloaded method value * with alternatives:
>           (x: Double)Double <and>
>           (x: Float)Float <and>
>           (x: Long)Float <and>
>           (x: Int)Float <and>
>           (x: Char)Float <and>
>           (x: Short)Float <and>
>           (x: Byte)Float
>          cannot be applied to (org.apache.mxnet.NDArray)
>               (this.gamma2 * delta - lr * (resdGrad / NDArray.sqrt(n - g *
> g + 1e-4f) + wd * weight))
>
>                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/SGLD.scala:65:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/optimizer/DCASGD.scala:61:
> error: value clip is not a member of object org.apache.mxnet.NDArray
>               resdGrad = NDArray.clip(resdGrad, -clipGradient,
> clipGradient)
>                                  ^
>         ./core/src/main/scala/org/apache/mxnet/contrib/NDArray.scala:21:
> error: object AddNDArrayFunctions is not a member of package
> org.apache.mxnet
>         import org.apache.mxnet.AddNDArrayFunctions
>                ^
>         ./core/src/main/scala/org/apache/mxnet/contrib/NDArray.scala:23:
> error: not found: type AddNDArrayFunctions
>         @AddNDArrayFunctions(true)
>          ^
>         ./core/src/main/scala/org/apache/mxnet/contrib/Symbol.scala:21:
> error: object AddSymbolFunctions is not a member of package org.apache.mxnet
>         import org.apache.mxnet.AddSymbolFunctions
>                ^
>         ./core/src/main/scala/org/apache/mxnet/contrib/Symbol.scala:23:
> error: not found: type AddSymbolFunctions
>         @AddSymbolFunctions(true)
>          ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:22:
> error: object slf4j is not a member of package org
>         import org.slf4j.{LoggerFactory, Logger}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:60:
> error: not found: type Logger
>           val logger: Logger = LoggerFactory.getLogger(
> classOf[FeedForward])
>                       ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:60:
> error: not found: value LoggerFactory
>           val logger: Logger = LoggerFactory.getLogger(
> classOf[FeedForward])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:265:
> error: not found: type Logger
>                   logger: Logger, workLoadList: Seq[Float]): Unit = {
>                           ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:338:
> error: not found: type Logger
>                           batchEndCallback: BatchEndCallback = null,
> logger: Logger = FeedForward.logger,
>
>    ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:299:
> error: not found: type Logger
>                   batchEndCallback: BatchEndCallback, logger: Logger,
>                                                               ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:408:
> error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[FeedForward])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:408:
> error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[FeedForward])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:486:
> error: not found: type Logger
>             private var logger: Logger = FeedForward.logger
>                                 ^
>         ./core/src/main/scala/org/apache/mxnet/FeedForward.scala:641:
> error: not found: type Logger
>             def setLogger(logger: Logger): Builder = {
>                                   ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:21: error:
> object slf4j is not a member of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:60: error:
> not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[Executor])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:60: error:
> not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[Executor])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/NDArray.scala:24: error:
> object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/NDArray.scala:33: error:
> not found: type AddNDArrayFunctions
>         @AddNDArrayFunctions(false)
>          ^
>         ./core/src/main/scala/org/apache/mxnet/NDArray.scala:36: error:
> not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[NDArray])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/NDArray.scala:88: warning:
> non-variable type argument org.apache.mxnet.NDArray in type pattern
> Seq[org.apache.mxnet.NDArray] (the underlying of
> Seq[org.apache.mxnet.NDArray]) is unchecked since it is eliminated by
> erasure
>                   case ndArr: Seq[NDArray] => (ndArr.toArray,
> ndArr.toArray.map(_.handle))
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/NDArray.scala:452: error:
> value _crop_assign is not a member of object org.apache.mxnet.NDArray
>                   NDArray._crop_assign(Map("out" -> ret,
>                           ^
>         ./core/src/main/scala/org/apache/mxnet/EvalMetric.scala:111:
> error: value argmax is not a member of object org.apache.mxnet.NDArray
>                 NDArray.argmax(Map("axis" -> 1, "keepdims" -> true))(pred)
>                         ^
>         ./core/src/main/scala/org/apache/mxnet/EvalMetric.scala:113:
> error: value argmax_channel is not a member of object
> org.apache.mxnet.NDArray
>                 NDArray.argmax_channel(pred)
>                         ^
>         ./core/src/main/scala/org/apache/mxnet/EvalMetric.scala:175:
> error: value argmax_channel is not a member of object
> org.apache.mxnet.NDArray
>               val predLabel = NDArray.argmax_channel(pred)
>                                       ^
>         ./core/src/main/scala/org/apache/mxnet/EvalMetric.scala:235:
> error: value pick is not a member of object org.apache.mxnet.NDArray
>               val p = NDArray.pick(Map("axis" -> this.axis))(pred, label)
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/ExecutorManager.scala:21:
> error: object slf4j is not a member of package org
>         import org.slf4j.{LoggerFactory, Logger}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/ExecutorManager.scala:173:
> error: not found: type Logger
>           val logger: Logger = LoggerFactory.getLogger(classOf[
> DataParallelExecutorManager])
>                       ^
>         ./core/src/main/scala/org/apache/mxnet/ExecutorManager.scala:173:
> error: not found: value LoggerFactory
>           val logger: Logger = LoggerFactory.getLogger(classOf[
> DataParallelExecutorManager])
>                                ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala:21:
> error: object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala:22:
> error: object slf4j is not a member of package org
>         import org.slf4j.Logger
>                    ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala:41:
> error: not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(
> classOf[BucketingModule])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:25:
> error: object slf4j is not a member of package org
>         import org.slf4j.Logger
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:34:
> error: not found: type Logger
>             typeName: String, throws: Boolean, logger: Logger): Unit = {
>                                                        ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala:21:
> error: object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala:34:
> error: not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(
> classOf[SequentialModule])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/module/Module.scala:25:
> error: object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/module/Module.scala:43:
> error: not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[Module])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:23: error: object slf4j is not a member
> of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:29: error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(classOf[
> DataParallelExecutorGroup])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:29: error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(classOf[
> DataParallelExecutorGroup])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:44: error: value crop is not a member of
> object org.apache.mxnet.NDArray
>                     NDArray.crop(Map(
>                             ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:50: error: value crop is not a member of
> object org.apache.mxnet.NDArray
>                     val dDstCopy: NDArray = NDArray.crop(Map(
>                                                     ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:572: error: value slice_axis is not a
> member of object org.apache.mxnet.NDArray
>                       val ogMySlice: NDArray = NDArray.slice_axis(
>                                                        ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:598: error: value slice_axis is not a
> member of object org.apache.mxnet.NDArray
>                     val labelMySlice: NDArray = NDArray.slice_axis(Map(
>                                                         ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:24:
> error: object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:134:
> error: not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(
> classOf[BaseModule])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/Model.scala:22: error:
> object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/Model.scala:31: error: not
> found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[Model])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/Monitor.scala:21: error:
> object slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/Monitor.scala:37: error:
> not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[Monitor])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/Monitor.scala:41: error:
> value norm is not a member of object org.apache.mxnet.NDArray
>               NDArray.norm(x) / math.sqrt(x.size.toDouble).toFloat
>                       ^
>         ./core/src/main/scala/org/apache/mxnet/KVStoreServer.scala:21:
> error: object slf4j is not a member of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/KVStoreServer.scala:24:
> error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[KVStoreServer])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/KVStoreServer.scala:24:
> error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[KVStoreServer])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/KVStoreServer.scala:49:
> error: not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[KVStoreServer])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/KVStoreServer.scala:49:
> error: not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[KVStoreServer])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/Symbol.scala:22: error:
> object slf4j is not a member of package org
>         import org.slf4j.{Logger, LoggerFactory}
>                    ^
>         ./core/src/main/scala/org/apache/mxnet/Symbol.scala:33: error:
> not found: type Logger
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[Symbol])
>                               ^
>         ./core/src/main/scala/org/apache/mxnet/Symbol.scala:33: error:
> not found: value LoggerFactory
>           private val logger: Logger = LoggerFactory.getLogger(
> classOf[Symbol])
>                                        ^
>         ./core/src/main/scala/org/apache/mxnet/Symbol.scala:826: error:
> not found: type AddSymbolFunctions
>         @AddSymbolFunctions(false)
>          ^
>         ./core/src/main/scala/org/apache/mxnet/Symbol.scala:829: error:
> not found: value LoggerFactory
>           private val logger = LoggerFactory.getLogger(classOf[Symbol])
>                                ^
>         ./core/src/main/scala/org/apache/mxnet/IO.scala:23: error: object
> slf4j is not a member of package org
>         import org.slf4j.LoggerFactory
>                    ^
>         warning: there was one deprecation warning; re-run with
> -deprecation for details
>         warning: there were 11 feature warnings; re-run with -feature for
> details
>         model contains 119 documentable templates
>         ./core/src/main/scala/org/apache/mxnet/RecordIO.scala:99:
> warning: Tag '@param' must be followed by a symbol name
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/RecordIO.scala:99:
> warning: Tag '@param' is not recognised
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:365:
> warning: Could not find any member to link for "IOException".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:506:
> warning: Could not find any member to link for "grad1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:488:
> warning: Could not find any member to link for "out1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/BaseModule.scala:204:
> warning: Could not find any member to link for "out1_batch1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:533: warning: Could not find any member
> to link for "grad1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/
> DataParallelExecutorGroup.scala:511: warning: Could not find any member
> to link for "out1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/Module.scala:500:
> warning: Could not find any member to link for "grad1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/module/Module.scala:476:
> warning: Could not find any member to link for "out1_dev1,".
>           /**
>           ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala:366:
> warning: Could not find any member to link for "grad1_dev1,".
>           /**
>           ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala:342:
> warning: Could not find any member to link for "out1_dev1,".
>           /**
>           ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala:360:
> warning: Could not find any member to link for "grad1_dev1,".
>           /**
>           ^
>         
> ./core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala:336:
> warning: Could not find any member to link for "out1_dev1,".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:256:
> warning: Could not find any member to link for "IllegalArgumentException".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:244:
> warning: Could not find any member to link for "IllegalArgumentException".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:232:
> warning: Could not find any member to link for "IllegalArgumentException".
>           /**
>           ^
>         ./core/src/main/scala/org/apache/mxnet/Executor.scala:220:
> warning: Could not find any member to link for "IllegalArgumentException".
>           /**
>           ^
>         27 warnings found
>         131 errors found
>         Execute "rm -rf /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/_build/html/api/scala/docs"
>         Execute "mkdir -p /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/_build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f index
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f index.html
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f org
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f lib
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f index.js
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         Execute "cd /home/ubuntu/apache-mxnet-src-
> 1.2.0.rc0-incubating/docs/../scala-package && mv -f package.html
> /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/docs/_
> build/html/api/scala/docs"
>         building [mo]: targets for 0 po files that are out of date
>         building [html]: targets for 153 source files that are out of date
>         updating environment: 153 added, 0 changed, 0 removed
>         reading sources... [  5%] api/perl/symbol
>
>         Exception occurred:
>           File 
> "/usr/local/lib/python3.5/dist-packages/recommonmark/states.py",
> line 134, in run_role
>             content=content)
>         TypeError: 'NoneType' object is not callable
>         The full traceback has been saved in /tmp/sphinx-err-n1z6zazm.log,
> if you want to report the issue to the developers.
>         Please also report this if it was a user error, so that a better
> error message can be provided next time.
>         A bug report can be filed in the tracker at <
> https://github.com/sphinx-doc/sphinx/issues>. Thanks!
>         Makefile:75: recipe for target 'html' failed
>         make[1]: *** [html] Error 1
>         make[1]: Leaving directory '/home/ubuntu/apache-mxnet-
> src-1.2.0.rc0-incubating/docs'
>         Makefile:482: recipe for target 'docs' failed
>         make: *** [docs] Error 2
>
>         On 4/21/18, 5:15 PM, "Thomas DELTEIL" <thomas.delte...@gmail.com>
> wrote:
>
>             @Anirudh, thanks for looking into it! However I do not
> understand what you
>             mean by 'set as CPU and not GPU'? MXNet compiled with mkldnn
> and cuda is
>             supposed to be able to work with both context no? There are
> other tutorials
>             that are running successfully on both CPU and GPU context.
>
>             @Da to reproduce:
>
>             Download the source of 1.2.0.rc0 and extract it, cd into it.
>
>             make docs
>             make clean
>             make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1
>             USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1 USE_MKLDNN=1
>             export PYTHONPATH=$(pwd)/python
>             cd tests/nightly
>             python test_tutorial.py --tutorial onnx/super_resolution
>
>             you can also start a jupyter notebook server and try to run
>             docs/_build/html/tutorials/onnx/super_resolution.ipynb
>
>
>
>             2018-04-21 15:08 GMT-07:00 Zheng, Da <dzz...@amazon.com>:
>
>             > @ThomasDelteil could you show me how to reproduce the
> problem? I'll take
>             > it a look as well.
>             >
>             > Best,
>             > Da
>             >
>             > Sent from my iPhone
>             >
>             > On Apr 21, 2018, at 1:12 PM, Anirudh Acharya <
> anirudhk...@gmail.com
>             > <mailto:anirudhk...@gmail.com>> wrote:
>             >
>             > @ThomasDelteil that might be due to the fact that in the
> example, the
>             > context is being set as CPU and not GPU.
>             > But I will still take a look as soon as possible.
>             >
>             >
>             > Regards
>             > Anirudh
>             >
>             > On Sat, Apr 21, 2018 at 11:10 AM, Thomas DELTEIL <
>             > thomas.delte...@gmail.com<mailto:thomas.delte...@gmail.com>>
>             > wrote:
>             >
>             > *-0*
>             >
>             > compiled from source on GPU CUDA/CUDNN, tutorials run fine.
>             >
>             > However:
>             > Compiled from source and adding USE_MKLDNN=1, the
> onnx/super_resolution
>             > tutorial is crashing on this line:
>             >
>             > ```
>             > from collections import namedtuple
>             > Batch = namedtuple('Batch', ['data'])
>             >
>             > # forward on the provided data batch
>             > mod.forward(Batch([mx.nd.array(test_image)]))
>             > ```
>             >
>             > Stack trace returned 8 entries:
>             > [bt] (0)
>             > /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/python/
>             > mxnet/../../lib/libmxnet.so(dmlc::StackTrace[abi:cxx11]()+
> 0x5b)
>             > [0x7feef615721b]
>             > [bt] (1)
>             > /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/python/
>             > mxnet/../../lib/libmxnet.so(dmlc::LogMessageFatal::~
>             > LogMessageFatal()+0x28)
>             > [0x7feef6158258]
>             > [bt] (2)
>             > /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/python/
>             > mxnet/../../lib/libmxnet.so(mxnet::engine::ThreadedEngine:
>             > :ExecuteOprBlock(mxnet::RunContext,
>             > mxnet::engine::OprBlock*)+0xfa9) [0x7feef8b1ad49]
>             > [bt] (3)
>             > /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/python/
>             > mxnet/../../lib/libmxnet.so(std::_Function_handler<void
>             > (std::shared_ptr<dmlc::ManualEvent>),
>             > mxnet::engine::ThreadedEnginePerDevice::
> PushToExecute(mxnet::engine::
>             > OprBlock*,
>             > bool)::{lambda()#1}::operator()()
>             > const::{lambda(std::shared_ptr<dmlc::ManualEvent>)#1}>::_
>             > M_invoke(std::_Any_data
>             > const&, std::shared_ptr<dmlc::ManualEvent>&&)+0xe2)
> [0x7feef8b30d82]
>             > [bt] (4)
>             > /home/ubuntu/apache-mxnet-src-1.2.0.rc0-incubating/python/
>             > mxnet/../../lib/libmxnet.so(std::thread::_Impl<std::_Bind_
>             > simple<std::function<void
>             > (std::shared_ptr<dmlc::ManualEvent>)>
> (std::shared_ptr<dmlc::
>             > ManualEvent>)>
>             > ::_M_run()+0x4a) [0x7feef8b2af1a]
>             > [bt] (5) /home/ubuntu/anaconda3/bin/../
> lib/libstdc++.so.6(+0xafc5c)
>             > [0x7fef7cc79c5c]
>             > [bt] (6) /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)
> [0x7fef7dec36ba]
>             > [bt] (7) /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)
> [0x7fef7dbf941d]
>             >
>             > Depending on how experimental we consider MKLDNN, that could
> be a *-1 *for
>             > me.
>             >
>             > 2018-04-21 9:01 GMT-07:00 Jun Wu <wujun....@gmail.com
> <mailto:wu
>             > jun....@gmail.com>>:
>             >
>             > +1
>             >
>             > Compiled from source. Ran the model quantization example.
> Both quantized
>             > model generation and inference can run successfully.
>             >
>             > On Fri, Apr 20, 2018 at 5:14 PM, Indhu <
> indhubhara...@gmail.com<mailto:
>             > indhubhara...@gmail.com>> wrote:
>             >
>             > +1
>             >
>             > Compiled from source on P3 instance. Tested the SSD example
> and some
>             > Gluon
>             > examples.
>             >
>             > On Wed, Apr 18, 2018, 7:40 PM Anirudh <anirudh2...@gmail.com
> <mailto:
>             > anirudh2...@gmail.com>> wrote:
>             >
>             > Hi everyone,
>             >
>             > This is a vote to release Apache MXNet (incubating) version
> 1.2.0.
>             > Voting
>             > will start now (Wednesday, April 18th) and end at 7:40 PM
> PDT,
>             > Saturday,
>             > April 21st.
>             >
>             > Link to the release notes:
>             >
>             >
>             > https://cwiki.apache.org/confluence/display/MXNET/
>             > Apache+MXNet+%28incubating%29+1.2.0+Release+Notes
>             >
>             > Link to the release candidate 1.2.0.rc0:
>             > https://github.com/apache/incubator-mxnet/releases/tag/
> 1.2.0.rc0
>             >
>             > View this page, click on "Build from Source", and use the
> source code
>             > obtained from the 1.2.0.rc0 tag:
>             > https://mxnet.incubator.apache.org/install/index.html
>             >
>             > (Note: The README.md points to the 1.2.0 tag and does not
> work at the
>             > moment.)
>             >
>             > Please remember to TEST first before voting accordingly:
>             > +1 = approve
>             > +0 = no opinion
>             > -1 = disapprove (provide reason)
>             >
>             > Thanks,
>             >
>             > Anirudh
>             >
>             >
>             >
>             >
>             >
>
>
>
>
>
>
>

Reply via email to