I am trying see if I can do a deep dreaming algorithm without exiting a neural net.
This Generalized Backpropagation for Neural Networks (e.g. DeepDream) has a nice discussion of using the NetPortGradient to perform a gradient ascent on an image's pixel values (i.e., iteratively "maximize the total amount of neuronal firing"). The gradient ascent is performed "outside of the net"--i.e., it uses a WL kernel functions (i.e., image += factor*gradient) on the output of a call to a trained net.
I know that there are two new resource functions to do deep dreams(deep dream alpha and deep dream beta), but I am trying to learn how to implement my own version.
Is it possible to forego the call and perform the entire operation within the net. In other words, can I modify the net to do the gradient ascent all by itself?
If yes, then a hint on how one would proceed would be appreciated.
Thank you