Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
ELEC-4840 Assignment 1
In this assignment, students are required to complete two coding
challenges and write a summary report (no more than three pages). The
summary report should include: the required output results stipulated in
the following problems and required additional discussions about your
work. Students need to submit the code (.ipynb) and the summary
report (.pdf) in Canvas by 26 Feb 235900. Absence of the code in your
homework submission will lead to 20% deduction of your score.
We provide a coding example for you to start up your work. You can
modify or add on this Jupyter notebook to complete your homework. The
notebook is in the Canvas assignment page. You can import this Jupyter
notebook into Google Colaboratory to run the notebook.
Problem 1. Train an MLP network on the MNIST
dataset(40%)
MNIST dataset ("Modified National Institute of Standards and
Technology") is the de facto “hello world” dataset of computer vision
tasks. Since its release in 1999, this classic handwritten digits dataset has
served as the benchmark of classification algorithms.
In this problem, you need to implement a four-layer MLP network to train a
classification model on the MNIST dataset. The structure of the MLP is
given below.
Layer Type Input Output Activation
1 Linear 28 * 28 128 ReLU
2 Linear 128 64 ReLU
3 Dropout 64 64 -
4 Linear 64 32 ReLU
5 Dropout 32 32 -
6 Linear 32 10 -
You need to:
. In the notebook, implement the function __init__ and forward in
the class Model (15%),
. In the notebook, implement the training code (15%),
. In the summary report, plot the accuracy and loss curve. You can
plot and save it in the notebook then export it to the report (5%).
Compare and discuss the results' difference between the model with
/ without dropout operation(5%).
Problem 2. Train a LeNet network on the EMINIST
dataset(60%)
EMNIST (Extended MNIST) is a larger version of handwritten characters
and digits dataset. EMNIST is widely used in research and industry for
evaluating and comparing different models. The extended dataset size and
the greater diversity of characters and digits, makes it a valuable resource
for training more robust and accurate machine learning models.
LeNet is a Convolutional Neural Network (CNN) architecture for image
classification tasks, particularly for handwritten digit recognition. It was
introduced by Yann LeCun et al. in 1998 and is one of the earliest deep-
learning models for image classification.
You need to:
. Implement the model and training code as instructed in the Jupyter
notebook (30%);
. In the summary report, plot the loss and accuracy curve (10%);
. Try different choices of batch sizes, learning rates, or optimizers in
your experiments. In the summary report, report the accuracy of
your three choices. You may discuss the findings, the explaination,
and possible solutions in a short paragraph followed by your results
(30%).