report代写 | 神经网络 | 机器学习 | Algorithm代写 | project代做 | 代做Objective | 代写html | 代做lab – Final project

Final project

report代写 | 神经网络 | 机器学习 | Algorithm代写 | project代做 | 代做Objective | 代写html | 代做lab – 这道题目是利用Network进行的编程代写任务, 包括了report/Network/network/Algorithm/Objective/html等方面, 这个项目是lab代写的代写题目

project代写 代写project

Due May 20 by 11:59pm Points 100

Your final project is to do the Kaggle facial keypoint detection challenge:

https://www.kaggle.com/c/facial-keypoints-detection (https://www.kaggle.com/c/facial- keypoints-detection)

Yo u s h o u l d i m p l e m e n t a f e w d i ff e re n t n e u r a l n e t w o r k s i n P y To rc h a n d c o m p a re t h e re s u l t s. ( T h e code that we wrote together in class will be very relevant and useful.) This should include:

  1. A convolutional neural network with an architecture of your own design (so you pick the number of layers, the number of convolutional nodes in each layer, and so on).

  2. A pretrained convolutional neural network (such as resnet). In fact, you should try a few different pretrained models, such as VGG, etc. A list of all the pretrained models provided by PyTorch can be found here: https://pytorch.org/vision/stable/models. html (https://pytorch.org/vision/stable/models.html)

You should also use data augmentation. Do you find that data augmentation improves your results? Browse through the list of augmentations supported by the Albumentations library and try a few of them. The list of data augmentations supported by Albumentations is here: https://albumentations.ai/docs/api_reference/augmentations/transforms/ (https://albumentations.ai/docs/api_reference/augmentations/transforms/)

Experiment with varying the learning rate, the number of epochs used during training, and the optimization Algorithm (Adam or RMSprop or SGD). Make plots of the Objective function value versus the epoch for both your training dataset and your validation dataset. Do you observe any overfitting? Which choices give you the best results?

Yo u s h o u l d submit a report that’s a few pages long describing:

Which architectures did you try? Which architecture seems best to you?
How many epochs did you use during training? How did you decide on the number of
epochs to use?
What learning rate did you use during training?
Did any optimization algorithm seem to work better or worse than any other?
What was the best score that you were able to get on Kaggle? (Include a screenshot of
your position on the leaderboard.)
Looking at your predictions is the most fun part of this project. You should always visualize
some of your predictions to see if they look reasonable. Your report should include several
images of faces from the Kaggle dataset with your predicted keypoint locations overlaid (as
red dots) on top of the images. Do your predictions look reasonable? Show some good
examples and some bad examples.
Yo u r re p o r t s h o u l d c o n t a i n a l i n k t o y o u r G i t h u b p a g e w h e re y o u r c o d e c a n b e f o u n d. I t
should be easy to find your code, read it, run it, and understand it.

In your report, strive for clarity. It’s ok to be brief and concise as long as the report is clearly written.

Here are a few hints for this project. In class, we wrote code that implements a convolutional neural network using PyTorch. We showed how to use a pretrained network and how to do data augmentation using the Albumentations library. That code should be very helpful for this project. You can adapt it to do keypoint detection.

Facial keypoint detection can be viewed as a regression problem. That is important. This is not a classification problem, it is a regression problem. Each facial keypoint is specified by two numbers. If you want to predict the locations of 15 keypoints, then altogether that is 30 numbers that you need to predict for any given image of a human face. Your model will take as input an image of a face (from the Kaggle dataset) and return as output a vector of 30 numbers which specify the keypoint locations. Keep in mind that when doing regression problems, you should use the mean squared error loss function (see https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html#torch.nn.MSELoss (https://pytorch.org/docs/stable/generated/torch.nn.MSELoss.html#torch.nn.MSELoss) ) rather than the cross-entropy loss function.

Try to get something simple up and running first. Get it working without data augmentation before you try doing data augmentation. As your very first step on this project, you can upload the training and test datasets (which are in .csv format) to Google Co lab and figure out how to

display some images. Just reading in the data successfully, understanding how the data is stored, displaying the images properly, and displaying some ground truth keypoint locations overlaid on the face images is a good first step. You can try to do that first, before you even create a neural network. Once you’re able to display the data and display some ground truth keypoint locations on top of an image, you’re ready to train a neural network to make predictions.

Here’s an example of an image I was able to display using several lines of code (it took 5 or 10 lines of code) on Google Colab: