Assignment 4 - Course Project

For the course project, you will pick any dataset of your choice and apply the concepts learned in this course to train deep learning models end-to-end with PyTorch, experimenting with different hyperparameters & metrics.

Starter Notebook: There is no starter notebook for the course project. Please use the “New Notebook” option from your Jovian profile to create a new notebook, “Run on Colab” to execute it, and “jovian.commit” to record versions.

Guidelines for completing the project

For the course project, you will pick a dataset of your choice and apply the concepts learned in this course to train deep learning models end-to-end with PyTorch, experimenting with different hyperparameters & metrics.

  1. Find a dataset online (see the “Where to Find Datasets” section below)
  2. Understand and describe the modelling objective clearly
    1. What type of data is it? (images, text, audio, etc.)
    2. What type of problem is it? (regression, classification, generative modelling, etc.)
  3. Clean the data if required and perform exploratory analysis (plot graphs, ask questions)
  4. Modeling
    1. Define a model (network architecture)
    2. Pick some hyperparameters
    3. Train the model
    4. Make predictions on samples
    5. Evaluate on the test dataset
    6. Save the model weights
    7. Record the metrics
    8. Try different hyperparameters & regularization
  5. Conclusions - summarize your learning & identify opportunities for future work
  6. Publish and submit your Jupyter notebook
  7. (Optional) Write a blog post to describe your experiments and summarize your work. Use Medium or Github pages.

Example notebooks for reference:

Can we choose CIFAR10 for the course project?
Thanks

Can we use other library or pure pytorch? We have to use the same “training style” of the course or we are free to train in our style?

As it is already trained in the course video, we should use other dataset, Do check Kaggle Dataset you can find many interesting datasets there.

Thank you for clarification Biraj.

1 Like

Could you please suggest some datasets?
Thanks in advance

I have done my project in CIFAR100 dataset, You can use 200 birds Dataset and there are many more good dataset which I am not aware of , choose a good dataset for yourself.

my course project assignment isn’t submitting it has been showing ‘pending’ for 2-3 hours now. I even tried multiple times and even changes my project still pending.

Hello, can somebody please help me with my practice here?

I have been practicing CNN with this dataset and I couldn’t get accuracy higher than 10%. One time I got 33% accuracy (please refer to my notebook’s version 19) but that’s just one time only. All the other times, the accuracy stayed still at 10%. Is it because I reduced the size of the images too much? Am I missing something important?

Please share your ideas and suggestions with me, they will help me immensely. Please correct me too if you see any mistake. Thank you. :blush:

Edit: Thank you all for giving me suggestions and sharing your ideas. I now got higher accuracy (the highest as of now is about 65% on training set, 49% on test set) with just CNN after applying some data augmentation and normalization. :smiley: Please check out my improved model.

@birajde @Sebgolos Hey one question,
Let’s say I am dealing with a colored image with size 6* 6 * 3 i.e. 3 channels and my kernel size is 3 * 3 * 3 , what is the output image that I get? is it 4 * 4 * 8 i.e. 8 channels? how do we get 8 channels here? Please help me in understanding this.

Depends on how you have your conv layer defined.

It’s probably something like nn.Conv2d(3, 8...)

The question is not quite clear to me, Kernel should be a 2D Array let’s say 3 x 3
If you have an image of 6 x 6 x 3 where 3 is the.number of channels then we get a 4 x 4 x 3 tensor back, how are we getting 8 there? Can you show the reference to your context ?

Hey I have completed Assigment 4 and this my course project url : https://jovian.ai/iamchiragsharma/07-urban-8k-assignment

I have used urban8k noise dataset for classification task, I have used ANN with multiple architectures uploaded on github gists. I have tried to do a detailed step by step analysis and I am looking forward to improving it more. If you have any suggestions, criticism or update please do let me know.
Thanks!!

1 Like

I can’t seem to run my model. It shows this error.
Any suggestion??

My notebook link

Hey team, could you suggest some good courses/resources to help me learn how to deploy the model I create for this project? A resource that covers APIs, versioning, retraining pipelines would be absolutely fantastic, and would make the project more fun.

4 Likes

Hi @ddmasterdon I was looking your notebook, sadly I cannot really say to you with absolute
certainty where are you making the mistake because when I try to run it it seems that you have some fixed paths local to you that of course I cannot access. However, the cause is clear in the error, when this line runs: data.to(device, non_blocking=True) it seems that data variable is an integer (int), instead of a tensor. You should review what is the data variable that is entering to the to_device method and check that always is a tensor and not an integer.

Hope this help you.

Hey Subbaro, I had the exact same question yesterday so I did a bit of research and here is what I found.

The three channels in the image we start with depict the three colour depths. Now, each of these channels of images are processed independently with padding and striding the kernel. The three outputs thus generated are then combined to what forms one ‘output channel’. This process is repeated as many times as you mention in your model.

The input channels signify colour depth, but you can not draw a similar analogy for output channels. They are just layers of output, denoted by matrices. Any differentiation of channels on the basis of colour becomes hazy, and you get a sort of stack of 8 (according to your question) feature maps.

1 Like

You have to train for more epochs…try with 1000.

1 Like

My notebook here. I trained a CNN model for classifying gender based on images with and accuracy of 96%

1 Like