Here is a temporary fix, so MKLDNN conv follows the behavior of MXNet
conv (always uses the first two elements in the tuple as padding).
https://github.com/apache/incubator-mxnet/pull/10666

I also created an issue regarding this problem so that we'll fix it
properly in the future.
https://github.com/apache/incubator-mxnet/issues/10663

Best,
Da

On Mon, Apr 23, 2018 at 8:00 PM, Anirudh <[email protected]> wrote:
> Hi,
>
> Currently mkldnn support adds the check for tuple length for padding and
> raises the exception. Even though this is the correct approach, this is not
> consistent with
> MXNet behavior without MKLDNN enabled.
>
> I agree with Da and Haibin that the right approach in the longer term would
> be to:
> 1. raise an exception for MXNet conv operator when tuple size is 4.
> 2. Fix onnx converter to convert paddings correctly
>
> This would prevent silents failures with wrong results and also have a
> consistent behavior for MXNet with or without MKLDNN enabled.
>
> Having said that, in the shorter term I think it is okay to remove the
> check in MKLDNN, if we can notify the user somehow(maybe a warning) in
> ONNX-converter about (left, right, top, bottom) being interpreted as
> (height, width) for Conv operator.
>
> Anirudh
>
>
>
>
> On Mon, Apr 23, 2018 at 6:19 PM, Haibin Lin <[email protected]>
> wrote:
>
>> 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 <[email protected]> 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" <[email protected]> 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" <[email protected]> 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" <[email protected]
>> >
>> > 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 <[email protected]>:
>> >
>> >             > @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 <
>> > [email protected]
>> >             > <mailto:[email protected]>> 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 <
>> >             > [email protected]<mailto:[email protected]
>> >>
>> >             > 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 <[email protected]
>> > <mailto:wu
>> >             > [email protected]>>:
>> >             >
>> >             > +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 <
>> > [email protected]<mailto:
>> >             > [email protected]>> 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 <
>> [email protected]
>> > <mailto:
>> >             > [email protected]>> 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