Project scope and instructions
Project scope and instructions¶
Project teams¶
ECE490 students can do projects in groups of two or three. ECE590 students can do projects in groups of one or two. ECE490 and ECE590 students can pair up with each other as well, but not more than a group of two.
Project scope¶
Any project where training or fine-tuning of neural network on a dataset is involved, is a valid project for the class. Any neural network library, Pytorch or tensorflow or other is acceptable. I encourage PhD students propose their existing research projects with addition of neural networks to the project. Graduate students You are allowed to pick up your own projects. If you are looking for some ideas, here are some ideas:
Ideas:
Implement a variation of optimization algorithm like SGD: https://
pytorch .org /docs /stable /optim .html Train on a different dataset: https://
pytorch .org /vision /stable /datasets .html Implement a new function along with its Vector Jacobian project (VJP) https://
pytorch .org /docs /stable /nn .functional .html Implement a new layer: https://
pytorch .org /docs /stable /nn .html
b. Reimplement a paper on your own from this list:
https://
d. Combine two or more paper ideas from the above list.
d. Implement microtorch on a FPGA using one of the open source libraries.
e. Very ambitious: Design autogradient neural network library using analog circuits.
ECE590 only: Paper summary and presentation.¶
Read, summarize and present a milestone paper from this list: https://
Pick a paper to summarize and present.
Summarize the main technical ideas from the paper in a 1-page summary.
Record a 15 min video summarizing the main technical ideas of the paper.
Use of internet sources¶
Use of open source repositories on the internet is allowed as long as you differentiate what you did from that repository. How did it help you with the project and not helped with the project?
Submissions¶
For ECE490, there will be three submissions while ECE590 students will have to make four submissions.
Project proposal (20% of final project grade)¶
The project proposal will answer the following questions
Who is in your team?
What project problem have you chosen and why? How does the project demonsgtrate the knowledge learned in the class.
Why is this problem important?
Related work: What material (papers and open source code) exists on the internet related to this project. How do you plan to use (or not use) this material for your project.
What do you already know, what will you need, and what you will have to learn?
What are the datasets available for training and evaluation for this problem?
What are the possible models that can be used for this problem?
What is the number of layers you are going to try?
What are the type of layers you are going to try?
What are the number of hidden units for each layer you are going to try?
What are the variations of activation units are you going to try?
What are the variations of regularization methods are you going to try?
What are the possible loss functions that can be used for this problem?
How will you evaluate the success of a machine learning model on this problem?
What is the simplest possible (maybe bad) solution to the problem?
Project plan: What do you plan to accomplish by second report and final project report? How are planning to divide work between you and your teammate? What are your safe, moderate and ambitious goals for each of the report? What is the fall-back plan, in case you do not accomplish your safe or moderate goals.
What measurable and quantifiable goals do you plan to accomplish by second and final project report. Examples of measurable and quantifiable goals, include implementing functions with test cases. Evaluating different models of neural networks on small datasets where the accuracy should approach near 100%, or one of the debugging steps like those mentioned here: http://
karpathy .github .io /2019 /04 /25 /recipe/
Project report (20% of the final project grade)¶
Submit your progress code (as a zip file, google drive link, or github repository) and videos, screenshots, testing procedure, showing that you have met those goals.
Keep an individual time log of what you tried, how many hours did it take, what succeeeded and what failed.
Submit an updated project plan based on how much progress you actually made.
Final project report (60% of the final project grade)¶
Revise your project proposal and resubmit to describe what you did instead of what you plan to do.
How many of your measurable and quantifiable goals have you met as described in your project proposal?
Submit your code (as a zip file, google drive link, or github repository) and proofs (screenshots, testing procedure), showing that you have met those goals.
Make a short 2-5 min video presentation of your project for someone who has not taken a neural networks course and describing what you have accomplished.
The question-answer session about your code will heavily influence your final project grades.