This is an archive of the 2017's course. For the current course, see here

Course Description

Tensorflow is a powerful open-source software library for machine learning developed by researchers at Google Brain. It has many pre-built functions to ease the task of building different neural networks. Tensorflow allows distribution of computation across different computers, as well as multiple CPUs and GPUs within a single machine. TensorFlow provides a Python API, as well as a less documented C++ API. For this course, we will be using Python.

This course will cover the fundamentals and contemporary usage of the Tensorflow library for deep learning research. We aim to help students understand the graphical computational model of Tensorflow, explore the functions it has to offer, and learn how to build and structure models best suited for a deep learning project. Through the course, students will use Tensorflow to build models of different complexity, from simple linear/logistic regression to convolutional neural network and recurrent neural networks with LSTM to solve tasks such as word embeddings, translation, optical character recognition. Students will also learn best practices to structure a model and manage research experiments.

Class Time and Location

Winter quarter (January - March, 2017)
Lecture: Wednesday, Friday 3:30-4:20
Location: 200-219

Instructor

Chip Huyen

Office Hours by appointment

Grading Policy

There're three assignments, each graded on the check/check minus/check plus scale like in the CS106 series. You pass the course if:
+ You average a check in all three assignments
+ and you're reasonably active in class. I won't be taking attendance because it's really boring. But I expect to see you often in class.

Prerequisites

FAQ

Is this the first time this class is offered?
Yes. Therefore, the materials of the class are not yet polished and the teaching might be experimental. Your feedback will be greatly appreciated.
Will lectures be recorded?
Because this is a student initiated course, the lectures won't be recorded.
Is attendance mandatory?
I won't be taking attendance but I expect to see you often in class. I want to get students' feedback so that I can improve in the future. The class is small (capped at 20), so we will probably get to know each other well.
What is the format of the class?
It will be lecture + discussion. All students in the class are really smart, so I believe the class will an excellent opportunity for us to learn from each other. We will often have guest lecturers who are TensorFlow experts.
Will the course be in Python 2 or 3?
The code examples are in Python 2.7, following the lead of CS231N. I will translate them into Python 3 as soon as I have a chance. You can do assignments in either Python 2 or 3. There is really not much difference.
The course seems to focus on NLP?
The syllabus is currently designed to be 60% Natural Language Processing and 40% Computer Vision. We are hoping to add a class or two about using Tensorflow in Reinforcement Learning.
Can I follow along from the outside?
We'd be happy if you join us! All the slides and lecture notes will be posted on this website. You're welcome to join us on Piazza and ask questions. We answer all the questions pretty fast. You can also subscribe to the guest mailing list to get updates from the course.
Can I audit or sit in?
In general we are very open to sitting-in guests if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend.
Can I work in groups for the assignment?
Yes, in groups of up to two people.
I have a question about the class. What is the best way to reach the course staff?
Stanford students please use an internal class forum on Piazza so that other students may benefit from your questions and our answers. If you have a personal matter, email Chip directly.