tensorstudio 1.9.0__tar.gz → 1.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CHANGELOG.md +38 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CMakeLists.txt +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/PKG-INFO +64 -29
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/README.md +61 -28
- tensorstudio-1.11.0/benchmarks/results.md +347 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_matmul.md +13 -13
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/coverage.md +1 -1
- tensorstudio-1.11.0/docs/data/dataset-creation.md +91 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/datasets-and-dataloaders.md +29 -2
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/cpu-backend.md +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/index.md +24 -16
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/onnx.md +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/serialization.md +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/training.md +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/checkpoints.md +23 -6
- tensorstudio-1.11.0/docs/project/configs-and-templates.md +76 -0
- tensorstudio-1.11.0/docs/project/metrics.md +62 -0
- tensorstudio-1.11.0/docs/project/trainer-and-callbacks.md +91 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/workflows.md +32 -14
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/publishing.md +4 -4
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/versioning.md +2 -2
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/milestones.md +20 -3
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/priorities.md +1 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/roadmap.md +16 -16
- tensorstudio-1.11.0/docs/vision/dataset-creation.md +98 -0
- tensorstudio-1.11.0/docs/vision/detection.md +69 -0
- tensorstudio-1.11.0/docs/vision/models-and-visualization.md +47 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/vision/overview.md +33 -6
- tensorstudio-1.11.0/docs/vision/segmentation.md +55 -0
- tensorstudio-1.11.0/docs/vision/transforms.md +58 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/version.hpp +1 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/mkdocs.yml +8 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/pyproject.toml +6 -4
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/__init__.py +2 -1
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/_version.py +1 -1
- tensorstudio-1.11.0/python/tensorstudio/data/__init__.py +29 -0
- tensorstudio-1.11.0/python/tensorstudio/data/dataset.py +116 -0
- tensorstudio-1.11.0/python/tensorstudio/data/factories.py +82 -0
- tensorstudio-1.11.0/python/tensorstudio/data/splitting.py +35 -0
- tensorstudio-1.11.0/python/tensorstudio/metrics/__init__.py +25 -0
- tensorstudio-1.11.0/python/tensorstudio/metrics/classification.py +85 -0
- tensorstudio-1.11.0/python/tensorstudio/metrics/multilabel.py +46 -0
- tensorstudio-1.11.0/python/tensorstudio/metrics/regression.py +41 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/__init__.py +17 -1
- tensorstudio-1.11.0/python/tensorstudio/project/callbacks.py +158 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/checkpoint.py +40 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/config.py +33 -3
- tensorstudio-1.11.0/python/tensorstudio/project/seed.py +23 -0
- tensorstudio-1.11.0/python/tensorstudio/project/templates.py +79 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/trainer.py +34 -5
- tensorstudio-1.11.0/python/tensorstudio/vision/__init__.py +157 -0
- tensorstudio-1.11.0/python/tensorstudio/vision/datasets.py +226 -0
- tensorstudio-1.11.0/python/tensorstudio/vision/detection.py +230 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/models.py +122 -1
- tensorstudio-1.11.0/python/tensorstudio/vision/segmentation.py +172 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/transforms.py +487 -0
- tensorstudio-1.11.0/python/tensorstudio/vision/visualization.py +155 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_import.py +1 -1
- tensorstudio-1.11.0/tests/test_training_workflows.py +177 -0
- tensorstudio-1.11.0/tests/test_vision_depth.py +161 -0
- tensorstudio-1.9.0/benchmarks/results.md +0 -347
- tensorstudio-1.9.0/docs/vision/dataset-creation.md +0 -58
- tensorstudio-1.9.0/python/tensorstudio/data/__init__.py +0 -8
- tensorstudio-1.9.0/python/tensorstudio/data/dataset.py +0 -36
- tensorstudio-1.9.0/python/tensorstudio/vision/__init__.py +0 -76
- tensorstudio-1.9.0/python/tensorstudio/vision/datasets.py +0 -106
- tensorstudio-1.9.0/python/tensorstudio/vision/visualization.py +0 -65
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.gitattributes +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/ci.yml +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/publish-testpypi.yml +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/publish.yml +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/wheels.yml +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.gitignore +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.pre-commit-config.yaml +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CONTRIBUTING.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/LICENSE +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/SECURITY.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmark_all.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/__init__.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_activations.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_autograd.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_conv2d.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_elementwise.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_matmul.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_pooling.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_reductions.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_tensor_ops.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_training_loop.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/benchmark_report.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_conv2d.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_pooling.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_reductions.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_tensor_ops.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/thresholds.json +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/gradient-notes.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/overview.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/api-reference.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/broadcasting.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/math-and-statistics.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/native-cpp-core.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/tensors.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/dataloader-patterns.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/tensor-datasets.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/development/contributing.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/development/cpp-first.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/installation.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/quickstart.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/source-build.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/linux.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/macos.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/windows.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/model-formats.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/numpy-interop.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/trusted-serialization.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/initializers.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/losses-and-summary.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/modules.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/optimizers.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/overview.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/benchmarks.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/optimization.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/profiling.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/project-layout.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/checklist.md +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/basic_tensor_ops.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/export_onnx.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/image_folder_classification.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/linear_regression.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/project_training.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/save_load_model.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/tiny_mlp.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/vision_classifier.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/autograd.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/device.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/dtype.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/errors.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/module.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/ops.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/optim.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/perf.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/random.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/serialization.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/shape.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/storage.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/tensor.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/_C.pyi +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/autograd.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/data/dataloader.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/dtypes.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/errors.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/grad_mode.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/interchange/__init__.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/interchange/onnx.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/math.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/__init__.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/functional.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/init.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/losses.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/modules.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/summary.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/ops.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/__init__.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/adam.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/adamw.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/lr_scheduler.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/sgd.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/utils.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/performance.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/py.typed +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/serialization.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/tensor.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/typing.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/io.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/metrics.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_autograd.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_nn.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_ops.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_optim.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_tensor.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bindings.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bindings.hpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/autograd.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/device.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/dtype.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/errors.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/module.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/ops.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/optim.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/perf.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/random.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/serialization.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/shape.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/storage.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/tensor.cpp +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/test_all.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_autograd.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_autograd_hardening.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_benchmark_report.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_broadcasting.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_core_math_expansion.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_data.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_errors.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_indexing.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_interchange.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_nn.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_nn_building_blocks.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_numpy_interop.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_ops.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_optim.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_performance.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_project.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_serialization.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_tensor.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_views.py +0 -0
- {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_vision.py +0 -0
|
@@ -2,6 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.11.0 - 2026-07-07
|
|
6
|
+
|
|
7
|
+
- Completed the ordered Computer Vision Depth roadmap section as one release
|
|
8
|
+
batch.
|
|
9
|
+
- Added batch-aware resize/crop/normalize helpers plus color jitter, random
|
|
10
|
+
resized crop, random rotation, affine transforms, cutout, mixup, and CutMix.
|
|
11
|
+
- Added detection utilities for box areas, IoU variants, NMS, box
|
|
12
|
+
encode/decode, coordinate conversion, and anchor generation.
|
|
13
|
+
- Added segmentation helpers for mask IoU, one-hot conversion, masks-to-boxes,
|
|
14
|
+
nearest mask resize, and deterministic mask crops.
|
|
15
|
+
- Added `DetectionFolder` and `SegmentationFolder` datasets plus
|
|
16
|
+
`tensorstudio.data` factory aliases for detection and segmentation folders.
|
|
17
|
+
- Added `ResidualBlock`, `DepthwiseSeparableBlock`, `CompactUNet`, and
|
|
18
|
+
`make_unet()` vision model helpers using the native-backed neural-network
|
|
19
|
+
layer stack.
|
|
20
|
+
- Added prediction drawing, mask overlay, and feature-map grid visualization
|
|
21
|
+
helpers.
|
|
22
|
+
- Expanded vision tests and documentation for transforms, detection,
|
|
23
|
+
segmentation, model blocks, and visualization.
|
|
24
|
+
|
|
25
|
+
## 1.10.0 - 2026-07-07
|
|
26
|
+
|
|
27
|
+
- Completed the ordered Training And Project Workflows roadmap section as one
|
|
28
|
+
release batch.
|
|
29
|
+
- Added `ArrayDataset`, tensor/array/image-folder dataset factories,
|
|
30
|
+
deterministic train/validation splitting, and dataset metadata summaries.
|
|
31
|
+
- Added `tensorstudio.metrics` with regression, classification, and multilabel
|
|
32
|
+
metrics for small supervised workflows.
|
|
33
|
+
- Added trainer validation loops, scheduler stepping, callback context support,
|
|
34
|
+
learning-rate logging, CSV logging, checkpoint callbacks, and early stopping.
|
|
35
|
+
- Added JSON, TOML, and YAML project config loading plus deterministic seeding
|
|
36
|
+
across TensorStudio, NumPy, and Python random.
|
|
37
|
+
- Expanded full checkpoints with scheduler and epoch state and added
|
|
38
|
+
`resume_checkpoint()` for continuing training runs.
|
|
39
|
+
- Added generated regression, classification, and vision project templates.
|
|
40
|
+
- Expanded tests and docs for project workflows, metrics, dataset creation,
|
|
41
|
+
callbacks, configs, templates, and checkpoint resume.
|
|
42
|
+
|
|
5
43
|
## 1.9.0 - 2026-07-07
|
|
6
44
|
|
|
7
45
|
- Completed the ordered Neural Network Building Blocks roadmap section as one
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: tensorstudio
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.11.0
|
|
4
4
|
Summary: TensorStudio is a compact C++ tensor and autograd engine with a Python API for learning, experimentation, and lightweight ML workloads.
|
|
5
5
|
Keywords: tensor,autograd,machine-learning,cpp,pybind11
|
|
6
6
|
Author: TensorStudio contributors
|
|
@@ -42,6 +42,8 @@ Project-URL: Repository, https://github.com/imattas/TensorStudio
|
|
|
42
42
|
Project-URL: Issues, https://github.com/imattas/TensorStudio/issues
|
|
43
43
|
Requires-Python: >=3.10
|
|
44
44
|
Requires-Dist: numpy>=1.24
|
|
45
|
+
Requires-Dist: PyYAML>=6
|
|
46
|
+
Requires-Dist: tomli>=2.0; python_version < "3.11"
|
|
45
47
|
Provides-Extra: dev
|
|
46
48
|
Requires-Dist: pytest>=8; extra == "dev"
|
|
47
49
|
Requires-Dist: pytest-cov>=5; extra == "dev"
|
|
@@ -71,15 +73,18 @@ Description-Content-Type: text/markdown
|
|
|
71
73
|
TensorStudio is a compact C++ tensor and autograd engine with a Python API for
|
|
72
74
|
learning, experimentation, and lightweight ML workloads.
|
|
73
75
|
|
|
74
|
-
TensorStudio `1.
|
|
76
|
+
TensorStudio `1.11.0` is a CPU-only stable API foundation with native C++
|
|
75
77
|
threading, storage reuse, SIMD-friendly typed kernels, and optional
|
|
76
78
|
CBLAS/Accelerate matrix multiplication when available. It adds native stable
|
|
77
79
|
softmax/logsumexp, batched matrix multiplication, statistical reductions,
|
|
78
80
|
boolean reductions, seeded random distributions, and a hardened eager autograd
|
|
79
81
|
lifecycle. The neural-network layer now includes grouped/depthwise/1D/
|
|
80
82
|
transposed convolution, normalization layers, embeddings, richer activations,
|
|
81
|
-
initializers, additional losses, and model summaries.
|
|
82
|
-
|
|
83
|
+
initializers, additional losses, and model summaries. The project layer adds
|
|
84
|
+
dataset factories, deterministic train/validation splitting, metrics, callbacks,
|
|
85
|
+
multi-format configs, checkpoint resume helpers, and starter project templates.
|
|
86
|
+
It is eager-only, intentionally compact, and not a replacement for mature ML
|
|
87
|
+
frameworks.
|
|
83
88
|
|
|
84
89
|
## Install
|
|
85
90
|
|
|
@@ -289,7 +294,7 @@ print(model.state_dict().keys())
|
|
|
289
294
|
print(model.parameter_count())
|
|
290
295
|
```
|
|
291
296
|
|
|
292
|
-
The
|
|
297
|
+
The neural-network surface also includes initialization helpers,
|
|
293
298
|
normalization layers, embeddings, grouped/depthwise/1D/transposed convolution,
|
|
294
299
|
adaptive/global pooling, richer activations, and model summaries:
|
|
295
300
|
|
|
@@ -313,6 +318,11 @@ classification workflows: Pillow-backed image IO, transform pipelines,
|
|
|
313
318
|
deterministic augmentations, `ImageFolder` datasets, metrics, image grids,
|
|
314
319
|
bounding-box drawing, and compact CNN classifiers running through native
|
|
315
320
|
Conv2d/pooling kernels.
|
|
321
|
+
The `1.11.0` vision surface adds batch-aware transforms, color jitter, random
|
|
322
|
+
resized crop, rotation, affine transforms, cutout, mixup, CutMix, detection
|
|
323
|
+
helpers, segmentation mask helpers, detection/segmentation folder datasets,
|
|
324
|
+
ResNet-style blocks, MobileNet-style depthwise blocks, a compact UNet, and
|
|
325
|
+
prediction/mask/feature-map visualization helpers.
|
|
316
326
|
|
|
317
327
|
```python
|
|
318
328
|
import numpy as np
|
|
@@ -340,17 +350,22 @@ optimizer.step()
|
|
|
340
350
|
print(ts.vision.accuracy(model(x), target))
|
|
341
351
|
```
|
|
342
352
|
|
|
343
|
-
##
|
|
353
|
+
## Data And Metrics
|
|
344
354
|
|
|
345
355
|
```python
|
|
346
356
|
import tensorstudio as ts
|
|
347
|
-
from tensorstudio.data import DataLoader,
|
|
357
|
+
from tensorstudio.data import DataLoader, from_arrays, train_val_split
|
|
348
358
|
|
|
349
|
-
dataset =
|
|
350
|
-
|
|
359
|
+
dataset = from_arrays([[0.0], [1.0], [2.0], [3.0]], [[1.0], [3.0], [5.0], [7.0]])
|
|
360
|
+
train_data, val_data = train_val_split(dataset, val_fraction=0.25, seed=42)
|
|
361
|
+
loader = DataLoader(train_data, batch_size=2, shuffle=True, seed=42)
|
|
351
362
|
|
|
352
363
|
for features, targets in loader:
|
|
353
364
|
print(features.shape, targets.shape)
|
|
365
|
+
|
|
366
|
+
prediction = ts.tensor([[0.2, 0.8], [0.7, 0.3]])
|
|
367
|
+
target = ts.tensor([1, 0], dtype="int64")
|
|
368
|
+
print(ts.metrics.accuracy(prediction, target))
|
|
354
369
|
```
|
|
355
370
|
|
|
356
371
|
The v1 DataLoader is intentionally single-process so it works cleanly on
|
|
@@ -358,24 +373,44 @@ Windows without multiprocessing setup.
|
|
|
358
373
|
|
|
359
374
|
## Projects And Training
|
|
360
375
|
|
|
361
|
-
`tensorstudio.project` provides project folders, JSON config
|
|
362
|
-
|
|
376
|
+
`tensorstudio.project` provides project folders, JSON/TOML/YAML config loading,
|
|
377
|
+
deterministic seeding, reusable trainers, validation loops, callbacks, safe NPZ
|
|
378
|
+
weight files, trusted full checkpoints, and generated starter templates:
|
|
363
379
|
|
|
364
380
|
```python
|
|
365
381
|
import tensorstudio as ts
|
|
366
382
|
from tensorstudio import nn, optim
|
|
367
|
-
from tensorstudio.data import DataLoader,
|
|
368
|
-
from tensorstudio.project import
|
|
383
|
+
from tensorstudio.data import DataLoader, from_arrays, train_val_split
|
|
384
|
+
from tensorstudio.project import (
|
|
385
|
+
CSVLogger,
|
|
386
|
+
CheckpointCallback,
|
|
387
|
+
LrLogger,
|
|
388
|
+
Project,
|
|
389
|
+
ProjectConfig,
|
|
390
|
+
Trainer,
|
|
391
|
+
save_state_dict,
|
|
392
|
+
seed_everything,
|
|
393
|
+
)
|
|
369
394
|
|
|
370
|
-
|
|
371
|
-
|
|
395
|
+
seed_everything(7)
|
|
396
|
+
dataset = from_arrays([[0.0], [1.0], [2.0], [3.0]], [[1.0], [3.0], [5.0], [7.0]])
|
|
397
|
+
train_data, val_data = train_val_split(dataset, val_fraction=0.25, seed=7)
|
|
372
398
|
|
|
373
399
|
model = nn.Linear(1, 1)
|
|
374
|
-
|
|
375
|
-
trainer = Trainer(model,
|
|
400
|
+
optimizer = optim.SGD(model.parameters(), lr=0.05)
|
|
401
|
+
trainer = Trainer(model, optimizer, nn.MSELoss(), metric_fn=ts.metrics.mean_squared_error)
|
|
376
402
|
project = Project("runs/linear", ProjectConfig(name="linear-regression", seed=7))
|
|
377
403
|
|
|
378
|
-
history = trainer.fit(
|
|
404
|
+
history = trainer.fit(
|
|
405
|
+
DataLoader(train_data, batch_size=2),
|
|
406
|
+
epochs=50,
|
|
407
|
+
validation_loader=DataLoader(val_data, batch_size=1),
|
|
408
|
+
callbacks=[
|
|
409
|
+
LrLogger(),
|
|
410
|
+
CSVLogger(project.logs_dir / "history.csv"),
|
|
411
|
+
CheckpointCallback(project.checkpoints_dir / "best.tsmodel", save_best_only=True),
|
|
412
|
+
],
|
|
413
|
+
)
|
|
379
414
|
save_state_dict(model, project.checkpoint_path("weights"))
|
|
380
415
|
print(history.last)
|
|
381
416
|
```
|
|
@@ -410,11 +445,11 @@ Run the loose local regression thresholds with:
|
|
|
410
445
|
python benchmark_all.py --check-thresholds
|
|
411
446
|
```
|
|
412
447
|
|
|
413
|
-
On one Windows CPython 3.10 development run reporting `1.
|
|
448
|
+
On one Windows CPython 3.10 development run reporting `1.11.0`, with
|
|
414
449
|
TensorStudio threads enabled, storage pooling enabled, SSE2 autovectorization
|
|
415
450
|
reported, and no BLAS provider found, TensorStudio beat NumPy on 7 local
|
|
416
451
|
benchmark cases and lost on 96 NumPy-comparable cases. JAX CPU dispatch was
|
|
417
|
-
available on that machine; TensorStudio won
|
|
452
|
+
available on that machine; TensorStudio won 42 local cases and lost 56. The
|
|
418
453
|
strongest local wins were the simple NumPy convolution/pooling reference loops
|
|
419
454
|
and some small JAX-dispatch-heavy eager cases. NumPy and JAX were faster for
|
|
420
455
|
many elementwise, reduction, matrix multiplication, larger activation, and
|
|
@@ -426,15 +461,15 @@ Snapshot from that local run:
|
|
|
426
461
|
|
|
427
462
|
| operation | shape | TensorStudio | NumPy | JAX CPU dispatch | TS vs NumPy | TS vs JAX |
|
|
428
463
|
|---|---:|---:|---:|---:|---:|---:|
|
|
429
|
-
| `sigmoid` | `(32,)` | 0.
|
|
430
|
-
| `mean` | `(32,)` | 0.
|
|
431
|
-
| `sum_axis1` | `(16, 16)` | 0.
|
|
432
|
-
| `chain_relu` | `(128,)` | 0.
|
|
433
|
-
| `matmul` | `(256, 256)` | 2.
|
|
434
|
-
| `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.
|
|
435
|
-
| `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.
|
|
436
|
-
| `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.
|
|
437
|
-
| `elementwise_backward` | `(1024,)` |
|
|
464
|
+
| `sigmoid` | `(32,)` | 0.0151 ms | 0.0085 ms | 0.0788 ms | 0.5609x | 5.2163x |
|
|
465
|
+
| `mean` | `(32,)` | 0.0162 ms | 0.0085 ms | 0.0160 ms | 0.5228x | 0.9868x |
|
|
466
|
+
| `sum_axis1` | `(16, 16)` | 0.0162 ms | 0.0027 ms | 0.0148 ms | 0.1645x | 0.9159x |
|
|
467
|
+
| `chain_relu` | `(128,)` | 0.0908 ms | 0.0063 ms | 0.0964 ms | 0.0699x | 1.0613x |
|
|
468
|
+
| `matmul` | `(256, 256)` | 2.5442 ms | 0.4174 ms | 0.2867 ms | 0.1641x | 0.1127x |
|
|
469
|
+
| `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2048 ms | 1.4268 ms | 0.1191 ms | 6.9654x | 0.5814x |
|
|
470
|
+
| `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0278 ms | 0.1944 ms | n/a | 6.9988x | n/a |
|
|
471
|
+
| `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0286 ms | 0.6478 ms | n/a | 22.6805x | n/a |
|
|
472
|
+
| `elementwise_backward` | `(1024,)` | 3.0411 ms | n/a | n/a | n/a | n/a |
|
|
438
473
|
|
|
439
474
|
Speedup is `competitor median / TensorStudio median`, so values above `1.0x`
|
|
440
475
|
favor TensorStudio.
|
|
@@ -7,15 +7,18 @@
|
|
|
7
7
|
TensorStudio is a compact C++ tensor and autograd engine with a Python API for
|
|
8
8
|
learning, experimentation, and lightweight ML workloads.
|
|
9
9
|
|
|
10
|
-
TensorStudio `1.
|
|
10
|
+
TensorStudio `1.11.0` is a CPU-only stable API foundation with native C++
|
|
11
11
|
threading, storage reuse, SIMD-friendly typed kernels, and optional
|
|
12
12
|
CBLAS/Accelerate matrix multiplication when available. It adds native stable
|
|
13
13
|
softmax/logsumexp, batched matrix multiplication, statistical reductions,
|
|
14
14
|
boolean reductions, seeded random distributions, and a hardened eager autograd
|
|
15
15
|
lifecycle. The neural-network layer now includes grouped/depthwise/1D/
|
|
16
16
|
transposed convolution, normalization layers, embeddings, richer activations,
|
|
17
|
-
initializers, additional losses, and model summaries.
|
|
18
|
-
|
|
17
|
+
initializers, additional losses, and model summaries. The project layer adds
|
|
18
|
+
dataset factories, deterministic train/validation splitting, metrics, callbacks,
|
|
19
|
+
multi-format configs, checkpoint resume helpers, and starter project templates.
|
|
20
|
+
It is eager-only, intentionally compact, and not a replacement for mature ML
|
|
21
|
+
frameworks.
|
|
19
22
|
|
|
20
23
|
## Install
|
|
21
24
|
|
|
@@ -225,7 +228,7 @@ print(model.state_dict().keys())
|
|
|
225
228
|
print(model.parameter_count())
|
|
226
229
|
```
|
|
227
230
|
|
|
228
|
-
The
|
|
231
|
+
The neural-network surface also includes initialization helpers,
|
|
229
232
|
normalization layers, embeddings, grouped/depthwise/1D/transposed convolution,
|
|
230
233
|
adaptive/global pooling, richer activations, and model summaries:
|
|
231
234
|
|
|
@@ -249,6 +252,11 @@ classification workflows: Pillow-backed image IO, transform pipelines,
|
|
|
249
252
|
deterministic augmentations, `ImageFolder` datasets, metrics, image grids,
|
|
250
253
|
bounding-box drawing, and compact CNN classifiers running through native
|
|
251
254
|
Conv2d/pooling kernels.
|
|
255
|
+
The `1.11.0` vision surface adds batch-aware transforms, color jitter, random
|
|
256
|
+
resized crop, rotation, affine transforms, cutout, mixup, CutMix, detection
|
|
257
|
+
helpers, segmentation mask helpers, detection/segmentation folder datasets,
|
|
258
|
+
ResNet-style blocks, MobileNet-style depthwise blocks, a compact UNet, and
|
|
259
|
+
prediction/mask/feature-map visualization helpers.
|
|
252
260
|
|
|
253
261
|
```python
|
|
254
262
|
import numpy as np
|
|
@@ -276,17 +284,22 @@ optimizer.step()
|
|
|
276
284
|
print(ts.vision.accuracy(model(x), target))
|
|
277
285
|
```
|
|
278
286
|
|
|
279
|
-
##
|
|
287
|
+
## Data And Metrics
|
|
280
288
|
|
|
281
289
|
```python
|
|
282
290
|
import tensorstudio as ts
|
|
283
|
-
from tensorstudio.data import DataLoader,
|
|
291
|
+
from tensorstudio.data import DataLoader, from_arrays, train_val_split
|
|
284
292
|
|
|
285
|
-
dataset =
|
|
286
|
-
|
|
293
|
+
dataset = from_arrays([[0.0], [1.0], [2.0], [3.0]], [[1.0], [3.0], [5.0], [7.0]])
|
|
294
|
+
train_data, val_data = train_val_split(dataset, val_fraction=0.25, seed=42)
|
|
295
|
+
loader = DataLoader(train_data, batch_size=2, shuffle=True, seed=42)
|
|
287
296
|
|
|
288
297
|
for features, targets in loader:
|
|
289
298
|
print(features.shape, targets.shape)
|
|
299
|
+
|
|
300
|
+
prediction = ts.tensor([[0.2, 0.8], [0.7, 0.3]])
|
|
301
|
+
target = ts.tensor([1, 0], dtype="int64")
|
|
302
|
+
print(ts.metrics.accuracy(prediction, target))
|
|
290
303
|
```
|
|
291
304
|
|
|
292
305
|
The v1 DataLoader is intentionally single-process so it works cleanly on
|
|
@@ -294,24 +307,44 @@ Windows without multiprocessing setup.
|
|
|
294
307
|
|
|
295
308
|
## Projects And Training
|
|
296
309
|
|
|
297
|
-
`tensorstudio.project` provides project folders, JSON config
|
|
298
|
-
|
|
310
|
+
`tensorstudio.project` provides project folders, JSON/TOML/YAML config loading,
|
|
311
|
+
deterministic seeding, reusable trainers, validation loops, callbacks, safe NPZ
|
|
312
|
+
weight files, trusted full checkpoints, and generated starter templates:
|
|
299
313
|
|
|
300
314
|
```python
|
|
301
315
|
import tensorstudio as ts
|
|
302
316
|
from tensorstudio import nn, optim
|
|
303
|
-
from tensorstudio.data import DataLoader,
|
|
304
|
-
from tensorstudio.project import
|
|
317
|
+
from tensorstudio.data import DataLoader, from_arrays, train_val_split
|
|
318
|
+
from tensorstudio.project import (
|
|
319
|
+
CSVLogger,
|
|
320
|
+
CheckpointCallback,
|
|
321
|
+
LrLogger,
|
|
322
|
+
Project,
|
|
323
|
+
ProjectConfig,
|
|
324
|
+
Trainer,
|
|
325
|
+
save_state_dict,
|
|
326
|
+
seed_everything,
|
|
327
|
+
)
|
|
305
328
|
|
|
306
|
-
|
|
307
|
-
|
|
329
|
+
seed_everything(7)
|
|
330
|
+
dataset = from_arrays([[0.0], [1.0], [2.0], [3.0]], [[1.0], [3.0], [5.0], [7.0]])
|
|
331
|
+
train_data, val_data = train_val_split(dataset, val_fraction=0.25, seed=7)
|
|
308
332
|
|
|
309
333
|
model = nn.Linear(1, 1)
|
|
310
|
-
|
|
311
|
-
trainer = Trainer(model,
|
|
334
|
+
optimizer = optim.SGD(model.parameters(), lr=0.05)
|
|
335
|
+
trainer = Trainer(model, optimizer, nn.MSELoss(), metric_fn=ts.metrics.mean_squared_error)
|
|
312
336
|
project = Project("runs/linear", ProjectConfig(name="linear-regression", seed=7))
|
|
313
337
|
|
|
314
|
-
history = trainer.fit(
|
|
338
|
+
history = trainer.fit(
|
|
339
|
+
DataLoader(train_data, batch_size=2),
|
|
340
|
+
epochs=50,
|
|
341
|
+
validation_loader=DataLoader(val_data, batch_size=1),
|
|
342
|
+
callbacks=[
|
|
343
|
+
LrLogger(),
|
|
344
|
+
CSVLogger(project.logs_dir / "history.csv"),
|
|
345
|
+
CheckpointCallback(project.checkpoints_dir / "best.tsmodel", save_best_only=True),
|
|
346
|
+
],
|
|
347
|
+
)
|
|
315
348
|
save_state_dict(model, project.checkpoint_path("weights"))
|
|
316
349
|
print(history.last)
|
|
317
350
|
```
|
|
@@ -346,11 +379,11 @@ Run the loose local regression thresholds with:
|
|
|
346
379
|
python benchmark_all.py --check-thresholds
|
|
347
380
|
```
|
|
348
381
|
|
|
349
|
-
On one Windows CPython 3.10 development run reporting `1.
|
|
382
|
+
On one Windows CPython 3.10 development run reporting `1.11.0`, with
|
|
350
383
|
TensorStudio threads enabled, storage pooling enabled, SSE2 autovectorization
|
|
351
384
|
reported, and no BLAS provider found, TensorStudio beat NumPy on 7 local
|
|
352
385
|
benchmark cases and lost on 96 NumPy-comparable cases. JAX CPU dispatch was
|
|
353
|
-
available on that machine; TensorStudio won
|
|
386
|
+
available on that machine; TensorStudio won 42 local cases and lost 56. The
|
|
354
387
|
strongest local wins were the simple NumPy convolution/pooling reference loops
|
|
355
388
|
and some small JAX-dispatch-heavy eager cases. NumPy and JAX were faster for
|
|
356
389
|
many elementwise, reduction, matrix multiplication, larger activation, and
|
|
@@ -362,15 +395,15 @@ Snapshot from that local run:
|
|
|
362
395
|
|
|
363
396
|
| operation | shape | TensorStudio | NumPy | JAX CPU dispatch | TS vs NumPy | TS vs JAX |
|
|
364
397
|
|---|---:|---:|---:|---:|---:|---:|
|
|
365
|
-
| `sigmoid` | `(32,)` | 0.
|
|
366
|
-
| `mean` | `(32,)` | 0.
|
|
367
|
-
| `sum_axis1` | `(16, 16)` | 0.
|
|
368
|
-
| `chain_relu` | `(128,)` | 0.
|
|
369
|
-
| `matmul` | `(256, 256)` | 2.
|
|
370
|
-
| `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.
|
|
371
|
-
| `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.
|
|
372
|
-
| `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.
|
|
373
|
-
| `elementwise_backward` | `(1024,)` |
|
|
398
|
+
| `sigmoid` | `(32,)` | 0.0151 ms | 0.0085 ms | 0.0788 ms | 0.5609x | 5.2163x |
|
|
399
|
+
| `mean` | `(32,)` | 0.0162 ms | 0.0085 ms | 0.0160 ms | 0.5228x | 0.9868x |
|
|
400
|
+
| `sum_axis1` | `(16, 16)` | 0.0162 ms | 0.0027 ms | 0.0148 ms | 0.1645x | 0.9159x |
|
|
401
|
+
| `chain_relu` | `(128,)` | 0.0908 ms | 0.0063 ms | 0.0964 ms | 0.0699x | 1.0613x |
|
|
402
|
+
| `matmul` | `(256, 256)` | 2.5442 ms | 0.4174 ms | 0.2867 ms | 0.1641x | 0.1127x |
|
|
403
|
+
| `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2048 ms | 1.4268 ms | 0.1191 ms | 6.9654x | 0.5814x |
|
|
404
|
+
| `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0278 ms | 0.1944 ms | n/a | 6.9988x | n/a |
|
|
405
|
+
| `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0286 ms | 0.6478 ms | n/a | 22.6805x | n/a |
|
|
406
|
+
| `elementwise_backward` | `(1024,)` | 3.0411 ms | n/a | n/a | n/a | n/a |
|
|
374
407
|
|
|
375
408
|
Speedup is `competitor median / TensorStudio median`, so values above `1.0x`
|
|
376
409
|
favor TensorStudio.
|