I see that shapes for symbols are not available since they will only be known when necessary inputs to the computational graph are given. It might be helpful, however, to provide the shape information as variables in the computational graph. That means the shape of a symbol would be another symbol which when inputs are given would hold the instantiated shape of the data. As far as I know, Tensorflow has a design like this. Also, in tandem with this, operators like
reshape that originally accepts
shape as a tuple of integers should be redesigned to accept symbol typed
shape as well. I would like to hear your opinions regarding the pros and cons and practicability of this design. Would it be helpful in making the library more flexible? How much change has to be done in order to migrate to this new design? If the design for symbols is thus changed, how should that for ndarrays be changed accordingly, in order to unify the interfaces as much as possible?
We don’t support it now, and, unfortunately, don’t have plans to support it in future as it requires significant development efforts.