Organizing diverse input data for mxnet models

I am designing an mxnet model I would like to feed many different types of data (categorical, continuous, text and potentially even images).

Does anyone have a recommendations for a clean way/best practices for doing this? For example, is it good practice to separate the data before passing it the iterators like so?

mx.io.NDArrayIter(data={'user_categorical':A,'user_continous':B, 'user_text':C, 'item_categorical':D,'item_continous':E, 'item_text':F},label=R, batch_size=batch_size)

The problem with this approach is that I also need to pass the vocabulary size for each categorical feature (categorical features will be embedded). I would like to do this in a way that does not require changes to the model symbol code/arguements, even as more categorical features are included.

Any good examples people can point me in the direction of would be much appreciated.