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

Here's the output from perf.py on an Apple Silicon 2021 Macbook Pro M1. Note that the image used was a random 2048x2048x64 array that was a uint8 for average pooling and a uint64 for mode pooling to represent real use cases more fairly. In the table, read it as 2D or 3D downsamples, generating a single or multiple mip levels, with sparse mode enabled or disabled. The speed values are in megavoxels per a second and are the mean of ten runs.

dwnsmpl mips sparse AVG (MVx/sec) MODE (MVx/sec)
2x2 1 N 3856.07 1057.87
2x2 2 N 2685.80 1062.69
2x2 1 Y N/A 129.64
2x2 2 Y N/A 81.62
2x2x2 1 N 4468.55 336.85
2x2x2 2 N 2867.80 298.45
2x2x2 1 Y 1389.47 337.87
2x2x2 2 Y 1259.58 293.84

As the downsampling code's performance is data dependent due to branching, I also used connectomics.npy (5123 uint32 extended to uint64) to see how that affected performance. This data comes from mouse visual cortex and has many equal adjacent voxels. In this volume, the 2x2x2 non-sparse mode is much faster as the "instant" majority detection can skip examining half the voxels in many cases.

dwnsmpl mips sparse MODE (MVx/sec)
2x2 1 N 1078.09
2x2 2 N 1030.90
2x2 1 Y 146.15
2x2 2 Y 69.25
2x2x2 1 N 1966.74
2x2x2 2 N 1790.60
2x2x2 1 Y 2041.96
2x2x2 2 Y 1758.42

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

Uploaded Source

Built Distributions

tinybrain-1.3.3-cp311-cp311-win_amd64.whl (321.2 kB view details)

Uploaded CPython 3.11Windows x86-64

tinybrain-1.3.3-cp311-cp311-win32.whl (259.6 kB view details)

Uploaded CPython 3.11Windows x86

tinybrain-1.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tinybrain-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

tinybrain-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

