Due: May 17th 8:00AM
The final project serves as a practical alternative to an exam meant to demonstrate your understanding of the material covered in the course. The project is meant to be open-ended and tests your ability to develop deep learning solutions to existing problems.
By completing this project you should have gained experience in finding datasets online, processing data, building models to learn from the data, and integrating those models into a final solution for a problem.
Since the project is extremely open ended, there are only a few main requirements that you must follow:
- Your project must have some sense of purpose (i.e. solving a problem). You cannot just train a model on some data such as MNIST and report your accuracy.
- You must use at least one deep learning model in your project.
- You must train at least one of the models yourself. Using a pretrained model is permitted as long as you have another model you trained.
- You must write your own code and have results that you can analyze.
Note: You cannot repeat any of the projects or copy any tutorials/projects on the internet. This counts as an academic violation and will be submitted to the honor council according to the academic integrity policy.
Proposals are due by April 6th (23:59) and should highlight your project goals. It should be in the form of a slide-deck presentation (PDF) and should contain the following information at minimum:
- Team Members and Project Title (doesn't have to be final)
- What do you want to build and why?
- Where you will get the data?
- What models do you think you will use?
- How can you measure your results?
Please submit your final project slide decks as a follow up discussion to this Piazza post. Please following the naming convention: proposal_project-title.pdf. Where you replace project-title with the title of your project.
We will have a mid-way checkpoint on May 4th to checkup on progress made so far. You will need to submit a write-up that includes in detail:
- Any changes you have made to your project since the proposal.
- Overview of progress up till now.
- What remains to be completed.
- Problems that you are currently facing.
Please submit the checkpoint as a PDF in a zip file to the submit server by May 4th (23:59). Please following the naming convention: checkpoint_project-title.pdf. Where you replace project-title with the title of your project. Also include in the zip file, the code you currently have done so far. It's okay if it's not perfect but I just want to see that you have at least something meaningful done (e.g. parsing the dataset, analyzing the data).
The project is meant to be public so anyone including employers can view what you have built. To display your work, please upload all your code to a public GitHub repository. The repo should include all your code needed to run your programs and also include a detailed README.md including:
- An overview of your project.
- A list of the team members.
- How to run your code and any requirements.
- How to download any data needed.
- A link to your video demo.
Video Demo (10%)
You will need to record a video-demo of your project (at least 2-3 minutes) and upload it to YouTube. Your demo should be as professional as possible as potential employers can see it. The video should include:
- An introduction to the team.
- A high level overview of your project.
- A demo of what you have built.
- A walk through of the components (data, code, etc) and architecture.
- A description of how you chose your solution to the problem.
A Piazza post at the time of presentations will be craeted to post your YouTube links to as a followup discussion.
In-Person Demo (10%)
You will need to give an in-person demo of your project to the course facilitators. A sign up sheet will be posted closer to the time of presentations. If you are unavailable on finals day, you are allowed to give your demo earlier.
We'll try to ask the kind of questions that we would expect employers to ask, if you were to show them your project.
The remaining 20% of your grade will come from the creativity of your project and the difficulty of the challenge.
You are always welcome to go incredibly in depth on this project and writeup. In fact, you can always submit your project if it solves a novel problem as a workshop paper to a research conference!
You can also continue to extend your project and develop a full fledged application out of it. For example an engineer at Microsoft built a basic Computer Vision application at the company's hackathon to help blind people see and the project eventually evolved into the Seeing-AI project.
Are we limited to any language or can we use any language of our choice?
You are welcome to use whichever language of your choice. Though keep in mind that Python would be the preferred choice, since both TAs are experienced with the language and the AWS libraries, so we'll be able to help out more.
Are we limited to Keras or can we use any other library such as Tensorflow?
You are welcome to use any deep learning library of your choice but please make sure to comment your code in detail if you use anything other than Keras. I highly reccomend checking out PyTorch as an excellent alternative to Keras.
Is it reccomended to work in teams or do we need to work on our own?
I heavily encourage you to work as a single-person team, since building a full project on your own is much more meaningful to employers then team projects where your contributions are harder to pinpoint. However, if there is a situation where two or three students really want to work together, then you can go for it. I will expect the scope of the project to be scale in size to account for multiple teammates working together. If you want to work on a team project, shoot me an email soon with an overview of what you want to build, so that I can get back to you ASAP on whether it is the right scope for a two-person team.