This is a docker wrapper of a tensorflow implementation with azure storage connection of several techniques described in the papers:
- Image Style Transfer Using Convolutional Neural Networks by Leon A. Gatys, Alexander S. Ecker, Matthias Bethge
- Artistic style transfer for videos by Manuel Ruder, Alexey Dosovitskiy, Thomas Brox
- Preserving Color in Neural Artistic Style Transfer by Leon A. Gatys, Matthias Bethge, Aaron Hertzmann, Eli Shechtman
- Tensorflow python implementation by cysmith
the main goal of project is to create a docker container running on a gpu host that connects itself to an azure storage queue waiting for new jobs. If there is a new job it will download all needed images from an azure storage blob storage and uses the jobs transformation parameter to create the neural style image. It will create two images. the first uses the colors of the style image. the seconds uses the color of the original image. both results are then uploaded to another azure blob storage. With this approach you can run several pysical nvidia gpu machines (or azure n-series gpu machines) to create a whole cluster to process batch neural style transformations.
- nvidia drivers
- nvidia cuda
- nvidia docker
- docker
- an azure storage account (the queue und the two blob storages are created automatically)
detailed instructions to setup a host environment How to setup the host
Important!!! Make sure the environment variable "AzureStorageConnectionString" contains the connection string for the required azure storage account
There are two possibilities how to start up the container
you can use the nvidia-docker command to start up the container. the image is available on public host sbetzin/neural-style-tensorflow
sudo nvidia-docker run -d -e AzureStorageConnectionString --name neural-style-tensorflow --restart=unless-stopped sbetzin/neural-style-tensorflow
this command downloads the image from the public repository and starts it as deamon (-d --restart=unless-stopped)
if you downloaded this repository as described in the setup host instructions then you can just change to the docer repository
cd neural-style-azure/docker/neural-style-tensorflow-docker
and then just start it with
sudo make start
please note that the make file has other commands as well.