README.md
1 Assignments for Udacity Deep Learning class with TensorFlow
2 ===========================================================
3
4 Course information can be found at https://www.udacity.com/course/deep-learning--ud730
5
6 Running the Docker container from the Google Cloud repository
7 -------------------------------------------------------------
8
9 docker run -p 8888:8888 --name tensorflow-udacity -it gcr.io/tensorflow/udacity-assignments:1.0.0
10
11 Note that if you ever exit the container, you can return to it using:
12
13 docker start -ai tensorflow-udacity
14
15 Accessing the Notebooks
16 -----------------------
17
18 On linux, go to: http://127.0.0.1:8888
19
20 On mac, find the virtual machine's IP using:
21
22 docker-machine ip default
23
24 Then go to: http://IP:8888 (likely http://192.168.99.100:8888)
25
26 FAQ
27 ---
28
29 * **I'm getting a MemoryError when loading data in the first notebook.**
30
31 If you're using a Mac, Docker works by running a VM locally (which
32 is controlled by `docker-machine`). It's quite likely that you'll
33 need to bump up the amount of RAM allocated to the VM beyond the
34 default (which is 1G).
35 [This Stack Overflow question](http://stackoverflow.com/questions/32834082/how-to-increase-docker-machine-memory-mac)
36 has two good suggestions; we recommend using 8G.
37
38 In addition, you may need to pass `--memory=8g` as an extra argument to
39 `docker run`.
40
41 * **I want to create a new virtual machine instead of the default one.**
42
43 `docker-machine` is a tool to provision and manage docker hosts, it supports multiple platform (ex. aws, gce, azure, virtualbox, ...). To create a new virtual machine locally with built-in docker engine, you can use
44
45 docker-machine create -d virtualbox --virtualbox-memory 8196 tensorflow
46
47 `-d` means the driver for the cloud platform, supported drivers listed [here](https://docs.docker.com/machine/drivers/). Here we use virtualbox to create a new virtual machine locally. `tensorflow` means the name of the virtual machine, feel free to use whatever you like. You can use
48
49 docker-machine ip tensorflow
50
51 to get the ip of the new virtual machine. To switch from default virtual machine to a new one (here we use tensorflow), type
52
53 eval $(docker-machine env tensorflow)
54
55 Note that `docker-machine env tensorflow` outputs some environment variables such like `DOCKER_HOST`. Then your docker client is now connected to the docker host in virtual machine `tensorflow`
56
57 * **I'm getting a TLS connection error.**
58
59 If you get an error about the TLS connection of your docker, run the command below to confirm the problem.
60
61 docker-machine ip tensorflow
62
63 Then if it is the case use the instructions on [this page](https://docs.docker.com/toolbox/faqs/troubleshoot/) to solve the issue.
64
65
66 * **I'm getting the error - docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host? - when I run 'docker run'.**
67
68 This is a permissions issue, and a popular answer is provided for Linux and Max OSX [here](http://stackoverflow.com/questions/21871479/docker-cant-connect-to-docker-daemon) on StackOverflow.
69
70 Notes for anyone needing to build their own containers (mostly instructors)
71 ===========================================================================
72
73 Building a local Docker container
74 ---------------------------------
75
76 cd tensorflow/examples/udacity
77 docker build --pull -t $USER/assignments .
78
79 Running the local container
80 ---------------------------
81
82 To run a disposable container:
83
84 docker run -p 8888:8888 -it --rm $USER/assignments
85
86 Note the above command will create an ephemeral container and all data stored in the container will be lost when the container stops.
87
88 To avoid losing work between sessions in the container, it is recommended that you mount the `tensorflow/examples/udacity` directory into the container:
89
90 docker run -p 8888:8888 -v </path/to/tensorflow/examples/udacity>:/notebooks -it --rm $USER/assignments
91
92 This will allow you to save work and have access to generated files on the host filesystem.
93
94 Pushing a Google Cloud release
95 ------------------------------
96
97 V=1.0.0
98 docker tag $USER/assignments gcr.io/tensorflow/udacity-assignments:$V
99 gcloud docker push gcr.io/tensorflow/udacity-assignments
100 docker tag $USER/assignments gcr.io/tensorflow/udacity-assignments:latest
101 gcloud docker push gcr.io/tensorflow/udacity-assignments
102
103 History
104 -------
105
106 * 0.1.0: Initial release.
107 * 0.2.0: Many fixes, including lower memory footprint and support for Python 3.
108 * 0.3.0: Use 0.7.1 release.
109 * 0.4.0: Move notMMNIST data for Google Cloud.
110 * 0.5.0: Actually use 0.7.1 release.
111 * 0.6.0: Update to TF 0.10.0, add libjpeg (for Pillow).
112 * 1.0.0: Update to TF 1.0.0 release.
113