Issues w/ softmax procedure
Firstly, I had to modify the arraymancer import to exclude 'softmax' procedure and then include it separately like so:
`import arraymancer except softmax`
`import arraymancer/nn/activation/softmax`

If I don't do this, the only version I'm getting is this one:
`nnp_softmax.softmax: proc (input: Tensor[softmax.T]): Tensor[softmax.T]`

Which would throw an error because it accepts `Tensor`s where as I need the version that accepts `Variable[TT]`, defined here: https://github.com/mratsim/Arraymancer/blob/master/src/arraymancer/nn/activation/softmax.nim
(because this is needed in my custom `forward` procedure)

When I did this, I'm STILL getting an error thrown although it's something different:

/Users/salient/Desktop/CatsVDogs/main.nim(75, 26) template/generic instantiation of `forward` from here
/Users/salient/Desktop/CatsVDogs/main.nim(63, 9) template/generic instantiation of `softmax` from here
/Users/salient/.nimble/pkgs/arraymancer-0.7.11/arraymancer/nn/activation/softmax.nim(58, 11) template/generic instantiation of `softmax_cache` from here
/Users/salient/.nimble/pkgs/arraymancer-0.7.11/arraymancer/nn/activation/softmax.nim(42, 24) template/generic instantiation of `softmax_backward_ag` from here
/Users/salient/.nimble/pkgs/arraymancer-0.7.11/arraymancer/nn/activation/softmax.nim(23, 35) Error: type mismatch: got <type Gate> but expected 'SoftmaxActivation[Tensor[system.float32]]'

Any explanation for what this is and/or how to fix it?

I do see an open issue that looks somewhat relevant but not too sure: https://github.com/mratsim/Arraymancer/issues/472
