[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5440":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":45,"readmeContent":46,"aiSummary":47,"trendingCount":16,"starSnapshotCount":16,"syncStatus":48,"lastSyncTime":49,"discoverSource":50},5440,"burn","tracel-ai\u002Fburn","tracel-ai","Burn is a next generation tensor library and Deep Learning Framework that doesn't compromise on flexibility, efficiency and portability.","https:\u002F\u002Fburn.dev",null,"Rust",15402,937,96,259,0,3,74,298,35,104.92,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"autodiff","cross-platform","cuda","deep-learning","kernel-fusion","machine-learning","metal","ndarray","neural-network","onnx","pytorch","rocm","rust","scientific-computing","tensor","vulkan","wasm","webgpu","2026-06-12 04:00:25","\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Flogo-burn-neutral.webp\" width=\"350px\"\u002F>\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1038839012602941528.svg?color=7289da&&logo=discord)](https:\u002F\u002Fdiscord.gg\u002FuPEBbYYDB6)\n[![Current Crates.io Version](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fburn.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fburn)\n[![Minimum Supported Rust Version](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fmsrv\u002Fburn)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fburn)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue)](https:\u002F\u002Fburn.dev\u002Fdocs\u002Fburn)\n[![Test Status](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![license](https:\u002F\u002Fshields.io\u002Fbadge\u002Flicense-MIT%2FApache--2.0-blue)](#license)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Ftracel-ai\u002Fburn)\n\n[\u003Cimg src=\"https:\u002F\u002Fwww.runblaze.dev\u002Fci-blaze-powered.png\" width=\"125px\"\u002F>](https:\u002F\u002Fwww.runblaze.dev)\n\n---\n\n**Burn is a next generation Tensor Library and Deep Learning Framework that doesn't compromise on\n\u003Cbr \u002F> flexibility, efficiency and portability.**\n\n\u003Cbr\u002F>\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"left\">\n\nBurn is both a tensor library and a deep learning framework optimized for numerical computing, model\ninference and model training. Burn leverages Rust to perform optimizations normally only available\nin static-graph frameworks, offering optimal speed without impacting flexibility.\n\n## Backend\n\n\u003Cdiv align=\"left\">\n\u003Cimg align=\"right\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Fbackend-chip.png\" height=\"96px\"\u002F>\n\nBurn strives to be as fast as possible on as many hardwares as possible, with robust\nimplementations. We believe this flexibility is crucial for modern needs where you may train your\nmodels in the cloud, then deploy on customer hardwares, which vary from user to user.\n\n\u003C\u002Fdiv>\n\n### Supported Backends\n\nMost backends support all operating systems, so we don't mention them in the tables below.\n\n**GPU Backends:**\n\n|         | CUDA | ROCm | Metal | Vulkan | WebGPU | LibTorch |\n| ------- | ---- | ---- | ----- | ------ | ------ | -------- |\n| Nvidia  | ☑️   | -    | -     | ☑️     | ☑️     | ☑️       |\n| AMD     | -    | ☑️   | -     | ☑️     | ☑️     | ☑️       |\n| Apple   | -    | -    | ☑️    | -      | ☑️     | ☑️       |\n| Intel   | -    | -    | -     | ☑️     | ☑️     | -        |\n| Qualcom | -    | -    | -     | ☑️     | ☑️     | -        |\n| Wasm    | -    | -    | -     | -      | ☑️     | -        |\n\n**CPU Backends:**\n\n|        | Cpu (CubeCL) | Flex | LibTorch |\n| ------ | ------------ | ---- | -------- |\n| X86    | ☑️           | ☑️   | ☑️       |\n| Arm    | ☑️           | ☑️   | ☑️       |\n| Wasm   | -            | ☑️   | -        |\n| no-std | -            | ☑️   | -        |\n\n\u003Cbr \u002F>\n\nCompared to other frameworks, Burn has a very different approach to supporting many backends. By\ndesign, most code is generic over the Backend trait, which allows us to build Burn with swappable\nbackends. This makes composing backend possible, augmenting them with additional functionalities\nsuch as autodifferentiation and automatic kernel fusion.\n\n\u003Cdetails>\n\u003Csummary>\nAutodiff: Backend decorator that brings backpropagation to any backend 🔄\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nContrary to the aforementioned backends, Autodiff is actually a backend _decorator_. This means that\nit cannot exist by itself; it must encapsulate another backend.\n\nThe simple act of wrapping a base backend with Autodiff transparently equips it with\nautodifferentiation support, making it possible to call backward on your model.\n\n```rust\nuse burn::backend::{Autodiff, Wgpu};\nuse burn::tensor::{Distribution, Tensor};\n\nfn main() {\n    type Backend = Autodiff\u003CWgpu>;\n\n    let device = Default::default();\n\n    let x: Tensor\u003CBackend, 2> = Tensor::random([32, 32], Distribution::Default, &device);\n    let y: Tensor\u003CBackend, 2> = Tensor::random([32, 32], Distribution::Default, &device).require_grad();\n\n    let tmp = x.clone() + y.clone();\n    let tmp = tmp.matmul(x);\n    let tmp = tmp.exp();\n\n    let grads = tmp.backward();\n    let y_grad = y.grad(&grads).unwrap();\n    println!(\"{y_grad}\");\n}\n```\n\nOf note, it is impossible to make the mistake of calling backward on a model that runs on a backend\nthat does not support autodiff (for inference), as this method is only offered by an Autodiff\nbackend.\n\nSee the [Autodiff Backend README](.\u002Fcrates\u002Fburn-autodiff\u002FREADME.md) for more details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nFusion: Backend decorator that brings kernel fusion to all first-party backends\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nThis backend decorator enhances a backend with kernel fusion, provided that the inner backend\nsupports it. Note that you can compose this backend with other backend decorators such as Autodiff.\nAll first-party accelerated backends (like WGPU and CUDA) use Fusion by default (`burn\u002Ffusion`\nfeature flag), so you typically don't need to apply it manually.\n\n```rust\n#[cfg(not(feature = \"fusion\"))]\npub type Cuda\u003CF = f32, I = i32> = CubeBackend\u003CCudaRuntime, F, I, u8>;\n\n#[cfg(feature = \"fusion\")]\npub type Cuda\u003CF = f32, I = i32> = burn_fusion::Fusion\u003CCubeBackend\u003CCudaRuntime, F, I, u8>>;\n```\n\nOf note, we plan to implement automatic gradient checkpointing based on compute bound and memory\nbound operations, which will work gracefully with the fusion backend to make your code run even\nfaster during training, see [this issue](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn\u002Fissues\u002F936).\n\nSee the [Fusion Backend README](.\u002Fcrates\u002Fburn-fusion\u002FREADME.md) for more details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nRouter (Beta): Backend decorator that composes multiple backends into a single one\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nThat backend simplifies hardware operability, if for instance you want to execute some operations on\nthe CPU and other operations on the GPU.\n\n```rust\nuse burn::tensor::{Distribution, Tensor};\nuse burn::backend::{\n    Flex, Router, Wgpu, flex::FlexDevice, router::duo::MultiDevice, wgpu::WgpuDevice,\n};\n\nfn main() {\n    type Backend = Router\u003C(Wgpu, Flex)>;\n\n    let device_0 = MultiDevice::B1(WgpuDevice::DiscreteGpu(0));\n    let device_1 = MultiDevice::B2(FlexDevice);\n\n    let tensor_gpu =\n        Tensor::\u003CBackend, 2>::random([3, 3], burn::tensor::Distribution::Default, &device_0);\n    let tensor_cpu =\n        Tensor::\u003CBackend, 2>::random([3, 3], burn::tensor::Distribution::Default, &device_1);\n}\n\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nRemote (Beta): Backend decorator for remote backend execution, useful for distributed computations\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nThat backend has two parts, one client and one server. The client sends tensor operations over the\nnetwork to a remote compute backend. You can use any first-party backend as server in a single line\nof code:\n\n```rust\nfn main_server() {\n    \u002F\u002F Start a server on port 3000.\n    burn::server::start::\u003Cburn::backend::Cuda>(Default::default(), 3000);\n}\n\nfn main_client() {\n    \u002F\u002F Create a client that communicate with the server on port 3000.\n    use burn::backend::{Autodiff, RemoteBackend};\n\n    type Backend = Autodiff\u003CRemoteDevice>;\n\n    let device = RemoteDevice::new(\"ws:\u002F\u002Flocalhost:3000\");\n    let tensor_gpu =\n        Tensor::\u003CBackend, 2>::random([3, 3], Distribution::Default, &device);\n}\n\n```\n\n\u003C\u002Fdetails>\n\n\u003Cbr \u002F>\n\n## Training & Inference\n\n\u003Cdiv align=\"left\">\n\u003Cimg align=\"right\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Fember-wall.png\" height=\"96px\"\u002F>\n\nThe whole deep learning workflow is made easy with Burn, as you can monitor your training progress\nwith an ergonomic dashboard, and run inference everywhere from embedded devices to large GPU\nclusters.\n\nBurn was built from the ground up with training and inference in mind. It's also worth noting how\nBurn, in comparison to frameworks like PyTorch, simplifies the transition from training to\ndeployment, eliminating the need for code changes.\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n\u003Cbr \u002F>\n\n\u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=N9RM5CQbNQc\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Fburn-train-tui.png\" alt=\"Burn Train TUI\" width=\"75%\">\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n**Click on the following sections to expand 👇**\n\n\u003Cdetails>\n\u003Csummary>\nTraining Dashboard 📈\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nAs you can see in the previous video (click on the picture!), a new terminal UI dashboard based on\nthe [Ratatui](https:\u002F\u002Fgithub.com\u002Fratatui-org\u002Fratatui) crate allows users to follow their training\nwith ease without having to connect to any external application.\n\nYou can visualize your training and validation metrics updating in real-time and analyze the\nlifelong progression or recent history of any registered metrics using only the arrow keys. Break\nfrom the training loop without crashing, allowing potential checkpoints to be fully written or\nimportant pieces of code to complete without interruption 🛡\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nONNX Support 🐫\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nBurn supports importing ONNX (Open Neural Network Exchange) models through the\n[burn-onnx](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn-onnx) crate, allowing you to easily port models from\nTensorFlow or PyTorch to Burn. The ONNX model is converted into Rust code that uses Burn's native\nAPIs, enabling the imported model to run on any Burn backend (CPU, GPU, WebAssembly) and benefit\nfrom all of Burn's optimizations like automatic kernel fusion.\n\nOur ONNX support is further described in\n[this section of the Burn Book 🔥](https:\u002F\u002Fburn.dev\u002Fbooks\u002Fburn\u002Fonnx-import.html).\n\n> **Note**: This crate is in active development and currently supports a\n> [limited set of ONNX operators](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn-onnx\u002Fblob\u002Fmain\u002FSUPPORTED-ONNX-OPS.md).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nImporting PyTorch or Safetensors Models 🚚\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nYou can load weights from PyTorch or Safetensors formats directly into your Burn-defined models.\nThis makes it easy to reuse existing models while benefiting from Burn's performance and deployment\nfeatures.\n\nLearn more in the [Saving & Loading Models](https:\u002F\u002Fburn.dev\u002Fbooks\u002Fburn\u002Fsaving-and-loading.html)\nsection of the Burn Book.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nInference in the Browser 🌐\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nSeveral of our backends can run in WebAssembly environments: Flex for CPU execution, and WGPU for\nGPU acceleration via WebGPU. This means that you can run inference directly within a browser. We\nprovide several examples of this:\n\n- [MNIST](.\u002Fexamples\u002Fmnist-inference-web) where you can draw digits and a small convnet tries to\n  find which one it is! 2️⃣ 7️⃣ 😰\n- [Image Classification](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn-onnx\u002Ftree\u002Fmain\u002Fexamples\u002Fimage-classification-web)\n  where you can upload images and classify them! 🌄\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nEmbedded: \u003Ci>no_std\u003C\u002Fi> support ⚙️\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nBurn's core components support [no_std](https:\u002F\u002Fdocs.rust-embedded.org\u002Fbook\u002Fintro\u002Fno-std.html). This\nmeans it can run in bare metal environment such as embedded devices without an operating system.\n\n> As of now, only the Flex backend can be used in a _no_std_ environment.\n\n\u003C\u002Fdetails>\n\n\u003Cbr \u002F>\n\n### Benchmarks\n\nTo evaluate performance across different backends and track improvements over time, we provide a\ndedicated benchmarking suite.\n\nRun and compare benchmarks using [burn-bench](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fburn-bench).\n\n> ⚠️ **Warning** When using one of the `wgpu` backends, you may encounter compilation errors related\n> to recursive type evaluation. This is due to complex type nesting within the `wgpu` dependency\n> chain. To resolve this issue, add the following line at the top of your `main.rs` or `lib.rs`\n> file:\n>\n> ```rust\n> #![recursion_limit = \"256\"]\n> ```\n>\n> The default recursion limit (128) is often just below the required depth (typically 130-150) due\n> to deeply nested associated types and trait bounds.\n\n## Getting Started\n\n\u003Cdiv align=\"left\">\n\u003Cimg align=\"right\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Fember-walking.png\" height=\"96px\"\u002F>\n\nJust heard of Burn? You are at the right place! Just continue reading this section and we hope you\ncan get on board really quickly.\n\n\u003C\u002Fdiv>\n\n\u003Cdetails>\n\u003Csummary>\nThe Burn Book 🔥\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nTo begin working effectively with Burn, it is crucial to understand its key components and\nphilosophy. This is why we highly recommend new users to read the first sections of\n[The Burn Book 🔥](https:\u002F\u002Fburn.dev\u002Fbooks\u002Fburn\u002F). It provides detailed examples and explanations\ncovering every facet of the framework, including building blocks like tensors, modules, and\noptimizers, all the way to advanced usage, like coding your own GPU kernels.\n\n> The project is constantly evolving, and we try as much as possible to keep the book up to date\n> with new additions. However, we might miss some details sometimes, so if you see something weird,\n> let us know! We also gladly accept Pull Requests 😄\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nExamples 🙏\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nLet's start with a code snippet that shows how intuitive the framework is to use! In the following,\nwe declare a neural network module with some parameters along with its forward pass.\n\n```rust\nuse burn::nn;\nuse burn::module::Module;\nuse burn::tensor::backend::Backend;\n\n#[derive(Module, Debug)]\npub struct PositionWiseFeedForward\u003CB: Backend> {\n    linear_inner: nn::Linear\u003CB>,\n    linear_outer: nn::Linear\u003CB>,\n    dropout: nn::Dropout,\n    gelu: nn::Gelu,\n}\n\nimpl\u003CB: Backend> PositionWiseFeedForward\u003CB> {\n    pub fn forward\u003Cconst D: usize>(&self, input: Tensor\u003CB, D>) -> Tensor\u003CB, D> {\n        let x = self.linear_inner.forward(input);\n        let x = self.gelu.forward(x);\n        let x = self.dropout.forward(x);\n\n        self.linear_outer.forward(x)\n    }\n}\n```\n\nWe have a somewhat large amount of [examples](.\u002Fexamples) in the repository that shows how to use\nthe framework in different scenarios.\n\nFollowing [the book](https:\u002F\u002Fburn.dev\u002Fbooks\u002Fburn\u002F):\n\n- [Basic Workflow](.\u002Fexamples\u002Fguide) : Creates a custom CNN `Module` to train on the MNIST dataset\n  and use for inference.\n- [Custom Training Loop](.\u002Fexamples\u002Fcustom-training-loop) : Implements a basic training loop instead\n  of using the `Learner`.\n- [Custom WGPU Kernel](.\u002Fexamples\u002Fcustom-wgpu-kernel) : Learn how to create your own custom\n  operation with the WGPU backend.\n\nAdditional examples:\n\n- [Custom CSV Dataset](.\u002Fexamples\u002Fcustom-csv-dataset) : Implements a dataset to parse CSV data for a\n  regression task.\n- [Regression](.\u002Fexamples\u002Fsimple-regression) : Trains a simple MLP on the California Housing dataset\n  to predict the median house value for a district.\n- [Custom Image Dataset](.\u002Fexamples\u002Fcustom-image-dataset) : Trains a simple CNN on custom image\n  dataset following a simple folder structure.\n- [Custom Renderer](.\u002Fexamples\u002Fcustom-renderer) : Implements a custom renderer to display the\n  [`Learner`](.\u002Fbuilding-blocks\u002Flearner.md) progress.\n- [Image Classification Web](.\u002Fexamples\u002Fimage-classification-web) : Image classification web browser\n  demo using Burn, WGPU and WebAssembly.\n- [MNIST Inference on Web](.\u002Fexamples\u002Fmnist-inference-web) : An interactive MNIST inference demo in\n  the browser. The demo is available [online](https:\u002F\u002Fburn.dev\u002Fdemo\u002F).\n- [MNIST Training](.\u002Fexamples\u002Fmnist) : Demonstrates how to train a custom `Module` (MLP) with the\n  `Learner` configured to log metrics and keep training checkpoints.\n- [PyTorch Import Inference](.\u002Fexamples\u002Fimport-model-weights) : Imports a PyTorch model pre-trained\n  on MNIST to perform inference on a sample image with Burn.\n- [Text Classification](.\u002Fexamples\u002Ftext-classification) : Trains a text classification transformer\n  model on the AG News or DbPedia dataset. The trained model can then be used to classify a text\n  sample.\n- [Text Generation](.\u002Fexamples\u002Ftext-generation) : Trains a text generation transformer model on the\n  DbPedia dataset.\n- [Wasserstein GAN MNIST](.\u002Fexamples\u002Fwgan) : Trains a WGAN model to generate new handwritten digits\n  based on MNIST.\n\nFor more practical insights, you can clone the repository and run any of them directly on your\ncomputer!\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nPre-trained Models 🤖\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nWe keep an updated and curated list of models and examples built with Burn, see the\n[tracel-ai\u002Fmodels repository](https:\u002F\u002Fgithub.com\u002Ftracel-ai\u002Fmodels) for more details.\n\nDon't see the model you want? Don't hesitate to open an issue, and we may prioritize it. Built a\nmodel using Burn and want to share it? You can also open a Pull Request and add your model under the\ncommunity section!\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\nWhy use Rust for Deep Learning? 🦀\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nDeep Learning is a special form of software where you need very high level abstractions as well as\nextremely fast execution time. Rust is the perfect candidate for that use case since it provides\nzero-cost abstractions to easily create neural network modules, and fine-grained control over memory\nto optimize every detail.\n\nIt's important that a framework be easy to use at a high level so that its users can focus on\ninnovating in the AI field. However, since running models relies so heavily on computations,\nperformance can't be neglected.\n\nTo this day, the mainstream solution to this problem has been to offer APIs in Python, but rely on\nbindings to low-level languages such as C\u002FC++. This reduces portability, increases complexity and\ncreates frictions between researchers and engineers. We feel like Rust's approach to abstractions\nmakes it versatile enough to tackle this two languages dichotomy.\n\nRust also comes with the Cargo package manager, which makes it incredibly easy to build, test, and\ndeploy from any environment, which is usually a pain in Python.\n\nAlthough Rust has the reputation of being a difficult language at first, we strongly believe it\nleads to more reliable, bug-free solutions built faster (after some practice 😅)!\n\n\u003C\u002Fdetails>\n\n\u003Cbr \u002F>\n\n> **Deprecation Note**\u003Cbr \u002F>Since `0.14.0`, the internal structure for tensor data has changed. The\n> previous `Data` struct was deprecated and officially removed since `0.17.0` in favor of the new\n> `TensorData` struct, which allows for more flexibility by storing the underlying data as bytes and\n> keeping the data type as a field. If you are using `Data` in your code, make sure to switch to\n> `TensorData`.\n\n\u003C!-- >\n> In the event that you are trying to load a model record saved in a previous version, make sure to\n> enable the `record-backward-compat` feature using a previous version of burn (\u003C=0.16.0). Otherwise,\n> the record won't be deserialized correctly and you will get an error message (which will also point\n> you to the backward compatible feature flag). The backward compatibility was maintained for\n> deserialization (loading), so as soon as you have saved the record again it will be saved according\n> to the new structure and you will be able to upgrade to this version. Please note that binary formats\n> are not backward compatible. Thus, you will need to load your record in a previous version and save it\n> to another of the self-describing record formats before using a compatible version (as described) with the\n> `record-backward-compat` feature flag. -->\n\n\u003Cdetails id=\"deprecation\">\n\u003Csummary>\nLoading Model Records From Previous Versions ⚠️\n\u003C\u002Fsummary>\n\u003Cbr \u002F>\n\nIn the event that you are trying to load a model record saved in a version older than `0.14.0`, make\nsure to use a compatible version (`0.14`, `0.15` or `0.16`) with the `record-backward-compat`\nfeature flag.\n\n```\nfeatures = [..., \"record-backward-compat\"]\n```\n\nOtherwise, the record won't be deserialized correctly and you will get an error message. This error\nwill also point you to the backward compatible feature flag.\n\nThe backward compatibility was maintained for deserialization when loading records. Therefore, as\nsoon as you have saved the record again it will be saved according to the new structure and you can\nupgrade back to the current version\n\nPlease note that binary formats are not backward compatible. Thus, you will need to load your record\nin a previous version and save it in any of the other self-describing record format (e.g., using the\n`NamedMpkFileRecorder`) before using a compatible version (as described) with the\n`record-backward-compat` feature flag.\n\n\u003C\u002Fdetails>\n\n## Community\n\n\u003Cdiv align=\"left\">\n\u003Cimg align=\"right\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Ftracel-ai\u002Fburn\u002Fmain\u002Fassets\u002Fember-community.png\" height=\"96px\"\u002F>\n\nIf you are excited about the project, don't hesitate to join our\n[Discord](https:\u002F\u002Fdiscord.gg\u002FuPEBbYYDB6)! We try to be as welcoming as possible to everybody from\nany background. You can ask your questions and share what you built with the community!\n\n\u003C\u002Fdiv>\n\n\u003Cbr\u002F>\n\n**Contributing**\n\nBefore contributing, please read the [Contributing Guidelines](.\u002FCONTRIBUTING.md) and our\n[Code of Conduct](.\u002FCODE-OF-CONDUCT.md). The [Contributor Book](https:\u002F\u002Fburn.dev\u002Fcontributor-book\u002F)\ncovers architecture, environment setup, and guides for common tasks.\n\n## Status\n\nBurn is currently in active development, and there will be breaking changes. While any resulting\nissues are likely to be easy to fix, there are no guarantees at this stage.\n\n## License\n\nBurn is distributed under the terms of both the MIT license and the Apache License (Version 2.0).\nSee [LICENSE-APACHE](.\u002FLICENSE-APACHE) and [LICENSE-MIT](.\u002FLICENSE-MIT) for details. Opening a pull\nrequest is assumed to signal agreement with these licensing terms.\n\n\u003C\u002Fdiv>\n","Burn 是一个下一代张量库和深度学习框架，旨在不牺牲灵活性、效率和可移植性。它使用 Rust 语言开发，支持自动微分、内核融合等高级特性，并通过静态图优化实现高性能计算。Burn 支持多种硬件后端，包括 CUDA、ROCm、Metal 和 Vulkan 等 GPU 后端，以及 X86 和 Arm 等 CPU 后端，确保在不同设备上都能高效运行。适用于需要跨平台模型训练和推理的场景，如云端训练与边缘设备部署相结合的应用。",2,"2026-06-11 03:03:19","top_language"]