kohillyang commented on issue #19264:
URL:
https://github.com/apache/incubator-mxnet/issues/19264#issuecomment-703104893
There is a simpler reproduce case:
```python
import os
os.environ["DMLC_LOG_STACK_TRACE_DEPTH"]="10"
# os.environ["MXNET_USE_FUSION"]="0"
import mxnet as mx
import mxnet.gluon as gluon
class HighResolutionModule(gluon.nn.HybridBlock):
def __init__(self):
super(HighResolutionModule, self).__init__()
self.relu = mx.gluon.nn.Activation("relu")
self.fff = mx.gluon.nn.Conv2D(in_channels=64, channels=64,
kernel_size=3, padding=1)
self.fff1 = mx.gluon.nn.Conv2D(in_channels=64, channels=64,
kernel_size=3, padding=1, strides=1)
def hybrid_forward(self, F, x0, x1):
x = [x0, x1]
print(x)
y0 = (x[0] + self.fff(x[1])).relu()
y1 = (self.fff1(x[0]) + x[1]).relu()
return y0 + y1
if __name__ == '__main__':
ctx = mx.gpu()
model = HighResolutionModule()
model.initialize()
model.collect_params().reset_ctx(ctx)
model.hybridize()
y_hat = model(mx.nd.random.randn(1, 64, 56, 56, ctx=ctx),
mx.nd.random.randn(1, 64, 56, 56, ctx=ctx))
print(y_hat.shape)
```
The input is a tuple instead of a list, so this bug is not caused by using a
list as inputs. And if removing relu in the above codes, the program can exit
with a segmentation fault。 Furthermore, If set env "MXNET_USE_FUSION" to 0, the
program can exit normally. Since as far as I know, MXNET_USE_FUSION would fuse
relu into the last layer through an in-place operation.
I think this bug is caused by the fusion process.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]