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.1.tar.gz (383.1 kB view details)

Uploaded Source

Built Distributions

tinybrain-1.2.1-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.1-cp39-cp39-manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.9

tinybrain-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl (769.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

tinybrain-1.2.1-cp38-cp38-win_amd64.whl (644.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

tinybrain-1.2.1-cp38-cp38-win32.whl (594.9 kB view details)

Uploaded CPython 3.8 Windows x86

tinybrain-1.2.1-cp38-cp38-manylinux2014_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.8

tinybrain-1.2.1-cp38-cp38-manylinux2010_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

tinybrain-1.2.1-cp38-cp38-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.8

tinybrain-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl (756.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

tinybrain-1.2.1-cp37-cp37m-win_amd64.whl (625.5 kB view details)

Uploaded CPython 3.7m Windows x86-64

tinybrain-1.2.1-cp37-cp37m-win32.whl (589.5 kB view details)

Uploaded CPython 3.7m Windows x86

tinybrain-1.2.1-cp37-cp37m-manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.7m

tinybrain-1.2.1-cp37-cp37m-manylinux2010_x86_64.whl (2.1 MB view details)

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

tinybrain-1.2.1-cp37-cp37m-manylinux1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.7m

tinybrain-1.2.1-cp36-cp36m-win_amd64.whl (625.6 kB view details)

Uploaded CPython 3.6m Windows x86-64

tinybrain-1.2.1-cp36-cp36m-win32.whl (589.4 kB view details)

Uploaded CPython 3.6m Windows x86

tinybrain-1.2.1-cp36-cp36m-manylinux2014_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.6m

tinybrain-1.2.1-cp36-cp36m-manylinux2010_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

tinybrain-1.2.1-cp36-cp36m-manylinux1_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.6m

File details

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

File metadata

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

File hashes

Hashes for tinybrain-1.2.1.tar.gz
Algorithm Hash digest
SHA256 2fdf2e84c6cfbe8b1372731bc1dcd5f343e645edc15a3da1c05dd3b01a837764
MD5 c695fef7dff873c77f62a12e6ff88d26
BLAKE2b-256 222495a995bc8de908696d9e1d9f45c886592040ad66cb4cfa36bc2c1928b8b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-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.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b959ce1ef2d3cf98d71f3c0684482df6a66f77d0fb2c0d8b38028d7739dd0447
MD5 4ee6c6df70dd65bd23804d3a0d0499e8
BLAKE2b-256 e76c7877e9dd63cce7909e53f3201906011de93875ca50de33b5d139cd7e311a

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 925452b54b85f88b3bd618d7b3f4c4bf31107247b2cec038a4b2c836961db806
MD5 8d72d469e5206778801e1f0c5a3e4cdc
BLAKE2b-256 c0503b8e3cb958c129dff385c39dbc7565dfcbc03e2d75a6def6611fcbc89c74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 769.7 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20723edc4b57ab0ee4f4e110035b94d97acfa4024326ddacab7b9e69cb8f2633
MD5 276db3df7ec24415445f51d196feeb58
BLAKE2b-256 46ea596931dfd723606c16ffd0b33e62482f7cbbf0c2d2d06d45b8462a913251

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 644.8 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c061a4777c972e664338d2bfdf8f52739a2c1db2bd127a0c37d2202767d07318
MD5 0319c651360a1c5b23dd561e3eccb253
BLAKE2b-256 3961386c477785c61e2beaa68216eee15a80d259cc9db3b696efd0110b4031ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 594.9 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 5e0f1c32e9524a28b8eb1d6b84b49ff11ad19f3bae617a0d66b3fe8367bf9309
MD5 d8f13bc319fa331927e1849dc00dc3ca
BLAKE2b-256 72039e5d0950277dd8f4e0497d2150fb5f578e805aa3ceff9b7ec47bcede7897

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af86855b943ab583e700dae84ce86ab02f2751c56b05bce6e49c538d58476a10
MD5 53ba723a62b789ddb50cfe2dc3196ad2
BLAKE2b-256 2a09d107373210ba30294375d2f3485f7d6e399d7615352305b6ee9a17bc8c51

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9b9578cf17f95ded62bb761fb2780608e1ec04a1865f74b8839293a5563adbc0
MD5 2fc71abe2b491077a9abca3e72b04f45
BLAKE2b-256 0bdd2c44d389481dcdbe55f2405cf5b8ad0997207f44e465f865bcffa5d7c75b

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8ddb79e2aa38ca8b5361f89ae891fbcc019d619193b7fb3ccd8132b54c628eec
MD5 d23a902a4bc52eca99e939999f03963f
BLAKE2b-256 72b70909c2f768404cb50d0789b4b8c926e02cfd8bfe96ec14f04dc247998ffd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 756.1 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2540284d9de6b05bf81cf18ad8dba8826d8b28cff703c71dfb7c62cef9ef6064
MD5 e4c7de6d0d1acb59d4c45283bd8024f0
BLAKE2b-256 8a18dc40e1cf7963b8a27f3602a0f22c5bc1eb7448d03ffd58832f9f9634086e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 625.5 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1f55acaff84cc8fb0d88acc416e3ac563d6ad8d807b70f66900287a7591e03a4
MD5 b027e455d8c1ab5c4a866c00cfa49f0e
BLAKE2b-256 3784999f9103ff50266ad4ab014fe440ba60d10d5af2c6ac181d8fc7bbe160fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.2.1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 589.5 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/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 0c2f70cfc9214fed87443663839e7e897c2963002048f5a3c1d78065c57b2134
MD5 f31cdc4da90004caa627df49d76cb9be
BLAKE2b-256 0ca8b15cd41ff2adf7e5b228fd699511dc28809a3f953e5ec45e3af8d9e276ba

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f58d936f318744bfc83cb6da314612e0741fe4c43eb68fd942a019af48ee2bf9
MD5 69377686578973ccf0b23d1061761407
BLAKE2b-256 2ec38267de620d4acbb18d3819b58356e80aaa7bef9c1a5d428c7030de3d518e

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d9515a16d5ceaab0d983032d09687ace8c6d5c5974cd69146553ca42166beb43
MD5 4f323a5a406658976472c9666ce25895
BLAKE2b-256 674223fcf847364c0a36ac241a3322f1403f96f58117a9610ff4ba748299e292

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ad2cad4b86d21057b02aa9c45618c917ae3d6527da3b29ab286a5406e0bd1514
MD5 525ac097ef8893cb44f4681dab3291dd
BLAKE2b-256 36e1e0e7f96a6ec1646f34d77bd59333c3595c921f7a506380516b29ab5dbffb

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 625.6 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 632af1c22b55c1c38561ca0fad28d2789cb2fdf69ee2c5af060c334ceac23cd2
MD5 5aa8b5c761b01aca7c9aa9231edb37a1
BLAKE2b-256 ca399b29e1c68f2835d8eb55108340e94e3c8906d30a33ec28b4027965359f7c

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp36-cp36m-win32.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 589.4 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 021a8d09f241b51034c53efa13f4c87e496bde029f1e330f995e6b76c9663952
MD5 f66cc0299bafb36928953dc3867c01a4
BLAKE2b-256 256030242761f6e264a47922483d7d6eaa68657af0a5680e60fe0750cdea6deb

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afee9817e5c5e94e2c9717c49a9e1ea9150a436533aca83816851fdf7b632dc1
MD5 78615a40e0745861f785bbf1c88fa62b
BLAKE2b-256 fcdc23febc8aec0a422f26e3dfb83b73212a8a110cde935d68ace19d0abab4f8

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 30d94f1990ea2b2b614c8345338f2295b0e54df7e73a64d194b68a1cc5dbf89c
MD5 c35106ce079deb627d7049199b9de8b9
BLAKE2b-256 cfc2bbaedc346cbfb2153fc210aff25981406e6e75a6420131d7a6c0d06109a8

See more details on using hashes here.

File details

Details for the file tinybrain-1.2.1-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.2.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.21.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.8

File hashes

Hashes for tinybrain-1.2.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6409038bda2aa565533cff3c0ec31683bb9e934c5c22b0d080955d1a8541f981
MD5 f492a52c08775130a5ac8ac6bf3de3df
BLAKE2b-256 34bd67a8f799ac899c0012fcc9d10645b2cb4f6dc640c49bb929427b40ef6cf2

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