custom-cnn: Convolutional Neural Network Library from Scratch
A lightweight convolutional neural network library built entirely in NumPy and SciPy. This project implements forward and backward passes for all standard CNN components — convolution, pooling, transposed convolution, resampling, and more — without the use of high-level frameworks like PyTorch or TensorFlow.
Installation
pip install custom-cnn
Quick Start
import numpy as np
from mytorch.nn.Conv1d import Conv1d
from mytorch.nn.activation import ReLU
from mytorch.nn.loss import CrossEntropyLoss
from mytorch.flatten import Flatten
from mytorch.nn.linear import Linear
# Build a simple 1D CNN
conv = Conv1d(in_channels=3, out_channels=8, kernel_size=5, stride=1)
relu = ReLU()
flatten = Flatten()
fc = Linear(in_features=8 * 28, out_features=10)
criterion = CrossEntropyLoss()
# Forward pass
x = np.random.randn(4, 3, 32) # (batch=4, channels=3, width=32)
z = conv.forward(x)
z = relu.forward(z)
z = flatten.forward(z)
z = fc.forward(z)
# Compute loss and backprop
labels = np.eye(10)[np.array([0, 1, 2, 3])] # one-hot
loss = criterion.forward(z, labels)
grad = criterion.backward()
grad = fc.backward(grad)
grad = flatten.backward(grad)
grad = relu.backward(grad)
grad = conv.backward(grad)
Or use the pre-built CNN model:
from models.cnn import CNN
from mytorch.nn.activation import ReLU
from mytorch.nn.loss import CrossEntropyLoss
model = CNN(
input_width=32,
num_input_channels=3,
num_channels=[8, 16, 32],
kernel_sizes=[5, 3, 3],
strides=[1, 1, 1],
num_linear_neurons=10,
activations=[ReLU(), ReLU(), ReLU()],
conv_weight_init_fn=None,
bias_init_fn=None,
linear_weight_init_fn=None,
criterion=CrossEntropyLoss(),
lr=0.01,
)
# Single training step
output = model.forward(x)
model.backward(labels)
model.step()
Key Features
- Convolution Layers: Conv1d and Conv2d with arbitrary stride, implemented as stride-1 convolution followed by downsampling. Full cross-correlation forward and flipped-kernel backward passes.
- Transposed Convolution: ConvTranspose1d and ConvTranspose2d for learnable upsampling, implemented as upsample-then-convolve — the mathematical transpose of strided convolution.
- Pooling: MaxPool2d and MeanPool2d with both stride-1 and arbitrary-stride variants. Max pooling routes gradients to argmax positions; mean pooling distributes gradients uniformly.
- Resampling: Upsample1d/2d (zero-insertion) and Downsample1d/2d (strided selection), with transpose-pair backward passes.
- Activations: Seven activation functions — Identity, Sigmoid, Tanh, ReLU, GELU, Swish (with learnable beta), and Softmax — each with hand-derived derivatives.
- Loss Functions: MSELoss and CrossEntropyLoss with numerically stable Softmax integration using the max-subtraction method to prevent floating-point overflow.
- Pre-built Architectures: Configurable CNN classifier, MLP, and scanning MLP models (simple and distributed weight-sharing) demonstrating the convolution-as-scanning equivalence.
Technical Highlights
1. Vectorized Backpropagation
Every layer implements its own forward() and backward() pass. Gradients are calculated using vectorized matrix operations, with no autograd or computation graph. This makes the math behind backpropagation explicit and inspectable.
2. Strided Convolution via Decomposition
Strided convolution is decomposed into stride-1 convolution + downsampling. This simplifies the backward pass: upsample the gradient, then apply the stride-1 backward. The same principle applies to transposed convolution (upsample + convolve).
3. Numerical Stability
The CrossEntropyLoss implementation subtracts the row-wise maximum before exponentiation, preventing floating-point overflow in the softmax computation. The combined softmax + cross-entropy gradient simplifies to (softmax - labels) / N.
4. Cython-Compiled Distribution
Published on PyPI as pre-compiled binary wheels (.so/.pyd) using Cython. No Python source code is included in the distributed package. Wheels are built for Python 3.9–3.13 on Linux, macOS, and Windows via GitHub Actions and cibuildwheel.
Layers
Convolution
| Class | Description |
|---|---|
Conv1d_stride1 |
1D convolution with stride 1 |
Conv1d |
1D convolution with arbitrary stride |
Conv2d_stride1 |
2D convolution with stride 1 |
Conv2d |
2D convolution with arbitrary stride |
ConvTranspose1d |
1D transposed (deconv) with upsampling |
ConvTranspose2d |
2D transposed (deconv) with upsampling |
Pooling
| Class | Description |
|---|---|
MaxPool2d_stride1 |
2D max pooling with stride 1 |
MaxPool2d |
2D max pooling with arbitrary stride |
MeanPool2d_stride1 |
2D mean pooling with stride 1 |
MeanPool2d |
2D mean pooling with arbitrary stride |
Resampling
| Class | Description |
|---|---|
Upsample1d |
1D upsampling (zero-insert) |
Downsample1d |
1D downsampling (strided select) |
Upsample2d |
2D upsampling |
Downsample2d |
2D downsampling |
Core
| Class | Description |
|---|---|
Linear |
Fully-connected layer |
Flatten |
Reshape (batch, C, W) to (batch, C*W) |
Activations
| Class | Description |
|---|---|
Identity |
Pass-through (no-op) |
Sigmoid |
Logistic sigmoid |
Tanh |
Hyperbolic tangent |
ReLU |
Rectified linear unit |
GELU |
Gaussian error linear unit |
Swish |
Swish/SiLU with learnable beta |
Softmax |
Softmax normalization |
Loss Functions
| Class | Description |
|---|---|
MSELoss |
Mean squared error |
CrossEntropyLoss |
Softmax + cross-entropy |
Models
| Class | Description |
|---|---|
CNN |
Configurable Conv1d network with linear head |
MLP |
Multi-layer perceptron with ReLU activations |
CNN_SimpleScanningMLP |
Conv1d network equivalent to a scanning MLP |
CNN_DistributedScanningMLP |
Conv1d network with weight-shared scanning |
Project Structure
custom-cnn/
├── mytorch/
│ ├── nn/
│ │ ├── Conv1d.py # 1D convolution (stride-1 and strided)
│ │ ├── Conv2d.py # 2D convolution (stride-1 and strided)
│ │ ├── ConvTranspose.py # Transposed convolution (1D & 2D)
│ │ ├── pool.py # Max & mean pooling (2D)
│ │ ├── resampling.py # Up/downsampling (1D & 2D)
│ │ ├── linear.py # Fully-connected layer
│ │ ├── activation.py # 7 activation functions
│ │ └── loss.py # MSE & cross-entropy loss
│ └── flatten.py # Flatten layer
├── models/
│ ├── cnn.py # CNN classifier
│ ├── mlp.py # Multi-layer perceptron
│ └── mlp_scan.py # Scanning MLP (simple & distributed)
├── sandbox/ # Example/test scripts for each layer
├── pyproject.toml # Package metadata & build config
└── setup.py # Cython compilation setup
Requirements
- Python >= 3.9
- NumPy >= 2.2.6
- SciPy >= 1.15.3
License
All rights reserved.
Metadata
Release files for custom-cnn 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 37.5 MB
Release files / custom_cnn-0.1.1-cp313-cp313-win_amd64.whl
| Download URL | custom_cnn-0.1.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 461.1 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
456425d4d2c033577da4765abf72ff4df8e2fad2d657f86c234469d37cc8b412
|
|
BLAKE2b-256 checksum How to use checksums |
e96d1aa7afa45a33ad065451cec77ddb880346253cd395ebe7c4a3936430b5bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | custom_cnn-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
172c3919e004b67d3e3ba9936b7ab882ec6285a6fb7eff06b56765b55845c56c
|
|
BLAKE2b-256 checksum How to use checksums |
ee602a2b2e7a14c5d54dad50c5c40acdafc8f023088096d55b9e30e72dbc1b44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
fd3cbeb08afeeeace2643176fb9aebf7304ea4fc537fd0ffbe89d78649f410b9
|
|
BLAKE2b-256 checksum How to use checksums |
ab8dc2d647896d85be1b567dd5fefcd78d164d945877e052eba652186f6442f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | custom_cnn-0.1.1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 489.0 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1114400d56c8ab8b693f2ed6bf283673953d70408e1d00086727d5bd8e8a44b5
|
|
BLAKE2b-256 checksum How to use checksums |
0586d71e718afac111c3e5386ae69b608eb83b6e824a6cad671b89c0dfd8433a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 488.0 kB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
9606f266892b8949dae77be0ac230031d8697c2e4fcf31fd7d379ae69e8c3c2a
|
|
BLAKE2b-256 checksum How to use checksums |
8b8ecdfa10682788fc67bbfc8e1aeb087e8c082257137c48b3df41b7deb7cde1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp312-cp312-win_amd64.whl
| Download URL | custom_cnn-0.1.1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 470.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
06fa1022112c565727a71fbabffeb8c2bdef07eba86255f26ef4a0318fc52ba8
|
|
BLAKE2b-256 checksum How to use checksums |
5c57c44910c24e3529ce3638ab2be91ac3d5a830b596a7080e848b34909595be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | custom_cnn-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
6aec1b604da38d74138aeb654ff40ade848c9d100246dc7b1c6ec1a365ede87d
|
|
BLAKE2b-256 checksum How to use checksums |
c33abf993fd45bfa296b8566378fddd58beee07b1ebe3230cfe2a4ad628162f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
82601c455da350f6aab34210f12baad52036af4dd8934d9784b8d6121c5e37fd
|
|
BLAKE2b-256 checksum How to use checksums |
5c3630ad3fa2cf2f7c6fd6d54beb9c50a841cb18a68e77fba712ded6e1929e55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | custom_cnn-0.1.1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 498.2 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ca215b190e08d9d3730ab0329a602e6f76971651e522420696170c05bdf184df
|
|
BLAKE2b-256 checksum How to use checksums |
3fbc0257e6062479ea6f440d322d15066db9c1d869ee9db237c38f02a54eb9ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 497.4 kB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
0c433257463f1add254e8d30bb172173fa53a0af632fedf10c4f995ee1129fd6
|
|
BLAKE2b-256 checksum How to use checksums |
123a07861905f70fb2e68a33cb5bf027baac1163be6b29a751451063d6f8cdca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp311-cp311-win_amd64.whl
| Download URL | custom_cnn-0.1.1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 473.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
74320eaa14e61a21db55f7e2a018ba64520c5a090eb1bb1eff8512f94382cc14
|
|
BLAKE2b-256 checksum How to use checksums |
2489b90f1f423e4a2f5889d7d4ce51aed8c985cf73d15bff5777cf43a8bff480
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | custom_cnn-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
d40acd7e675d08293e9fd381fa2c7ad23a93c0fac117bb0bc51e15bda66e8f8a
|
|
BLAKE2b-256 checksum How to use checksums |
ba9cf270c6724a03040cfc7ce0a7406f8df4a55c34e6dfa38cce5f5c2462e060
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
819db41140a24878ec51e3b25bcbb49de1d7f6fa413c2c90be14b4f7aa03b02a
|
|
BLAKE2b-256 checksum How to use checksums |
c38ae8beebb41537d79fd35e6c46cb4ed9b0fcc255b45b20dd747444cf5ef5cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | custom_cnn-0.1.1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 494.8 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
34ac6146b30019c98b09c75d2ac1b760c636da506019635380a7396d4cdffd60
|
|
BLAKE2b-256 checksum How to use checksums |
64e65093dfe7679a7c2d188f36f1de1889e33267c4490998d4f7e5391c4d4886
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 498.5 kB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
04404526ebc29e2a1ef308835fd7f861d0ec17363683c25fa93d80909951da55
|
|
BLAKE2b-256 checksum How to use checksums |
7c384bfcef12bd15be2b24396b5359688a5d511cc4652b1a0e34afdf53fb0828
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp310-cp310-win_amd64.whl
| Download URL | custom_cnn-0.1.1-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 473.3 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
482fdb9acb29d231b43d8781f626a703aa6f41dba673800a247208d6a043979e
|
|
BLAKE2b-256 checksum How to use checksums |
76e8010ed323efcb535196528335a8d818c94dce58eef297a152032e7eefe637
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | custom_cnn-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
73cf491c176f1dd091d63550ab0864b5c19a0579a7858000d7518d4fdc1ac415
|
|
BLAKE2b-256 checksum How to use checksums |
9df5c33f9acd07f0ce0c31891968773ca5ca77b0844701bef3aeab852e413795
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
e0a1f5b75ec3dbfedfb8d980937deab026a41133df89f3d6d40a87b09f9a9ed8
|
|
BLAKE2b-256 checksum How to use checksums |
0eb54415296d0ad09cc43048fd33efb7555c4ba4659ab2d3868b63ca49d2fd26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | custom_cnn-0.1.1-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 498.2 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0be5de55f9866a879f30e03529622257b255957afb8bd8bb06d33a83c2afb132
|
|
BLAKE2b-256 checksum How to use checksums |
977fd216f279a06c865c174b7249a3db1fc65d04d54bc2205ad9e7096953419e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 502.3 kB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
06a307588230f894b16eb58a8ceefd2cf820e3fce7993f4ad5eaab67da338b7e
|
|
BLAKE2b-256 checksum How to use checksums |
288d72cf7a4e0e20a833aef055d89f2b47a3bfc5a75777557c6f44644d01a4ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp39-cp39-win_amd64.whl
| Download URL | custom_cnn-0.1.1-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 475.0 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b0723fb531e57c6c2695c0bae236f3264f1ee6f01b179c3bad76650d8d710277
|
|
BLAKE2b-256 checksum How to use checksums |
91c528fd4976eb4164e39e717b8011fb7eddee90f831fbe13f3ccbd4029d920b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | custom_cnn-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
aab7d3114eb28f5528e9c174822df36e83b1ef7a0c570e0a029dfe7d806b6263
|
|
BLAKE2b-256 checksum How to use checksums |
3f4f3f73544b638d7491cadffc1cde095fba5196dee53ca31bb7513c29137942
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
5e4afa9a9fbe8dca7827bc562645c453db3659e3c8fcce5a57d1a0e623f37cfa
|
|
BLAKE2b-256 checksum How to use checksums |
58270d95cdd42251574b5f6758a1e641e6001461170f83d03c37247098371166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | custom_cnn-0.1.1-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 500.4 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4abfe30a4a8a5da49f9739345e27f26f8fab7dc784a4562b9d7fa7b8ffb15e78
|
|
BLAKE2b-256 checksum How to use checksums |
9f35af4fa34db6b82d385545420c1d8aad77509bef9d37e7c9f28bab00751826
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency logRelease files / custom_cnn-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
| Download URL | custom_cnn-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl |
|---|---|
| Size | 504.5 kB |
| Tags | CPython 3.9 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
073b2071afe534fb081857e6b45061ebd0399bc2bbeba634ae3b85d78d3e2ea3
|
|
BLAKE2b-256 checksum How to use checksums |
abbc8b9716d83d203865936c64e71a8a2fda1361ea3bb4dcf876091ce9f2c24e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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 Feb 10, 2026.
Transparency log