I need to apply a dilated convolution to a 3D image, but dilation values greater than 1 are not currently supported in v11.3:

conv = NetInitialize@
  ConvolutionLayer[3, 3, "Dilation" -> 2, "PaddingSize" -> 1, 
   "Input" -> NetEncoder[{"Image3D", {5, 5, 5}}], 
   "Output" -> NetDecoder["Image3D"]]

enter image description here

Is there some undocumented way, perhaps with MXNetLink, to hack around this issue?


1 Answer 1


Unfortunately, MXNet does not support 3D convolutions with dilations yet. This can be seen in the MXNet source for convolution.

  • $\begingroup$ Then would it be possible to write it in top level code? $\endgroup$
    – M.R.
    May 21, 2018 at 18:16
  • $\begingroup$ No, the custom layer functionality is not in 11.3. But even if you could implement it in top-level, it will be unlikely to be fast enough for NN training... $\endgroup$
    – Sebastian
    May 21, 2018 at 18:18
  • $\begingroup$ Is there a good chance that custom layers will be coming in 11.4? $\endgroup$
    – M.R.
    May 21, 2018 at 18:24
  • 3
    $\begingroup$ It will depend on the new compiler being ready (also, there probably won't be a 11.4, just 12), as we will only allow compiled functions as custom layers. If the compiler is ready, then there is a very good chance this will be available. $\endgroup$
    – Sebastian
    May 22, 2018 at 9:08
  • $\begingroup$ Hi, Sebastian, I think there are many bugs about the Transfer of MXNet model both Mathematica or MXNet, such like MXNet cannot load Mathematica model with aux_states like a LSTM model, Do you know when will Mathematica 12 be published? and When will such problem be solved? $\endgroup$ May 23, 2018 at 10:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.