Mentoring for TensorFlow GSoC 2021

TF-GAN, TF Model Garden & Hub, and TFLite

Margaret Maynard-Reid
Google Developer Experts

--

This year I was invited to be a mentor of the TensorFlow organization for Google Summer of Code (GSoC). During GSoC 2021, I mentored or co-mentored three students in these product areas: TensorFlow-GAN (TF-GAN), TensorFlow Model Garden & Hub, and TensorFlow Lite (TFLite). In this post, I’d like to share my experience as a GSoC mentor and the TensorFlow projects of my students.

Image by the author

Google Summer of Code

GSoC is a global program bringing student developers into open-source software development, by working with an open-source organization (for example TensorFlow) on a 10-week programming project. The mentors for the TensorFlow projects are mostly Googlers and it was quite an honor for me to be invited because of my contribution to TensorFlow over the years.

GSoC Mentor responsibility

As a mentor I was involved earlier on in the review and selection process of the student proposals. Once the proposal selection was confirmed by the organization, each student was notified of their proposal acceptance and each mentor was notified of their assigned student(s). Josh Gordon from the TensorFlow team helped us mentors on-board to the program and pair up with students.

Protip: If you are student, be sure to write the proposal with who you are, why it is important to solve a particular problem, technical details and an actionable plan.

I met with each of my student on a weekly basis, helping them with project scope, schedule, technical questions and code review. A mentor is also expected to write two evaluations: one mid-project evaluation and another final evaluation of the student project.

Protip: Being a mentor means coaching and supporting the students. As a mentor, make sure you are not actually doing the work for your student; instead help them move to the right direction if they get stuck. The students need to figure out the solutions themselves.

1. TensorFlow GAN (TF-GAN) project

I mentored Nived PA, an undergraduate student of Amrita School of Engineering, for the TensorFlow GAN (TF-GAN) project.

TF-GAN provides building blocks to help with training and evaluation of GAN models. Nived wrote his proposal to improve the TF-GAN library by creating new tutorials showcasing how to use the TF-GAN library and also contributing to the library code itself. He wrote a Colab tutorial on ESRGAN and we also spent quite a bit of time discussing and choosing a GAN model for text-to-image generation.

Although I’m officially listed as the mentor in the GSoC dashboard, I’d like to thank Joel Shor from Google AI Japan, owner of the TF-GAN library. He has helped tremendously with the project scope discussion and code reviews for Nived’s pull requests (PRs).

Check out Nived’s project page on GSoC and GitHub.

Note: Nived, Joel and I are writing a blog post on the TF-GAN GSoC 2021 project. Stay tuned for more details!

2. TF model garden / Hub: DARKpose implementation

I mentored Chandykunju Alex, master student of Technical University of Denmark, in collaboration with Jaeyoun Kim (from TensorFlow Model Garden team) for the DarkPose project.

The Distribution-Aware coordinate Representation of Keypoint (DARK) pose estimation model was previously only implemented in PyTorch and Chandykunju was able to implement the baseline with Darkpose in TensorFlow 2.x / Keras during GSoC.

There were quite a few students for TensorFlow model garden and Hub. Jaeyoun Kim, Morgan Roff, Sayak Paul and I worked together to share mentoring responsibilities across all the students. We wrote a detailed guide on how to contribute to TF Model Garden and its coding styles, how to get started on GCP, expectations of the students and mentors etc. This helps to on-board the students easily. We, all mentors and mentees, also met bi-weekly.

Check out Chandyhunju’s project page on GSoC and GitHub.

3. TensorFlow Lite Computer Vision Samples

Together with ML GDE George Soloupis, I co-mentored Sayan Nath, third-year undergraduate student at the Kalinga Institute of Industrial Technology. He was tasked with improving the computer vision sample apps for TensorFlow Lite.

TensorFlow Lite (TFLite) is the on-device solution for implementing models on-device. There have been quite a few computer vision (and NLP) samples added on how to implement TFLite models on Android and iOS. Keeping these samples streamlined is no small task: Java vs. Kotlin, Camera 2 vs CameraX. Do we use the TensorFlow support library or the task library?

I was in collaboration with the TensorFlow Lite team: Meghna Natraj, Lu Wang, Khanh LeViet and Tian Lin. Meghna and Lu each mentored a TFLite student. Khanh helped figuring out the scope of the sample app improvements. Khanh and Tian helped with code review of PRs.

Check out Sayan’s project page on GSoC, GitHub and a blog on Medium.

What is next?

Although GSoC 2021 has ended, most of the GSoC students expressed interests in continuing their projects even after the GSoC program ends. I’m looking forward to seeing my students continue their projects and get any pending PRs merged. We will keep in touch beyond GSoC either via informal mentorship or collaboration in open-source projects.

Acknowledgements

It has been an incredibly fulfilling experience mentoring for GSoC 2021TensorFlow, coaching the student developers and collaborating with other mentors!

I’d like to thank my students Nived P A, Chandykunju Alex and Sayan Nath, the TensorFlow team: Josh Gordon, Joel Shor, Jaeyoun Kim, Morgan Roff, Meghna Natraj, Lu Wang, Khanh LeViet and Tian Lin; and the ML GDEs Sayak Paul and George Soloupis.

Many thanks to the support of the ML GDE program, Google Cloud, and TensorFlow Research Cloud (TFRC).

--

--

Margaret Maynard-Reid
Google Developer Experts

ML GDE (Google Developer Expert) | AI, Art & Design | 3D Fashion Designer