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.
Files changed (215) hide show
  1. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CHANGELOG.md +38 -0
  2. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CMakeLists.txt +1 -1
  3. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/PKG-INFO +64 -29
  4. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/README.md +61 -28
  5. tensorstudio-1.11.0/benchmarks/results.md +347 -0
  6. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_matmul.md +13 -13
  7. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/coverage.md +1 -1
  8. tensorstudio-1.11.0/docs/data/dataset-creation.md +91 -0
  9. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/datasets-and-dataloaders.md +29 -2
  10. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/cpu-backend.md +1 -1
  11. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/index.md +24 -16
  12. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/onnx.md +1 -1
  13. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/serialization.md +1 -1
  14. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/training.md +1 -1
  15. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/checkpoints.md +23 -6
  16. tensorstudio-1.11.0/docs/project/configs-and-templates.md +76 -0
  17. tensorstudio-1.11.0/docs/project/metrics.md +62 -0
  18. tensorstudio-1.11.0/docs/project/trainer-and-callbacks.md +91 -0
  19. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/workflows.md +32 -14
  20. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/publishing.md +4 -4
  21. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/versioning.md +2 -2
  22. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/milestones.md +20 -3
  23. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/priorities.md +1 -0
  24. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/roadmap/roadmap.md +16 -16
  25. tensorstudio-1.11.0/docs/vision/dataset-creation.md +98 -0
  26. tensorstudio-1.11.0/docs/vision/detection.md +69 -0
  27. tensorstudio-1.11.0/docs/vision/models-and-visualization.md +47 -0
  28. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/vision/overview.md +33 -6
  29. tensorstudio-1.11.0/docs/vision/segmentation.md +55 -0
  30. tensorstudio-1.11.0/docs/vision/transforms.md +58 -0
  31. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/version.hpp +1 -1
  32. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/mkdocs.yml +8 -0
  33. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/pyproject.toml +6 -4
  34. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/__init__.py +2 -1
  35. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/_version.py +1 -1
  36. tensorstudio-1.11.0/python/tensorstudio/data/__init__.py +29 -0
  37. tensorstudio-1.11.0/python/tensorstudio/data/dataset.py +116 -0
  38. tensorstudio-1.11.0/python/tensorstudio/data/factories.py +82 -0
  39. tensorstudio-1.11.0/python/tensorstudio/data/splitting.py +35 -0
  40. tensorstudio-1.11.0/python/tensorstudio/metrics/__init__.py +25 -0
  41. tensorstudio-1.11.0/python/tensorstudio/metrics/classification.py +85 -0
  42. tensorstudio-1.11.0/python/tensorstudio/metrics/multilabel.py +46 -0
  43. tensorstudio-1.11.0/python/tensorstudio/metrics/regression.py +41 -0
  44. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/__init__.py +17 -1
  45. tensorstudio-1.11.0/python/tensorstudio/project/callbacks.py +158 -0
  46. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/checkpoint.py +40 -0
  47. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/config.py +33 -3
  48. tensorstudio-1.11.0/python/tensorstudio/project/seed.py +23 -0
  49. tensorstudio-1.11.0/python/tensorstudio/project/templates.py +79 -0
  50. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/project/trainer.py +34 -5
  51. tensorstudio-1.11.0/python/tensorstudio/vision/__init__.py +157 -0
  52. tensorstudio-1.11.0/python/tensorstudio/vision/datasets.py +226 -0
  53. tensorstudio-1.11.0/python/tensorstudio/vision/detection.py +230 -0
  54. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/models.py +122 -1
  55. tensorstudio-1.11.0/python/tensorstudio/vision/segmentation.py +172 -0
  56. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/transforms.py +487 -0
  57. tensorstudio-1.11.0/python/tensorstudio/vision/visualization.py +155 -0
  58. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_import.py +1 -1
  59. tensorstudio-1.11.0/tests/test_training_workflows.py +177 -0
  60. tensorstudio-1.11.0/tests/test_vision_depth.py +161 -0
  61. tensorstudio-1.9.0/benchmarks/results.md +0 -347
  62. tensorstudio-1.9.0/docs/vision/dataset-creation.md +0 -58
  63. tensorstudio-1.9.0/python/tensorstudio/data/__init__.py +0 -8
  64. tensorstudio-1.9.0/python/tensorstudio/data/dataset.py +0 -36
  65. tensorstudio-1.9.0/python/tensorstudio/vision/__init__.py +0 -76
  66. tensorstudio-1.9.0/python/tensorstudio/vision/datasets.py +0 -106
  67. tensorstudio-1.9.0/python/tensorstudio/vision/visualization.py +0 -65
  68. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.gitattributes +0 -0
  69. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/ci.yml +0 -0
  70. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/publish-testpypi.yml +0 -0
  71. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/publish.yml +0 -0
  72. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.github/workflows/wheels.yml +0 -0
  73. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.gitignore +0 -0
  74. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/.pre-commit-config.yaml +0 -0
  75. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/CONTRIBUTING.md +0 -0
  76. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/LICENSE +0 -0
  77. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/SECURITY.md +0 -0
  78. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmark_all.py +0 -0
  79. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/__init__.py +0 -0
  80. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_activations.py +0 -0
  81. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_autograd.py +0 -0
  82. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_conv2d.py +0 -0
  83. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_elementwise.py +0 -0
  84. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_matmul.py +0 -0
  85. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_pooling.py +0 -0
  86. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_reductions.py +0 -0
  87. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_tensor_ops.py +0 -0
  88. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/bench_training_loop.py +0 -0
  89. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/benchmark_report.py +0 -0
  90. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_conv2d.md +0 -0
  91. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_pooling.md +0 -0
  92. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_reductions.md +0 -0
  93. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/results_tensor_ops.md +0 -0
  94. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/benchmarks/thresholds.json +0 -0
  95. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/gradient-notes.md +0 -0
  96. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/autograd/overview.md +0 -0
  97. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/api-reference.md +0 -0
  98. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/broadcasting.md +0 -0
  99. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/math-and-statistics.md +0 -0
  100. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/native-cpp-core.md +0 -0
  101. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/core/tensors.md +0 -0
  102. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/dataloader-patterns.md +0 -0
  103. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/data/tensor-datasets.md +0 -0
  104. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/development/contributing.md +0 -0
  105. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/development/cpp-first.md +0 -0
  106. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/installation.md +0 -0
  107. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/quickstart.md +0 -0
  108. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/getting-started/source-build.md +0 -0
  109. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/linux.md +0 -0
  110. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/macos.md +0 -0
  111. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/hardware/windows.md +0 -0
  112. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/model-formats.md +0 -0
  113. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/numpy-interop.md +0 -0
  114. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/interchange/trusted-serialization.md +0 -0
  115. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/initializers.md +0 -0
  116. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/losses-and-summary.md +0 -0
  117. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/modules.md +0 -0
  118. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/optimizers.md +0 -0
  119. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/nn/overview.md +0 -0
  120. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/benchmarks.md +0 -0
  121. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/optimization.md +0 -0
  122. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/performance/profiling.md +0 -0
  123. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/project/project-layout.md +0 -0
  124. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/docs/release/checklist.md +0 -0
  125. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/basic_tensor_ops.py +0 -0
  126. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/export_onnx.py +0 -0
  127. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/image_folder_classification.py +0 -0
  128. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/linear_regression.py +0 -0
  129. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/project_training.py +0 -0
  130. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/save_load_model.py +0 -0
  131. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/tiny_mlp.py +0 -0
  132. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/examples/vision_classifier.py +0 -0
  133. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/autograd.hpp +0 -0
  134. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/device.hpp +0 -0
  135. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/dtype.hpp +0 -0
  136. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/errors.hpp +0 -0
  137. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/module.hpp +0 -0
  138. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/ops.hpp +0 -0
  139. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/optim.hpp +0 -0
  140. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/perf.hpp +0 -0
  141. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/random.hpp +0 -0
  142. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/serialization.hpp +0 -0
  143. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/shape.hpp +0 -0
  144. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/storage.hpp +0 -0
  145. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/include/tensorstudio/tensor.hpp +0 -0
  146. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/_C.pyi +0 -0
  147. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/autograd.py +0 -0
  148. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/data/dataloader.py +0 -0
  149. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/dtypes.py +0 -0
  150. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/errors.py +0 -0
  151. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/grad_mode.py +0 -0
  152. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/interchange/__init__.py +0 -0
  153. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/interchange/onnx.py +0 -0
  154. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/math.py +0 -0
  155. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/__init__.py +0 -0
  156. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/functional.py +0 -0
  157. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/init.py +0 -0
  158. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/losses.py +0 -0
  159. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/modules.py +0 -0
  160. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/nn/summary.py +0 -0
  161. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/ops.py +0 -0
  162. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/__init__.py +0 -0
  163. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/adam.py +0 -0
  164. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/adamw.py +0 -0
  165. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/lr_scheduler.py +0 -0
  166. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/sgd.py +0 -0
  167. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/optim/utils.py +0 -0
  168. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/performance.py +0 -0
  169. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/py.typed +0 -0
  170. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/serialization.py +0 -0
  171. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/tensor.py +0 -0
  172. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/typing.py +0 -0
  173. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/io.py +0 -0
  174. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/python/tensorstudio/vision/metrics.py +0 -0
  175. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_autograd.cpp +0 -0
  176. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_nn.cpp +0 -0
  177. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_ops.cpp +0 -0
  178. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_optim.cpp +0 -0
  179. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bind_tensor.cpp +0 -0
  180. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bindings.cpp +0 -0
  181. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/bindings/bindings.hpp +0 -0
  182. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/autograd.cpp +0 -0
  183. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/device.cpp +0 -0
  184. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/dtype.cpp +0 -0
  185. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/errors.cpp +0 -0
  186. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/module.cpp +0 -0
  187. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/ops.cpp +0 -0
  188. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/optim.cpp +0 -0
  189. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/perf.cpp +0 -0
  190. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/random.cpp +0 -0
  191. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/serialization.cpp +0 -0
  192. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/shape.cpp +0 -0
  193. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/storage.cpp +0 -0
  194. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/src/core/tensor.cpp +0 -0
  195. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/test_all.py +0 -0
  196. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_autograd.py +0 -0
  197. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_autograd_hardening.py +0 -0
  198. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_benchmark_report.py +0 -0
  199. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_broadcasting.py +0 -0
  200. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_core_math_expansion.py +0 -0
  201. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_data.py +0 -0
  202. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_errors.py +0 -0
  203. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_indexing.py +0 -0
  204. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_interchange.py +0 -0
  205. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_nn.py +0 -0
  206. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_nn_building_blocks.py +0 -0
  207. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_numpy_interop.py +0 -0
  208. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_ops.py +0 -0
  209. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_optim.py +0 -0
  210. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_performance.py +0 -0
  211. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_project.py +0 -0
  212. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_serialization.py +0 -0
  213. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_tensor.py +0 -0
  214. {tensorstudio-1.9.0 → tensorstudio-1.11.0}/tests/test_views.py +0 -0
  215. {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
  cmake_minimum_required(VERSION 3.18)
2
2
 
3
- project(tensorstudio VERSION 1.9.0 LANGUAGES CXX)
3
+ project(tensorstudio VERSION 1.11.0 LANGUAGES CXX)
4
4
 
5
5
  find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
6
6
  set(PYBIND11_FINDPYTHON ON)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: tensorstudio
3
- Version: 1.9.0
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.9.0` is a CPU-only stable API foundation with native C++
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. It is eager-only,
82
- intentionally compact, and not a replacement for mature ML frameworks.
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 `1.9.0` neural-network surface also includes initialization helpers,
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
- ## DataLoader
353
+ ## Data And Metrics
344
354
 
345
355
  ```python
346
356
  import tensorstudio as ts
347
- from tensorstudio.data import DataLoader, TensorDataset
357
+ from tensorstudio.data import DataLoader, from_arrays, train_val_split
348
358
 
349
- dataset = TensorDataset(ts.arange(6).reshape((6, 1)), ts.arange(6))
350
- loader = DataLoader(dataset, batch_size=2, shuffle=True, seed=42)
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, reusable trainers,
362
- safe NPZ weight files, and trusted full checkpoints:
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, TensorDataset
368
- from tensorstudio.project import Project, ProjectConfig, Trainer, save_state_dict
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
- x = ts.tensor([[0.0], [1.0], [2.0], [3.0]])
371
- y = ts.tensor([[1.0], [3.0], [5.0], [7.0]])
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
- loader = DataLoader(TensorDataset(x, y), batch_size=2)
375
- trainer = Trainer(model, optim.SGD(model.parameters(), lr=0.05), nn.MSELoss())
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(loader, epochs=50)
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.9.0`, with
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 55 local cases and lost 43. The
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.0154 ms | 0.0048 ms | 0.0855 ms | 0.3098x | 5.5404x |
430
- | `mean` | `(32,)` | 0.0187 ms | 0.0104 ms | 0.0143 ms | 0.5575x | 0.7616x |
431
- | `sum_axis1` | `(16, 16)` | 0.0172 ms | 0.0027 ms | 0.0136 ms | 0.1551x | 0.7942x |
432
- | `chain_relu` | `(128,)` | 0.0957 ms | 0.0057 ms | 0.1030 ms | 0.0596x | 1.0768x |
433
- | `matmul` | `(256, 256)` | 2.3777 ms | 0.4328 ms | 0.2489 ms | 0.1820x | 0.1047x |
434
- | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2216 ms | 1.3908 ms | 0.1073 ms | 6.2770x | 0.4841x |
435
- | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0280 ms | 0.1846 ms | n/a | 6.5816x | n/a |
436
- | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0281 ms | 0.5595 ms | n/a | 19.8874x | n/a |
437
- | `elementwise_backward` | `(1024,)` | 2.8255 ms | n/a | n/a | n/a | n/a |
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.9.0` is a CPU-only stable API foundation with native C++
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. It is eager-only,
18
- intentionally compact, and not a replacement for mature ML frameworks.
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 `1.9.0` neural-network surface also includes initialization helpers,
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
- ## DataLoader
287
+ ## Data And Metrics
280
288
 
281
289
  ```python
282
290
  import tensorstudio as ts
283
- from tensorstudio.data import DataLoader, TensorDataset
291
+ from tensorstudio.data import DataLoader, from_arrays, train_val_split
284
292
 
285
- dataset = TensorDataset(ts.arange(6).reshape((6, 1)), ts.arange(6))
286
- loader = DataLoader(dataset, batch_size=2, shuffle=True, seed=42)
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, reusable trainers,
298
- safe NPZ weight files, and trusted full checkpoints:
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, TensorDataset
304
- from tensorstudio.project import Project, ProjectConfig, Trainer, save_state_dict
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
- x = ts.tensor([[0.0], [1.0], [2.0], [3.0]])
307
- y = ts.tensor([[1.0], [3.0], [5.0], [7.0]])
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
- loader = DataLoader(TensorDataset(x, y), batch_size=2)
311
- trainer = Trainer(model, optim.SGD(model.parameters(), lr=0.05), nn.MSELoss())
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(loader, epochs=50)
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.9.0`, with
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 55 local cases and lost 43. The
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.0154 ms | 0.0048 ms | 0.0855 ms | 0.3098x | 5.5404x |
366
- | `mean` | `(32,)` | 0.0187 ms | 0.0104 ms | 0.0143 ms | 0.5575x | 0.7616x |
367
- | `sum_axis1` | `(16, 16)` | 0.0172 ms | 0.0027 ms | 0.0136 ms | 0.1551x | 0.7942x |
368
- | `chain_relu` | `(128,)` | 0.0957 ms | 0.0057 ms | 0.1030 ms | 0.0596x | 1.0768x |
369
- | `matmul` | `(256, 256)` | 2.3777 ms | 0.4328 ms | 0.2489 ms | 0.1820x | 0.1047x |
370
- | `conv2d_3x3_padding1` | `(1, 1, 8, 8)` | 0.2216 ms | 1.3908 ms | 0.1073 ms | 6.2770x | 0.4841x |
371
- | `max_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0280 ms | 0.1846 ms | n/a | 6.5816x | n/a |
372
- | `avg_pool2d_2x2` | `(1, 1, 16, 16)` | 0.0281 ms | 0.5595 ms | n/a | 19.8874x | n/a |
373
- | `elementwise_backward` | `(1024,)` | 2.8255 ms | n/a | n/a | n/a | n/a |
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.