Hi! I'm Atharv Pawar.

I am currently working at Ambarella as a software engineer. I received my Master's in Signal/Image Processing and Machine Learning from the University of Michigan, Ann Arbor, in 2023. I completed my undergraduate study from the Indian Institute of Technology, Bombay in 2021 with a Bachelor's in Electrical Engineering.

About Me

  • Education

    Bachelor's Electrical Engineering, Indian Institute of Technology, Bombay
    Master's Electrical and Computer Engineering, University of Michigan, Ann Arbor

    Notable Classes taken
    Machine Learning (EECS 545)
    Matrix Methods (EECS 551)
    Computer Architecture (EECS 470)
    Natural Language Processing (EECS 595)
    Machine Learning/Data Science Lab (EECS 605)
    Deep Learning for Computer Vision (EECS 598, self-study)

  • Skills

    Programming Languages
    Python
    C, C++
    CUDA
    Shell, GNU Make
    Verilog
    Julia
    MATLAB
    Machine Learning Libraries
    Pytorch
    Pandas
    Scikit-learn
    NumPy
    HuggingFace
    NetworkX
    Tools
    AWS Cloud Computing
    Git, Gerrit
    Docker

Portfolio

I have a mix of expertise in machine learning, computer vision as well as computer architecture.
Here are a few of my key projects.

Trailerize

This was a project I did for the course EECS 605 Data Science and Machine Learning Lab. I created a React App that generates a short summary or a trailer for the input video. The app's backend was hosted on Amazon's AWS Cloud Service and deployed on an EC2 instance. The video is broken down into frames on the server, and then individual Lambda instances are triggered for every frame in the video that process the frame and generate a score for each frame. Then all the frames with a score above a certain threshold get collated into the final summary video and is made available for viewing. The demo website can be found here. This project gave me valuable experience in cloud service deployment, Javascript (React App), HTML, CSS, Python requests library, Amazon's AWS infrastructure as well reinforced my knowledge of Pytorch and Python.

BERT Models for Conversation Entailment

I did this project for the course EECS 595 Natural Language Processing. Textual entailment is a common task for training NLP models. The SLED Lab of University of Michigan had developed a unique dataset where the text was natural human conversation. I took inspiration from the TabFact paper to compare the performance of the base BERT model and RoBERTa model on the dataset using two different representations of the data: the first "Para" approach where the conversations are written as directly quoted speech, and the second "KeyValue" approach where the conversations are written using speaker-dialogue pairs separated by a colon. I utilized the HuggingFace library for my experiments and found that for both models, the "KeyValue" representation gave the best accuracy, with the RoBERTa model achieving the best overall accuracy of 64.04%.

Co-tuning for Transfer Learning

This was a project I did for the course EECS 545 Machine Learning. We wanted to test the effectiveness of a cutting edge transfer learning technique, co-tuning, on a relatively unexplored dataset, which was the TACO trash dataset. Co-tuning aims to learn a relationship between the categories of two different datasets, and use it along with a pre-trained model on one dataset to supervise the training of a model on the second dataset. We used a Resnet50 backbone trained on ImageNet and transferred it onto the TACO dataset. This was my first experience getting my hands dirty with Pytorch, which was the framework we used. I learned about the training flow with Pytorch, as well as how to write a DataLoader for custom datasets.

N-way Superscalar Out-of-Order R10K Processor

This was a project I did for the course EECS 470 Computer Architecture. We implemented an R10K style out-of-order machine using the Verilog Hardware description language. In order to boost the performance of the processor, we included a prefetcher unit, instruction and data caches, a load-store queue, a branch predictor and a branch target buffer. This project gave me a lot of useful insight into the low level design and architecture of computer processors, and sparked an interest in the possibility of designing hardware optimized machine learning systems.