Comments (5)
@nathanielsimard and I had an offline conversation.
Here's a summary of the conversation for others:
We discussed the need to support scalar tensors in the Burn deep learning framework. While scalar values can be encoded as rank-1 tensors, the main issue is the lack of an automatic broadcasting API in Rust stable due to limitations with const generics.
As a better long-term solution, we proposed introducing a new Scalar
type, which would be an enum that can hold either a native value (e.g., f32
) or a rank-1 tensor. This explicit Scalar
type would provide more security and avoid unnecessary broadcast operations. It would also be beneficial for exporting to other formats like ONNX, since all operation can be tracked in a computation graph.
We plan to modify the burn_tensor
module to include this Scalar
type, with variants like Scalar<Int>
, Scalar<Float>
, and Scalar<Bool>
. This change would not introduce any breaking changes to the existing API.
Overall, while the naming and exact implementation details still need to be finalized, we agreed that introducing a dedicated Scalar
type is a good idea to handle scalar values properly in the Burn framework.
from burn.
CC @nathanielsimard , @laggui , @louisfd
from burn.
@LaurentMazare has confirmed Candle supports 0D tensors:
Zermelo Fraenkel: Scalars values (tensors with 0 dimension) should be supported. Empty tensors (multiple dimensions but with one of them being zero) should also be supported but only to some extent. Certainly interested if you find places where this doesn't work properly.
PyTorch supports 0D tensors
from burn.
cc @ashdtu
from burn.
@laggui found that Ndarray supports 0dim arrays: https://docs.rs/ndarray/latest/ndarray/type.Array0.html
from burn.
Related Issues (20)
- Better memory management in Burn Compute
- Config Derive: Generic Types? HOT 2
- Optimizer / Visitor / Mapper confusion, no documentation HOT 4
- clamp_min does not handle -inf correctly on Autodiff<NdArray> backend
- Update tch to 0.16+
- Add multi-stream support to all the different backends.
- Add application logger strategy to learner builder
- Improve pickle (`CandleTensor`) conversions to `NestedValue`
- Add `squeeze_dims` function
- Building failed. Err: Is gcc.exe installed HOT 3
- Bug with element types in JIT when using all(), related to PRNG
- Crate libc 0.2.154 is yanked
- Feature: Burn equivalent to torch.retain_grad
- Burn-WGPU tests fail on Windows with Radeon 6950 HOT 1
- [Book] Add reference to models repo
- [Book] Add examples section
- Error when importing onnx of transformers bert model HOT 1
- extract onnx importing into it's own crate. HOT 1
- The trait `std::clone::Clone` is not implemented for `BenchmarkModuleRecord<B>
- [Book] Add custom dataset, loader and batcher detailed example HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from burn.