I’m running a model that performs a few nd.sparse.dot(<CSRNDArray @gpu(0)>, <NDArray @gpu(0)>) operations on gpu in the forward pass. I get the following message when I run loss.backward() with the adam optimizer:
Storage type fallback detected:
_operator = backward_FullyConnected
input storage types = [row_sparse, default, default, ]
output storage types = [default, default, default, ]
params = {“no_bias” : False, “flatten” : True, “num_hidden” : 64, }
context.dev_mask = gpu
The operator with default storage type will be dispatched for execution. You’re seeing this warning message because the operator above is unable to process the given ndarrays with specified storage types, context and parameter. Temporary dense ndarrays are generated in order to execute the operator. You can set environment variable MXNET_STORAGE_FALLBACK_LOG_VERBOSE to 0 to suppress this warning.
Is this telling me my CSRNDArray is getting converted to a dense array to perform the backward pass? What’s the best way to confirm this? And if so, why does it say “row_sparse” in the warning message?
Thanks!