Casey Reas - Making Pictures with Generative Adversarial Networks - Machine Learning Resources

Casey-Reas-GAN-Resources.jpg
This page provides links to further reading and resources discussed in Casey Reas book Making Pictures With Generative Adversarial Networks - Available in shop.

Working with GANs involves writing code, and it most often involves working with the Python programming language.[1] If this is all new to you, there is a sea of jargon and software systems to navigate. What is Tensorflow? What is Torch? What is Jupyter? Thankfully, there are initiatives to make machine learning approachable for broader audiences such as Machine Learning for Artists and ml5.js (Friendly Machine Learning for the Web). In my studio, because I wanted to go down a narrow path of working with GANs for making pictures, we developed our own ways of doing things. After trying different options, we settled on working with a dedicated computer running Linux and with a fast GPU.[2] The code we use to make pictures is modified from code posted on Github by researchers.[3] We also write Processing code to develop the thousands of images that are used for training.[4] Without the culture of academic publishing and open-source code, it wouldn’t have been possible for me to get started working in this area.

The volume of technical papers released on the topic of machine learning and GANs is daunting. It has taken months to feel comfortable with many of the fundamental ideas and terminology. It is my hope that this short book can help introduce some of the possibilities and considerations to a wider audience.

[1]
Python is a popular programming language used by both beginners and experts. Much of the existing code and tools for machine learning is written with Python.

[2]
Specifically, I am running Ubuntu 16.04, CUDA 8.0, and Tensorflow 1.3 with an NVIDIA GeForce GTX 1080 Ti graphics card. A GPU (graphics processing unit) is a specialized circuit that works separately from a computer’s main CPU (central processing unit). The GPU is the core of a computer’s graphics card, a separate circuit board that accelerates graphics and machine learning code.

[3]
Github is an online system for sharing code and collaborating on writing code.

[4]
Processing is free, open-source software created for making pictures with code. There’s more information at www.processing.org

Additional resources for taking these questions further:

ARTISTS AND MACHINE INTELLIGENCE

Art in the Age of Machine Intelligence
Blaise Agüera y Arcas

ONLINE DEMOS AND VIDEOS

AI Experiments, Collection curated by Google

AI Hub, Google Research

Image-to-Image Demo, Christopher Hesse (Edges2Cats)

Style Transfer in ML5, Yining Shi

MACHINE LEARNING FOR ARTISTS
GENE KOGAN ET AL.

Neural Networks

Looking Inside Neural Nets

Convolutional Neural Networks

PAPERS

Generative Adversarial Networks,
Ian Goodfellow et al.

NIPS 2016 Tutorial: Generative Adversarial Networks,
Ian Goodfellow

Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,
Alex Radford et al.

Generative Adversarial Networks: An Overview,
Vincent Dumoulin et al.

Image-to-Image Translation with Conditional Adversarial Networks,
Phillip Isola et al.

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks,
Jun-Yan Zhu et al.

CODE

DCGAN-Tensorflow

pix2pix-Tensorflow