Skip to main content

Image pyramid generation specialized for connectomics data types and procedures.

Project description

Build Status PyPI version

tinybrain

Image pyramid generation specialized for connectomics data types and procedures. If your brain wasn't tiny before, it will be now.

import tinybrain 

img = load_3d_em_stack()

# 2x2 and 2x2x2 downsamples are on a fast path.
# e.g. (2,2), (2,2,1), (2,2,1,1), (2,2,2), (2,2,2,1)
img_pyramid = tinybrain.downsample_with_averaging(img, factor=(2,2,1), num_mips=5, sparse=False)

labels = load_3d_labels()
label_pyramid = tinybrain.downsample_segmentation(labels, factor=(2,2,1), num_mips=5, sparse=False))

Installation

pip install numpy
pip install tinybrain

Motivation

Image hierarchy generation in connectomics uses a few different techniques for visualizing data, but predominantly we create image pyramids of uint8 grayscale images using 2x2 average pooling and of uint8 to uint64 segmentation labels using 2x2 mode pooling. When images become very large and people wish to visualze upper mip levels using three axes at once, it becomes desirable to perform 2x2x2 downsamples to maintain isotropy.

It's possible to compute both of these using numpy, however as multiple packages found it useful to copy the downsample functions, it makes sense to formalize these functions into a seperate library located on PyPI.

Given the disparate circumstances that they will be used in, these functions should work fast as possible with low memory usage and avoid numerical issues such as integer truncation while generating multiple mip levels.

Considerations: downsample_with_averaging

It's advisable to generate multiple mip levels at once rather than recursively computing new images as for integer type images, this leads to integer truncation issues. In the common case of 2x2x1 downsampling, a recursively computed image would lose 0.75 brightness per a mip level. Therefore, take advantage of the num_mips argument which strikes a balance that limits integer truncation loss to once every 4 mip levels. This compromise allows for the use of integer arithmatic and no more memory usage than 2x the input image including the output downsamples. If you seek to eliminate the loss beyond 4 mip levels, try promoting the type before downsampling. 2x2x2x1 downsamples truncate every 8 mip levels.

A C++ high performance path is triggered for 2x2x1x1 and 2x2x2x1 downsample factors on uint8, uint16, float32, and float64 data types in Fortran order. Other factors, data types, and orderings are computed using a numpy pathway that is much slower and more memory intensive.

We also include a sparse mode for downsampling 2x2x2 patches, which prevents "ghosting" where one z-slice overlaps a black region on the next slice and becomes semi-transparent after downsampling. We deal with this by neglecting the background pixels from the averaging operation.

Example Benchmark

On a 1024x1024x100 uint8 image I ran the following code. PIL and OpenCV are actually much faster than this benchmark shows because most of the time is spent writing to the numpy array. tinybrain has a large advantage working on 3D and 4D arrays. Of course, this is a very simple benchmark and it may be possible to tune each of these approaches. On single slices, Pillow was faster than tinybrain.

img = np.load("image.npy")

s = time.time()
downsample_with_averaging(img, (2,2,1))
print("Original ", time.time() - s)

s = time.time()
out = tinybrain.downsample_with_averaging(img, (2,2,1))
print("tinybrain ", time.time() - s)

s = time.time()
out = np.zeros(shape=(512,512,100))
for z in range(img.shape[2]):
  out[:,:,z] = cv2.resize(img[:,:,z], dsize=(512, 512) )
print("OpenCV ", time.time() - s)

s = time.time()
out = np.zeros(shape=(512,512,100))
for z in range(img.shape[2]):
  pilimg = Image.fromarray(img[:,:,z])
  out[:,:,z] = pilimg.resize( (512, 512) )
print("Pillow ", time.time() - s)

# Method     Run Time             Rel. Perf.
# Original   1820 ms +/- 3.73 ms    1.0x
# tinybrain    67 ms +/- 0.40 ms   27.2x 
# OpenCV      469 ms +/- 1.12 ms    3.9x
# Pillow      937 ms +/- 7.63 ms    1.9x

Considerations: downsample_segmentation

