In particular, if you train ConvNets on other data you will get very different hallucinations. It might be interesting to train (or even fine-tune) the networks on different data and see how the results vary. For example, different medical datasets, or datasets made entirely of faces (e.g. Faces in the Wild data), galaxies, etc.
It's also possible to take Image Captioning models and use the same idea to hallucinate images that are very likely for some specific sentence. There are a lot of fun ideas to play with.
Would it be possible on a simple commercial computer?
Grab a couple of video cards and have fun!
Since you have this all set up, can you make some feedback loop animations for example with zooming? Or apply this to each frame of a movie? For example something famous like Charlie Bit My Finger. Hopefully using the deeper more horrifying setting.
Check out the tiger, and super weird tiger: https://twitter.com/radiofreejohn/status/616490624095621120 :) :)
Then I tried a picture of a puppy and it sprouted another face on its paw and subtle eyes throughout its fur: http://i.imgur.com/N8Izxm1.jpg
I did one of a landscape of the Blueridge Mountains and it added a bunch of buildings on the mountain tops, and insects in the sky :P
Some of us are going to be putting our own on http://reddit.com/r/deepdream
Reminds me of Charlie Stross's new novel,
"A brief recap: magic is the name given to the practice of manipulating the ultrastructure of reality by carrying out mathematical operations. We live in a multiverse, and certain operators trigger echoes in the Platonic realm of mathematical truth, echoes which can be amplified and fed back into our (and other) realities. Computers, being machines for executing mathematical operations at very high speed, are useful to us as occult engines. Likewise, some of us have the ability to carry out magical operations in our own heads, albeit at terrible cost."
That guide is mostly correct, assuming your reply here means that you're also using OS X. It should get you all the way to a working Caffe install. The one thing it doesn't get right is that your PYTHON_INCLUDE and PYTHON_LIB variables should both point to the relevant folders from your Homebrew Python install (I had no luck attempting to compile pycaffe against either Anaconda or system Python, both would just segfault when I imported the module). In my case, that was (assuming you've already installed numpy with Homebrew pip):
PYTHON_INCLUDE := /usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/include/python2.7 \
PYTHON_LIB is exactly as it is in the example Makefile.config on that page, except adjusted for version number if you've installed Python via Homebrew since 2.7.10 was released.
You can suggest what objects the network should dream about (combinations of two are also possible).
Our code will be published on GitHub later today!
I'm wondering if it's possible to use this with a model that was trained on a database without labels, just pictures. Is such a thing even possible? For this particular application, labeling and categories are ultimately superfluous, but are they required in order to get there?
Perhaps this is working entirely differently and I'm thinking too much in the classical computer vision realm. Would love some explanation though.
There will basically always be an output nose with the highest confidence, no matter how low.
Also I didn't know that github displays .ipynb, that's pretty awesome.
Are there any other flavors of hallucination? Why all the dogs? I suppose ImageNet has a lot of dog varieties in its category list.