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 >> > > >> > > >> > > >> > > >> > > >> > >> > >> > >> > >> > >> > >> > >>