The downsample_segmentation function performs mode pooling operations provided the downsample factor is a power of two, including in three dimensions. If the factor is a non-power of two, striding is used. The mode pooling, which is usually what you want, is computed recursively. Mode pooling is superior to striding, but the recursive calculation can introduce defects at mip levels higher than 1. This may be improved in the future.

The way the calculation is actually done uses an ensemble of several different methods. For (2,2,1,1) and (2,2,2,1) downsamples, a Cython fast, low memory path is selected. (2,2,1,1) implements countless if. (2,2,2,1) uses a combination of counting and "instant" majority detection. For (4,4,1) or other 2D powers of two, the countless 2d algorithm is used. For (4,4,4), (8,8,8) etc, the dynamic countless 3d algorithm is used. For 2D powers of two, stippled countless 2d is used if the sparse flag is enabled. For all other configurations, striding is used.

Countless 2d paths are also fast, but use slightly more memory and time. Countless 3D is okay for (2,2,2) and (4,4,4) but will use time and memory exponential in the product of dimensions. This state of affairs could be improved by implementing a counting based algorithm in Cython/C++ for arbitrary factors that doesn't compute recursively. The countless algorithms were developed before I knew how to write Cython and package libraries. However, C++ implementations of countless are much faster than counting for computing the first 2x2x1 mip level. In particular, an AVX2 SIMD implementation can saturate memory bandwidth.

Documentation for the countless algorithm family is located here: https://github.com/william-silversmith/countless

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

tinybrain-1.2.2.tar.gz (382.9 kB view details)

Uploaded Source

Built Distributions

