* resolve conflict
* move `gate_product` to `GateController`
* BiLstm needs to use its own initializer when init
* resolve conflicts
* add some comments
* improve doc
* correct the description of GateController
* fix fmt
* add `LstmState`
* add test for state
* set batch 2 in bilstm test
* resolve conflict
* fix
* fix doc
* change the batch size back to 1
* change the batch size back to 1
* modify docstring; delete dead comment
* Move HandlerContainer and Tensor Ops description to burn-tensor
Move HandleContainer and Tensor operations descriptions to burn-tensor crate.
Removed the FusionDevice and replaced it with a DeviceOps trait bound to Backend::Device.
For now added modules to burn-tensor are excluded from no-std as they rely on Arc.
* [burn-tensor] Flatten module hierarchy for tensor representation
+ Add new repr feature to cargo file.
* Remove prefix on dosctring
* [burn-fusion] Require default features of burn-tensor
* Add where onnx op support
* Add broadcasting support
* Remove broadcasting limitation comment
* Fix broadcasting in mask where
* Forgot to reflect changes in codegen test
* Fix clippy
* Mul onnx op already supported
* Add matmul onnx op checks and tests
* Add missing eq derives
* Change supscript symbol
* Remove dead code
* Add support for matmul broadcast
* No more broadcasting restrictions
* Add results comment for mm, mv and vm
* Add remainder_scalar op to numeric trait and associated int/float functions
* Update burn-tch crate
* Update ndarray crate
* Update jit crate
* Update candle crate
* Update fusion crate
* Update autodiff crate
* Forgot float.rs for fusion
* Add burn-tensor tests
* Redirect to the pre-existing modulus op
* Fix sign
* Remove mut from burn-tch
* Use sign trick to make wgpu backend work
* Add more unit tests in to cover bases
* Naming fix for burn-fusion
* Update tests w/PyTorch link
* Use different WGSL instructions for remainder
* Redirect to remainder Operator instead of modulo
* Revert Modulo in instruction.rs
* Update links to latest commit off main
* Some pedantry
* Update links and add jit
* Update instructions for burn-jit and wgpu
* Updated import section with more recent links
* Some grammar/typo/styling fixes
* Code added to burn-wgpu too
* Add training report summary
* Fix LossMetric batch size state
* Add NumericEntry de/serialize
* Fix clippy suggestion
* Compact recorder does not use compression (anymore)
* Add learner summary expected results tests
* Add summary to learner builder and automatically display in fit
- Add LearnerSummaryConfig
- Keep track of summary metrics names
- Add model field when displaying from learner.fit()
* Add multilabel classification dataset
- Add MultiLabel annotation support
- Refactor de/serialize annotation with AnnotationRaw
- Add ImageFolderDataset::with_items methods
* Fix custom-image-classification example deps
* Add image_folder_dataset_multilabel test
* Do not change class names order when provided
* Add hamming score and multi-label classification output
* Add new_classification_with_items test
* Fix clippy suggestions
* Implement default trait for hamming score
* Remove de/serialization and use AnnotationRaw as type
* Fix clippy
* Fix metric backend phantom data
* refactor execute_dynamic into Execution
* minor change
* extension cfg
* jitkernel and sourcekernel
* add todo statement
* cleanup and docs
* update book
* fix server dependancy on compiler
* refactor into shader information
* refactor to compile shader once
* clippy
* clippy
* clippy
* fix doc
* fix doc
* fmt
* rename feature flag
* refactor
* All broked
* compile at the right time
* todo done
* all dynamic
* all dynamic in template too
* fmt
* fix ci
---------
Co-authored-by: nathaniel <nathaniel.simard.42@gmail.com>
* Implement LeakyReLu
* Cargo fmt
* Apply suggestions
* cargo fmt
* Use float_mul_scalar
* Should be grad
* Add to books module
* Move test files
* Update leaky relu to use activation function
* Update tensor.md
* Fix failing test due to approx
* Add back the function comment
* Fix comment per PR feedback
---------
Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
* Initial padding approach
Create padding implementation for the last two dimensions of Float and Int Tensors.
Create PadMode Enum, allowing Constant padding.
Create Padding Struct with Uniform, Asymmetric, height, and width implementations.
Create tests for the padding implementation.
* Update padding.rs
remove unneeded import
* Update from Merge
Use crate Element
Swap from old from_data() to new from_data_devauto()
* Formatting Changes
Formatting changes from cargo fmt --all
* Additional Format Change
One more format change that cargo fmt didn't get the first time.
* Changes to Example
Modify Example to ensure it works.
* modify naming
better names for impl / input variables.
* Modify API
- Change Padding to PadSize.
- integrate padding value into PadMode.
- update tests and examples.
* Comments and print
Improve comments+naming and remove println
* Pad Fixes
Moved pad to numeric
Simplified PadMode Element
updated tensor creations
fixed doc example
* Fix test location
* Simplified pad API
* Fix for failed unit tests
* Remove bool_full
* Rename `pads` to `padding`
---------
Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
* separate forward backward
* refactor with pool strategy
* refactor further
* pooling refactored
* refactoring for adaptive wip
* wip adaptive
* adaptive
* delete some wgsl
* avg pool backward
* clippy
* minor refactor
* works
* delete wgsl
* separate forward backward
* refactor with pool strategy
* refactor further
* pooling refactored
* refactoring for adaptive wip
* wip adaptive
* adaptive
* delete some wgsl
* avg pool backward
* clippy
* minor refactor
* Bump sysinfo crate to 0.30.7
* [backend-comparison] Add CPUs and GPUs system info to results
* [backend-comparison] Add integrated GPUs to gathered system info
* [backend-comparison] Use AutoGraphicsApi wgpu backend selection
* Implement Huber loss
Instead of using a sign or abs function, uses clamping to compute
it outside the bounds. This is better for the autodiff backend.
* mention Huber loss in the book
* unify naming of residuals in comments
Add training support for nearest interpolation
---------
Co-authored-by: yurzhang <yurzhang.oi@gmail.com>
Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
* Added min_pair() and max_pair() methods to numeric Tensors
* Update book with added max_pair() and min_pair() methods.
* Fix spelling typo in comments
* Update comments per change requests
* Fix tensor.equal_elem usage in book
* Add not_equal and not_equal_elem tensor ops
* Fix "element-wise" usage for correctness and uniformity
* Add bool_not_equal test
* Enhance PyTorchRecorder to pass top level key to extract state_dict
This is needed for Whisper weight pt files.
* Fix missing hyphens
* Move top-level-key test under crates
* Add sub-crates as members of workspace
* Update Cargo.lock
* Add accidentally omitted line during merge
* Fix python main entrypoint in book example
* Remove candle windows safeguards (#1178)
* Bump candle-core from 0.3.3 to 0.4.1
* Remove windows current known issue
* Add int_random to int tensor ops
* Int random for tch backend
* Int random for burn-fusion
* int random for autodiff
* Int random for candle backend
* Int random for ndarray backend
* Int random for wgpu backend
* Merge imports
* Typo
* Shader file for int uniform distribution
* Create AutotuneOperationSet and public int_sum_dim_autotune
* Adjust bounds to 0..10
* Create uniform_int_kernel, unit tests, use new kernel
* Reduction kernels for regular and shared memory sum_dim int operations
* Macro that accomadates wgpu IntElement
* Add autotuning to int_mean_dim
* Use correct macro for Int autotuning
* Add int_mean_dim_shared_memory
* Add int_mean_dim and unit test
* Create autotunables for mean_dim
* Run fmt
* Remove comment
* Finish resolving merge conflict, fix doc
* Make the element trait bound a parameter to reduce_tune_ops macro
* Update book
* Fix requested change
* Change range to [0, 255] and update test accordingly
* Forgot to include candle in last commit
* Fix comment
* Use correct int autotune for mean dim
* Fix typo- not sure how this passed earlier
* Resolve syntax issues from merge
* Fix cast_float
* Saving here
* Continue fixing merge conflicts, all tests pass locally
* Run fmt
* Change cast_float to cast_u32_to_float
* Make uniform_int_inner_loop safer
* Be even more explicit about u32 casts
* Skip an intermediate step and cast directly to u32
* Replace JitElement + Element with IntElement
* Run fmt
* This should fix the CI
* This time for sure
* Running into issues with identity nodes
* Vec<RefCell<Node>> seems to work for this
* back to passing tests
* Reworked IO into separate struct
* working towards exploiting topological ordering and more informative ident errors
* the passing of an initializer to coalesce is temporary
* cleaning up dead code
* handled unsqueeze
* reworked node initialization and dim inference
* mainly cleanup
* changed how io use is tracked, moved unsqueeze remapping out of dim inference
* `cargo xtask run-checks all` now passes
* added a fixme and a few doc strings
* removing println and dead code
* spaces in doc strings
* altered top sort to work on node proto, moved prior to node gen
* Update ir.rs
* Update from_onnx.rs
removed dead code
* updated doc string
* camalcased Onnx Graph Builder
* removed self import?
* add any, all op implementation for all tensor types
* add op to burn-book
* fix formatting
* refactor tensor operations from numeric to BaseOps.
* fix book doc
* comments fix and add more tests