DEV Community

Cover image for A Visualizer for PyTorch Image Transformations
Mage AI
Mage AI

Posted on

9 6

A Visualizer for PyTorch Image Transformations

Alt Text

Alt Text

Tldr; Check out the app here.

Image augmentation is a common technique used when training computer vision models in order to generate artificial training data by transforming in your actual training data, for example, random rotations and shifts.

Alt TextWe created 4 new images of cats!

However these augmentations can often be a source of subtle bugs. For example here is an typical PyTorch transform pipeline:

from torchvision import transforms

transform = transforms.Compose([
    transforms.RandomAffine(degrees=360, translate=(0.64, 0.98), scale=(0.81, 2.85), shear=(0.1, 0.5), fill=0, interpolation=InterpolationMode.NEAREST),
    transforms.ColorJitter(brightness=0.62, contrast=0.3, saturation=0.44, hue=0.24),
    transforms.RandomVerticalFlip(p=0.45)
])
Enter fullscreen mode Exit fullscreen mode

Do you see anything obviously wrong with it?

Well, let’s see what happens when we actually try to apply these transformations to our cat.

Alt TextHalf of these don’t even look like cats!

As you can see the transformations were not properly tuned and resulted in a significant number of images being completely unrecognizable. If we train the model on this augmented dataset, it’s no longer learning what a cat looks like.
These sorts of bugs are tricky because no errors will be raised. Instead the result would be that the model will not perform as well on the un-augmented test dataset as it could have.

Introducing a PyTorch transforms visualizer

Alt Text

You can use this tool to develop and sanity check your transforms on actual images before using them in a training script. It supports all the transforms provided in the torchvision.transforms package.

Check it out here!

Heroku

Built for developers, by developers.

Whether you're building a simple prototype or a business-critical product, Heroku's fully-managed platform gives you the simplest path to delivering apps quickly — using the tools and languages you already love!

Learn More

Top comments (4)

Collapse
 
dangerous profile image
Tommy DANGerous

This is super helpful for generating additional training data!

Collapse
 
nathanielthemage profile image
nathaniel-mage

I love that you can try out the image transformations on a website!

Collapse
 
thomaschung408 profile image
Tom Chungry

Very cool!

Collapse
 
wangxiaoyou1993 profile image
wangxiaoyou1993

This visualization tool makes parameter tuning for image transformation easier!

Billboard image

Try REST API Generation for Snowflake

DevOps for Private APIs. Automate the building, securing, and documenting of internal/private REST APIs with built-in enterprise security on bare-metal, VMs, or containers.

  • Auto-generated live APIs mapped from Snowflake database schema
  • Interactive Swagger API documentation
  • Scripting engine to customize your API
  • Built-in role-based access control

Learn more

👋 Kindness is contagious

Explore a trove of insights in this engaging article, celebrated within our welcoming DEV Community. Developers from every background are invited to join and enhance our shared wisdom.

A genuine "thank you" can truly uplift someone’s day. Feel free to express your gratitude in the comments below!

On DEV, our collective exchange of knowledge lightens the road ahead and strengthens our community bonds. Found something valuable here? A small thank you to the author can make a big difference.

Okay