tinybrain-1.2.2-cp310-cp310-win_amd64.whl (652.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

tinybrain-1.2.2-cp310-cp310-win32.whl (605.2 kB view details)

Uploaded CPython 3.10 Windows x86

tinybrain-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

tinybrain-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

tinybrain-1.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tinybrain-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl (795.1 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

tinybrain-1.2.2-cp310-cp310-macosx_10_9_universal2.whl (1.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

tinybrain-1.2.2-cp39-cp39-win_amd64.whl (652.6 kB view details)

Uploaded CPython 3.9 Windows x86-64

tinybrain-1.2.2-cp39-cp39-win32.whl (605.3 kB view details)

Uploaded CPython 3.9 Windows x86

tinybrain-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

tinybrain-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

tinybrain-1.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tinybrain-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl (795.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

tinybrain-1.2.2-cp39-cp39-macosx_10_9_universal2.whl (1.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

tinybrain-1.2.2-cp38-cp38-win_amd64.whl (652.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

tinybrain-1.2.2-cp38-cp38-win32.whl (603.5 kB view details)

Uploaded CPython 3.8 Windows x86

tinybrain-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

tinybrain-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

tinybrain-1.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tinybrain-1.2.2-cp38-cp38-macosx_11_0_universal2.whl (1.1 MB view details)

Uploaded CPython 3.8 macOS 11.0+ universal2 (ARM64, x86-64)

tinybrain-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl (784.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

tinybrain-1.2.2-cp37-cp37m-win_amd64.whl (638.1 kB view details)

Uploaded CPython 3.7m Windows x86-64

tinybrain-1.2.2-cp37-cp37m-win32.whl (600.2 kB view details)

Uploaded CPython 3.7m Windows x86

tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

tinybrain-1.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tinybrain-1.2.2-cp37-cp37m-macosx_10_9_x86_64.whl (773.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file tinybrain-1.2.2.tar.gz.

File metadata

  • Download URL: tinybrain-1.2.2.tar.gz
  • Upload date:
  • Size: 382.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2.tar.gz
Algorithm Hash digest
SHA256 4100957992e902380cbe2fd7bf9963e9fbf75b46dc14137797caad8d13e4359d
MD5 6d82c6f5ac58363eb694228cea5b66a4
BLAKE2b-256 aae9bd609eefb5d24ff4e3e56af26824b8af2ec005dae13fdf84617f14316a0f

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 652.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c4f9a80efce335a7b58388428224deb9fb44a2ec27308c1f4d737f058916528d
MD5 6374430947a1d37f79740b25e536bef1
BLAKE2b-256 86af65c7bc0d8bcf17b0dc6cd37fd86477ffdafac76b3dda61a0b5f023ff9982

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 605.2 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 1becbc6bfc3d52c1e48c6c86ed2787845a6ccc4dc50edf69f39ba243c3bb9078
MD5 11cca508447e3d816845050a64bfae4c
BLAKE2b-256 6dc2cee33e0a52645a3d8425c4e29e1dd40bc09585b26fc90af58d18a55efcd8

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f2868d0bffa10f0f61094874be26d7b8c5109bfb423fedcca88114f13a3652a
MD5 628670669d7df2b64f402f726dc9e54e
BLAKE2b-256 822ded5a7995f030f3cb1eea20768e602dd21e1367aac40f306e4bff36dad658

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fac1b8d530785cd20ee74ff0cf54a0488ee43526e47802c7e8379e1a01a8c049
MD5 5a7bb9d0ec690ffb60a622ccc7e88783
BLAKE2b-256 d467f163b28724be5184516a67c528a0fb8149816d756af29daeac20948e1d19

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4894989027e3c377f1a43847904582b41fc8e457f6807fb5042284741b584a28
MD5 59da979c4ddc2b07cb1f9ce878f3551f
BLAKE2b-256 2aa4ff8ad54d0469e708ca6f3f0a70379761ee762b988b76a9521f6d5cbcc8e3

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 795.1 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ba17610dc06a49673281ffdf4203bbf2cc0d8dddc771da6c70ec27f7dced1cd6
MD5 7fb74cc9445d547c2c894866f833a5f9
BLAKE2b-256 31219a5454fa0eb30bd0bb211751f7454fb2b1bb4ed9186c371d87626c2fdb76

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 34b159cb9e4ff680fcc8c16e7bf100d4235cfc7dd40156a79d5576691fd7b309
MD5 51602b821a9d1ca9fe680875860ee40b
BLAKE2b-256 cb4d841fe37464281aa755d6e8b62fb235669224c8ced09428b2fc34825820b3

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 652.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d7739b295368cf4b6bb56dc52da17f140e0a70eed6396248c6d7fef8f56cbc8b
MD5 4f6ec9240049c996e125f67d81eafa2c
BLAKE2b-256 b76e14224e6f48f1b08426290ab6fbb6fdff72099f39645a2952707ded81011c

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 605.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 2547d635d5a63ef602008ba858a8c3b3de0061f512a49a5a5ad2ebe47a52c83a
MD5 bd1d06e14e13c11c97530dd287c33f7d
BLAKE2b-256 acd486e68b478104e3d1e90d805208d08d0471728fb9287fbf40d2f8bb42fcc8

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01637c83d4e37b4036eb0d63a94a413008ae567f81bc380757829fe24baea29c
MD5 e1a0f6b41c148a2ed6c8f1e78200ad43
BLAKE2b-256 2ba1d299a11ba4ed1840d2677f4ad9b19fa583aa4445c679a32597f7d25e6487

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6c1b923cad0308b116794912bb19dcfeda00dd9132f1f66d9f3e49c764b366cd
MD5 f78187591845bc636ef2ee525bd38961
BLAKE2b-256 19f7a0699e08023c9e3bd9818f9ffdebba82baacb0d57d4899ac57067a7b75ec

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e646f5f997c76335ef83796f07b9c6a82a28d4c222b6008edaa2fc1b46a8a437
MD5 7c7bfd53632b40bb16c20416b2ff0938
BLAKE2b-256 71f138b7bba1290bcecc5c452fd5760ff752c06ce4f50a20192588bc71d3ec30

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 795.1 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dadffa04ba489c2336f7c57a5de4b36d5397d0b950f2b66c57ae7595ecb596df
MD5 50c92976295536a7dad9e0cb52c893f7
BLAKE2b-256 2d8d7719f3f5286a90102b0a6ebfb453f80999f2bb32aeebac321d23d584c7a7

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 282d4d5bb3eac3b35be55813cd7ae790173af66e3802461a5e4d65333c1f5f59
MD5 336608b734ae9a14e77b8d2bdf04e5ce
BLAKE2b-256 cae9041eb3c92609b5d92b67ee7ebe8de27a6ad451abe79342aa9adf1455735e

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 652.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b43a47f5365dc1e69d3b7df1b2182bae374d089baf1929e70c5cdc1cbaff7c84
MD5 a58b21b97c15bb869ca161439034261c
BLAKE2b-256 b9a7269233e11fed751105ee74186fb05d8025c0d7c65eae7201f58badd44bf7

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 603.5 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b96974926679b9aab7368f519a410e73acf41195101bc05a6d1595d3b1c4d0a7
MD5 4e8f0bc2c14317e36483ad2d642c9275
BLAKE2b-256 bebaa395a4f01e2642d1fbf9ac645806d835568592eaa8597d61dd46b68c4e54

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7437bac7e4b1e32375e236e42d22d8e1df7f8015f4990a31752949d879442887
MD5 a4eb968b80c2f7567fd6d3983333429e
BLAKE2b-256 de341eb7531494e30531b7273e482f09d883a3a2b66a92e7576b39f2315b6719

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 56cc7f09468f5298984b995357fc8c23850a1b0e1295c452003536279864dbde
MD5 92c37cba0e4c0eb848e66b8f18c2133e
BLAKE2b-256 5bf3000c6594043f5c4bcbeb10ac09bce735a8459d140178936a250a52d3bab0

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 452d8e3457bbbb39d70f2d9550f11e8dea9c73abc7cc5712afd3765eed388d47
MD5 eb37968e9e6302d7cd566a88d11f4be8
BLAKE2b-256 7cdc4d1624df029a1745775014685f9a0f364650cec9c2693431c1e37f3bd584

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-macosx_11_0_universal2.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp38-cp38-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, macOS 11.0+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 882a721a6e92133fb32186be1e97a3ad5aa07ace5fe51dd1214cd4cb3acc74ed
MD5 0308600e6abf5e9716bb2c8ecfde4c86
BLAKE2b-256 8a0b8cb006e4d066be200c01f4c50002a119e7c009fd5d2b3a66ebf54b185d21

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 784.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4771e9e9188e40dc8cab064d2d23d95ec936d76f5f7b57e2a922624ded6e365a
MD5 4dc68ca5faf50c3bd51da41becc7ff4e
BLAKE2b-256 a1aac800dd7bd05eb5234885fc4b57499a34029974df0a83ac5ec57348312e8b

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 638.1 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4b5556084ea0f6ce7f45780007b1056abb6a930434d366b2ad618fd289d4aea6
MD5 1012332de9c2573ab3bd54de4f0e0446
BLAKE2b-256 4f10e0e1bbec200ea0f142edf2667aafe675065ac9dcfe75d486a2417b622398

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 600.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 300842011ab31484fdd50d3540512c80e550f85d49a60fd1a751dbad71a6bfb6
MD5 5aa0dd6fcb2a2548d2a72bb319eace56
BLAKE2b-256 4700eaaf7669026dd58108fcb74e2680dbfc61ac82f3bd6d8d2b832b2613e257

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0068baf5528760fd89be20808afe577ce0368ae8fe88ce585c6635fddd7970f4
MD5 afc40eb001db00d2537353dc11a60d3b
BLAKE2b-256 5c8768b36f7f4f1e23a0d41d44cbf1c2e015a929dbbdda1953f24940cdbd460f

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bf7473eb7bc144918d6b6a6a2b69441bebb79d77d2829a131188a8dff362ae5
MD5 03e8dea8a42bf181a4f4fbf03874caab
BLAKE2b-256 0c71938175e64c7a42ef2a43999ab61d50dcbc1a0b584076c9e84a0644fdcf2d

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6a148583d9a1db5ad2d1cb28ba85cbc77c6489b07e40a677dfc9b51ef61fd2b8
MD5 e2fb9d4370398bf4a8bf3121187dcff1
BLAKE2b-256 e675c12a4e41ed5fbc6df7f02734475563db9ff0f75fde8327f2655962dd7c5b

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.2-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 773.4 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.2.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c58a39b7c2341496cc61a1a799d6bafd3ab5f98e6db58e4c02c4711526c1f1f1
MD5 96cf24392048eadac58f89e19d51945a
BLAKE2b-256 1f61ae217960a15621134cb8486b6b28c54469d60337e08459ef327ea48f9f08

See more details on using hashes here.

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