tinybrain-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl (552.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tinybrain-1.3.3-cp311-cp311-macosx_10_9_universal2.whl (934.2 kB view details)

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

tinybrain-1.3.3-cp310-cp310-win_amd64.whl (321.0 kB view details)

Uploaded CPython 3.10Windows x86-64

tinybrain-1.3.3-cp310-cp310-win32.whl (267.6 kB view details)

Uploaded CPython 3.10Windows x86

tinybrain-1.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

tinybrain-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

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

tinybrain-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl (560.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tinybrain-1.3.3-cp310-cp310-macosx_10_9_universal2.whl (1.3 MB view details)

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

tinybrain-1.3.3-cp39-cp39-win_amd64.whl (325.3 kB view details)

Uploaded CPython 3.9Windows x86-64

tinybrain-1.3.3-cp39-cp39-win32.whl (271.2 kB view details)

Uploaded CPython 3.9Windows x86

tinybrain-1.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

tinybrain-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

tinybrain-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.6 MB view details)

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

tinybrain-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl (567.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

tinybrain-1.3.3-cp39-cp39-macosx_10_9_universal2.whl (1.3 MB view details)

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

tinybrain-1.3.3-cp38-cp38-win_amd64.whl (329.6 kB view details)

Uploaded CPython 3.8Windows x86-64

tinybrain-1.3.3-cp38-cp38-win32.whl (274.6 kB view details)

Uploaded CPython 3.8Windows x86

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

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

tinybrain-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

tinybrain-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

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

tinybrain-1.3.3-cp38-cp38-macosx_11_0_universal2.whl (1.3 MB view details)

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

tinybrain-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl (555.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

tinybrain-1.3.3-cp37-cp37m-win_amd64.whl (303.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

tinybrain-1.3.3-cp37-cp37m-win32.whl (260.8 kB view details)

Uploaded CPython 3.7mWindows x86

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

tinybrain-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (2.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

tinybrain-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl (537.8 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: tinybrain-1.3.3.tar.gz
  • Upload date:
  • Size: 41.7 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.3.3.tar.gz
Algorithm Hash digest
SHA256 d4ebf3c32b0666a4ea4662fd5cb367f865e69b99797d35c07692fecbcbea619e
MD5 d8405458b60309908f63e0979b9803db
BLAKE2b-256 1baa61077d4faf22ee795c228fd04da4a6060c382849ff410880976f3f1909b5

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: tinybrain-1.3.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 321.2 kB
  • Tags: CPython 3.11, 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.3.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e81f8a65cf5c03b844fc4ad79d862b5c9b52d48d52809ece3f0187347e8d8aa1
MD5 c2ff516954cbfe8641590d966fac0c3c
BLAKE2b-256 fb05addb65c023969cf9cb4f007d9792509d6ce082d5460cc227e19b6967fa6d

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-win32.whl.

File metadata

  • Download URL: tinybrain-1.3.3-cp311-cp311-win32.whl
  • Upload date:
  • Size: 259.6 kB
  • Tags: CPython 3.11, 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.3.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ff47c9c7341826f8d7df2ededcac2ab687fe5275dc1c4ffe5eb545da5bef819d
MD5 7a47bb9656081351ea35e7d63736ae2c
BLAKE2b-256 f01866497b3d022908f75fea08db6b89bd611e68074da451c42146e7b22557d6

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b470f91816f7c59be82b54cd093335fa4aab0d5f4daed6a087653d2b606b4f8
MD5 d27444cf9570ace3cca115ebf8b95537
BLAKE2b-256 b6108262483ade334d62952bb7e0c59f81825d958cebb64bddd7b09cfa6d8812

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8e220df0ccb960b7d1fd602e0b5ca915911a03acac73f636730557b0942234f
MD5 7e1307f1724cfa12ccc5167276b4b6e7
BLAKE2b-256 330a4c8812eda33f60b3e3cee5963e4c924a5228525b234a4a1fa7644558b5bb

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 09b5c65220650dd4b525c504c2bcf2a140a4b2ce29e89c953dcdeab7d478288b
MD5 2d31a045fdff2144f578adb72b6cf816
BLAKE2b-256 e5bd95e53376e5d96fd884173947d7f37bc5e831ec2f966157eefda2cad8ed84

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: tinybrain-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 552.6 kB
  • Tags: CPython 3.11, 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.3.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1a78c1448c275035bf5cf70f542aa5b4b75eb05b2521f72c2bcfeb79855cc054
MD5 aae946f5fb074059a64acb1f14d740d1
BLAKE2b-256 1e63ca2cdc45963f862155ece21dc59722700b9127a8900e4cf296761f2122c8

See more details on using hashes here.

File details

Details for the file tinybrain-1.3.3-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

  • Download URL: tinybrain-1.3.3-cp311-cp311-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 934.2 kB
  • Tags: CPython 3.11, 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.3.3-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3d5f498084369899f1528ef3c206fed7c80f7bd436ab330da1f41a251274c925
MD5 b4b092cd646a49f91acaf42b4072d0fd
BLAKE2b-256 1c43f4302f095382b66b78f57b614607467173792208f64a328c50d6912796e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 321.0 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.3.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9171a7248d0301f368f8982f5bd2352169a38b00830f1e726997c561d8f2f1c8
MD5 90783741b68096b17da0d5dc1dc5a0bd
BLAKE2b-256 37fcc719fa279b1318a74d362f250af297eb439a67bf677d5286fb68f2ad6194

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 267.6 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.3.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 da05ab0debe682c36fc88dbbb519fff55decd3d0edfad9b6f952ea1e45d2e496
MD5 ff2e116d66a43dfc4a7a27886aae81be
BLAKE2b-256 cf8d56c0b408d45687edc8b55fa9def1d5db309dba250c1bc7cb0b21d3b6510b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fffff34da3ce1a8cf01fac41eab460d74b30bc7c41125b979d8bebf693cde0f
MD5 f8cad0a8981318bfd523ea69378e30e1
BLAKE2b-256 b79f5cd6bfc75c3a01a3aeb2fb0585eeb388ff99c5ed13c91ca515ab01da2f2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24a4499d5e8cb101d2d0a664c4b1eb6da8c5c10998144b8ad3d2f7b310462cfe
MD5 72699c4dc01076dcedaaee55ab0d792c
BLAKE2b-256 21e7f64544f62f970b2e3b5e407a3d8ce643805199cf4778179300953b5e4152

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 010e7617877e91bac5b28cfe71a065e669187427dcb752cbfb8048f97f69efa3
MD5 34e2c6cbe0c4afa23b0b0bb9632089ac
BLAKE2b-256 b21813bbc3fbced0b334f5c9440edf37969edd5c00e2222d4acc00b7a08bc23c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 560.5 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.3.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ed24e19d8a321ea99753c00e375b94eef19e2e97995dfc38e85f6231bb291955
MD5 27db646059eac609dd0e54a28fa2bce4
BLAKE2b-256 37f7309613e225c664ab40eb9e67e8f7e7b419a5d18050c56b367cc564b2ac45

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 1.3 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.3.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e8b5f6b44e692f59410c15b714096deff3f73babf283b7a74d1502eecc8bb92d
MD5 6b497bc5f19314a24a4b78f8940cfe10
BLAKE2b-256 7b2b53360addb5f6ed86d8413e3ac1bab4a8d9530d8de5fa2fafb5f131a71bab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 325.3 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.3.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bdc3479a9e13283310320e3b7df28ffdc89ae27747a3612e97c6c49970ea875c
MD5 0b1a1107d83c39fd554b21b368f47ddb
BLAKE2b-256 c451975981202e939789a6c07bae1ca6772e6242e51e5b83b18ea5d0808b53be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp39-cp39-win32.whl
  • Upload date:
  • Size: 271.2 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.3.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4d4e5966ca3c8cb0d3319c4bc73eb70484742d592938757e99356c007624e047
MD5 c68d40146121f9393307b3d15b95a5f7
BLAKE2b-256 82d0397177a7067df6cf5c6989a4b92d04171868b5a2ef819ad48f44096edc16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 835e63d8e294b622959a47a19f88dd9cabfcb690e86d9d169c81469b4212a065
MD5 b2fd3467481d048fd8abbf8e4a445b01
BLAKE2b-256 b3fade998393193e05992335017236fb07414630a70ef459c717f3933ff7888f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a6fe0905d1324d3e3ccbcc866238e4702a831b8fedcb34bb4ceb75986c87ee5f
MD5 0a621bffcab3b63e77af3cfa0d15edea
BLAKE2b-256 5f49e2155c2a3fffde82290af531ba9f17b64d3bd4ae8febc914a0ba543bc89c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3b3f17376abd830e7e4f0a1811af820e7719d237dcde5af76711f071b98e0791
MD5 991cddadf35bdcbbd7a96cd41c7682a4
BLAKE2b-256 f8fce8ff0c0b5260b74ee5214b59d9faaf855ad860e946b99a3fa7d4df41e34f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 567.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/56.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.8.10

File hashes

Hashes for tinybrain-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2ac8fe37b5543b585678f35c863a1acbf5beb9538ef4a83f29f45ab31e5f6ddd
MD5 fbf46398b2c59f99fc987d365b77bc97
BLAKE2b-256 2be5ca6ecb6e6c3913e78734e310190995c4d564bdfdd302b365200b9d76ba04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 1.3 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.3.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d0517b32734f0a217a55a56634b594eb78151ab47aa3d7db09890e06cc232696
MD5 796805c9c696bf2cf9d1630cd07de74a
BLAKE2b-256 d56842259e7bc532faba73c178c5759de7f52eaacb4434de9f91fd85cfd3a53c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 329.6 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.3.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f6835843604112fda9498aebe600f2c37af55a2e73428e7f6e61e9976f1fa793
MD5 6efa859898c85cbbc1bb7c1e5b0553c0
BLAKE2b-256 675cf1c5cfd2dda23d2a5a7bb6de9794403473a152269dd319b0d6279d0f7275

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp38-cp38-win32.whl
  • Upload date:
  • Size: 274.6 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.3.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 30d69978524a438aa2c0ad498ebb6427fb13a8f6017d3af1d1b056da48740b28
MD5 73aefceb63fdbca8d164474f9917cd27
BLAKE2b-256 d136c5aa1844a02e3e740eac64dd694c89fa196e832113718a0c11cdbda1ca25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bf7cb255ade4564ba9640b9ac4882db7bc882b7a8236585f464a8f94c759a38
MD5 650bf1172626039b72805fd10801a97b
BLAKE2b-256 7c0f558257ac47733ea0c445569064bd0b3f5ea2c952815fd9eaf6c60f7acbfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd6a511f012e2bbfcceee7e52ddd5ff4099c89a99799bb97aa634ff08cf37963
MD5 ce2efcfc07e4b69add95ff4e6300d9fc
BLAKE2b-256 0f198ec25b3efc4d573019a16d9fae3400273a4ca263a8b0b9f5500395598eac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 131a9922b4b525fd6a3364ba2c354d946d92f925408c91f59b3ffdea123f0cac
MD5 6701185770f9e11539ad5bae49f97246
BLAKE2b-256 4cd4b4bc1d7d8e05e424fbea4ef443061b75a9aa6ff7f6653581f5b3e807fcdd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp38-cp38-macosx_11_0_universal2.whl
  • Upload date:
  • Size: 1.3 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.3.3-cp38-cp38-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 e8e370c80c12b94515c12c8d4fd200ea061bc9d9f11febe322cab4ebecfd005f
MD5 779e5c005241213f22aa60815ee9126e
BLAKE2b-256 a0d4377af81ee9187d9716350cb7c9158200fc648c9ff8c68b5babc4892d3906

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 555.4 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.3.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e98d2f14683af32050c6e886415581e6363f1c821da3b9debce6b9c60c3889a0
MD5 9392679171148424a78f6e44fff1c402
BLAKE2b-256 a5060cc01e93940825299cc6796649984b21f309d5831b0113e2dc93cf35ccae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 303.6 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.3.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4d531f831c420e78bc2d2d659383679fbf29d2f02bf6346b92bf850843a5fa4d
MD5 b46637217ea8447120afd1367114778d
BLAKE2b-256 fc79be2a86c402a931258678a05cb345fc16f6735ca5d085f29651c39ae1b675

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 260.8 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.3.3-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 d1945c6daf1f9c0d6ad9d8e21762b85f588b6adb1a317fd3762da96b931d9826
MD5 ace124d591d70ab4ea98d78bf6e06819
BLAKE2b-256 79c35818be19b447b8236fa48f16a5bf45bf27ce2985459d9d928469a1aa4b8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2e488a0b5d612b014f92d06f25d496f907becce9e2244407f3d4e422ac7eadd
MD5 f7c3bfe95af6c89a43658f3778d8dc26
BLAKE2b-256 967d17261524bc3100839fd48ac53a1c2ae5697fba2537d72dcab3105ff36f02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 48d732c57abee2b2e0a192c787326ff7a35dc1b5966a2668407f57406a833a7e
MD5 95df218256851d0d589b2c4bb64b896a
BLAKE2b-256 bb702b47f332e4960317b2d1d9526baeec5685d21df0e85e6dc204efd2bf282a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tinybrain-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 332a7deabd10f871f6cc1440cd5a86a6735afe7a4ae54ca0729facaef77713a1
MD5 8d0143367cfa04c74da4e83f0d12a81b
BLAKE2b-256 5550417118b21648795e8d4d550748cb3d09676e9c6add5248b390343db3e9f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinybrain-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 537.8 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.3.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e791aabd27f3da40e1c26b3514b6e720e61124c047c5724b56b8fee3f4790a54
MD5 1e99cb524b5bf87d19213d0b070085aa
BLAKE2b-256 64240598af1ceccd8d2960c8bd9467cf64da206defac4466b9cb82723e0b8ead

See more details on using hashes here.

Supported by

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