Visualize the input

These are input content and style images. We hope to "create" an image with the content of our content image, but with the style of the style image.

Prepare the data

Create methods that will allow us to load and preprocess our images easily. We perform the same preprocessing process as are expected according to the VGG training process. VGG networks are trained on image with each channel normalized by mean = [103.939, 116.779, 123.68]and with channels BGR.

In order to view the outputs of our optimization, we are required to perform the inverse preprocessing step. Furthermore, since our optimized image may take its values anywhere between $- \infty$ and $\infty$, we must clip to maintain our values from within the 0-255 range.

Optimization loop

WARNING: Creepy eyes past this point!

One of the impressive things to me is seeing paint brush strokes. Also, it seemed to have a hard time handling the patterned tie.