Skip to main content

PyTorch implementation of ThriftyNet by Guillaume Coiffier, Ghouthi Boukli Hacene, and Vincent Gripon.

Project description

Thrifty Networks

Installation

pip install thriftynet

Usage

You can use the encoder only:

from thriftynet import ThriftyEncoder

encoder = ThriftyEncoder(
    filters=128,
    iterations=20,
    kernel_size=3,
    normalization="layer"
)
images = torch.randn(1, 3, 224, 224)
features = encoder(images)
print(features.size(1)) # prints 128

Alternatively initialize a network with a classification head:

from thriftynet import ThriftyNetwork

encoder = ThriftyNetwork(
    100,
    filters=128,
    iterations=20,
    kernel_size=3,
    normalization="layer"
)
images = torch.randn(1, 3, 224, 224)
features = encoder(images)
print(features.size(1)) # prints 100

Abstract

Typical deep convolutional architectures present an increasing number of feature maps as we go deeper in the network, whereas spatial resolution of inputs is decreased through downsampling operations. This means that most of the parameters lay in the final layers, while a large portion of the computations are performed by a small fraction of the total parameters in the first layers.

In an effort to use every parameter of a network at its maximum, we propose a new convolutional neural network architecture, called ThriftyNet. In ThriftyNet, only one convolutional layer is defined and used recursively, leading to a maximal parameter factorization.

In complement, normalization, non-linearities, downsamplings and shortcut ensure sufficient expressivity of the model. ThriftyNet achieves competitive performance on a tiny parameters budget, exceeding 91% accuracy on CIFAR-10 with less than 40K parameters in total, and 74.3% on CIFAR-100 with less than 600K parameters.

Results

Citation

@software{thriftynets2026implementation,
    author = {Taha Shieenavaz},
    title = {ThriftyNets: Convolutional Neural Networks with Tiny Parameter Budget (Unofficial Implementation)},
    year = {2026},
    url = {https://github.com/tahashieenavaz/thriftynet},
    note = {Unofficial implementation of the paper arXiv:2007.10106 by Coiffier et al.}
}
@misc{2007.10106,
    Author = {Guillaume Coiffier and Ghouthi Boukli Hacene and Vincent Gripon},
    Title = {ThriftyNets : Convolutional Neural Networks with Tiny Parameter Budget},
    Year = {2020},
    Eprint = {arXiv:2007.10106},
}

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

thriftynet-1.0.11.tar.gz (537.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thriftynet-1.0.11-py3-none-any.whl (534.3 kB view details)

Uploaded Python 3

File details

Details for the file thriftynet-1.0.11.tar.gz.

File metadata

  • Download URL: thriftynet-1.0.11.tar.gz
  • Upload date:
  • Size: 537.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for thriftynet-1.0.11.tar.gz
Algorithm Hash digest
SHA256 a4627be813bd74781aa37226493688a1bb11cf8170d2cd08cea96ced52508b8b
MD5 a4e799ab1c75d93c8b520e672306d6a4
BLAKE2b-256 0b510063013f3a76f94595364414ea4f28c4e15fc6865fd615b283bd9dc873f0

See more details on using hashes here.

File details

Details for the file thriftynet-1.0.11-py3-none-any.whl.

File metadata

  • Download URL: thriftynet-1.0.11-py3-none-any.whl
  • Upload date:
  • Size: 534.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for thriftynet-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 ae4a34aa02fab8cb6c04756e3b80ddf5b31d27319ed7112c7fe17d7662cbd16c
MD5 9a45faf8ca8eda320d5dbf16155dd2b2
BLAKE2b-256 e57a8d8675ad31dbc2902295d543db658025c2bf653ff80c8cafe4be8e1da02c

See more details on using hashes here.

Supported by

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