Skip to main content

pytorch-cka

PyPI Python PyPI Downloads

The Fastest, Memory-efficient Python Library for computing layer-wise similarity between neural network models

A bar chart with benchmark results

44x faster CKA computation across 18 representational layers of ResNet-18 models on CIFAR-10 using NVIDIA H100 GPUs

  • ⚡️ Fastest among CKA libraries thanks to vectorized ops & GPU acceleration
  • 📦 Efficient memory management with explicit deallocation
  • 🧠 Supports HuggingFace models, DataParallel, and DDP
  • 🎨 Customizable visualizations: heatmaps and line charts

📦 Installation

Requires Python 3.10+

# Using pip
pip install pytorch-cka

# Using uv
uv add pytorch-cka

👟 Quick Start

Basic Usage

from cka import compute_cka
from torch.utils.data import DataLoader
from torchvision.models import resnet18, resnet34

resnet_18 = resnet18(pretrained=True)
resnet_34 = resnet34(pretrained=True)

dataloader1 = Dataloader(your_dataset1, batch_size=bach_size, shuffle=False, num_workers=4)
dataloader2 = Dataloader(your_dataset2, batch_size=bach_size, shuffle=False, num_workers=4)
dataloader3 = Dataloader(your_dataset3, batch_size=bach_size, shuffle=False, num_workers=4)
dataloaders = [dataloader1, dataloader2, dataloader3]

layers = [
    'conv1',
    'layer1.0.conv1',
    'layer2.0.conv1',
    'layer3.0.conv1',
    'layer4.0.conv1',
    'fc',
]

cka_matrices = compute_cka(
    resnet_18,
    resnet_34,
    dataloaders,
    layers=layers,
    device=device,
)

for cka_matrix in cka_matrices:
    print(cka_matrix)

From Pre-extracted Features

If you already have feature matrices, compute CKA without models or dataloaders:

from cka import cka_from_features

# Single layer: (n_samples, feature_dim)
cka_matrix = cka_from_features(features_x, features_y)

# Multi-layer: (n_layers, n_samples, feature_dim)
cka_matrix = cka_from_features(multi_layer_x, multi_layer_y)

# Varying feature dims: list of 2D tensors
cka_matrix = cka_from_features(
    [layer1_x, layer2_x],
    [layer1_y, layer2_y, layer3_y],
)

Visualization

Heatmap

from cka import plot_cka_heatmap

fig, ax = plot_cka_heatmap(
    cka_matrix,
    layers1=layers,
    layers2=layers,
    model1_name="ResNet-18 (pretrained)",
    model2_name="ResNet-18 (random init)",
    annot=False,          # Show values in cells
    cmap="inferno",       # Colormap
)
Self-comparison heatmap Cross-model comparison heatmap
Self-comparison Cross-model

Trend Plot

from cka import plot_cka_trend

# Plot diagonal (self-similarity across layers)
diagonal = torch.diag(matrix)

fig, ax = plot_cka_trend(
    layer_trends,
    x_values=epochs,
    labels=RESNET18_LAYERS,
    markers=['o'],
    xlabel='Epoch',
    ylabel='CKA Score',
    title='Pretrained vs. Fine-tuned Across Epochs (ResNet-18)',
    legend=True,
)

fig, ax = plot_cka_layer_trend(
    cka_matrices,
    layers=RESNET18_LAYERS,
    labels=cka_loader_names,
    ylabel='CKA Score',
    title='Pretrained vs. Fine-tuned Across Layers (ResNet-18)',
    legend=True,
)
CKA Score Trend Across Epochs CKA Score Trend Across Layers
CKA Score Trend Across Epochs CKA Score Trend Across Layers

📚 References

Kornblith, Simon, et al. "Similarity of Neural Network Representations Revisited." ICML 2019.

Metadata

Release files for pytorch-cka 1.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytorch-cka 1.1.3
File Size Uploaded
pytorch_cka-1.1.3.tar.gz 266.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytorch-cka 1.1.3
File Interpreter ABI Platform
pytorch_cka-1.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 282.4 kB

Release files / pytorch_cka-1.1.3.tar.gz

Download URL pytorch_cka-1.1.3.tar.gz
Size 266.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6c7ddf3a8ee5153ed4ec2567bbd0ef3719e8e3d1cebb4335bd8a1253961744d7
BLAKE2b-256 checksum
How to use checksums
b7f3425960d69fb84d9d45882ec0535d6aed4d0eb309fa5f79d0ce4255f2605d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 9, 2026.

Transparency log

Release files / pytorch_cka-1.1.3-py3-none-any.whl

Download URL pytorch_cka-1.1.3-py3-none-any.whl
Size 15.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
540ff28c75094733e3043f0f0b09cd6595aaf6b75aa57d03e4ea386d317bfb0f
BLAKE2b-256 checksum
How to use checksums
f94e27662253bce7f50c142610184998ee1fe2d6e3106cb4de3a069b7d26d650
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.3 This release

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page