Skip to main content

A library for pytorch layer testing.

Project description

tencheck

tencheck provides a simple set of utilities for analyzing and validating the properties of layers of deep neural nets.

It's typically quite difficult to validate that a layer "behaves properly" (oftentimes, the final barometer is simply how well a model performs with the layer included), and many brittle unit tests have been written involving randomly instantiated tensors and is_close checks. We believe a good "first line of defense" for neural nets is to create a suite of properties that can be asserted about a layer, while requiring minimal effort per layer in order to do so.

We think there are two aspects of property-based testing that are quite useful to take inspiration from:

  • Automatically generating inputs (and generating inputs of variable sizes and values to elucidate properties of interest).
  • Evaluating properties based on the maintenance of invariants instead of attempting to exactly match values (which is particularly difficult to interpret in deep neural nets).

However, an important difference is that the properties of interest are generally fairly generic and often shared between layers, while the input generation strategies are pretty similar (they're all tensors). So the focus of tencheck is to provide:

  • An (attempted) universal input generation harness.
  • A variety of interesting properties.
  • Three modalities: assertion, analysis, and profiling.

The following requirements need to be met for tencheck to work:

  • Your layers are implemented in torch.
  • The .forward() method is annotated with jaxtyping.

Backlog

  • For profiling, use a grid of input sizes to generate performance curves.
  • Pick a flop counter and use for profiling
  • Tensor container types include more options like dataclasses.
  • Auto-generate simple hyperparameters for layer instantiation.
  • Refine dtype mapping and coherence.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tencheck-0.0.3.tar.gz (11.1 kB view hashes)

Uploaded Source

Built Distribution

tencheck-0.0.3-py3-none-any.whl (11.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page