Burn Rust: Komplettes Tutorial mit Codebeispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Burn für Rust: Komplettes Tutorial mit Codebeispielen

1. Was ist Burn und warum braucht man es?

Burn ist ein modernes Deep-Learning-Framework, das in Rust geschrieben ist. Es bietet einen vollständigen Werkzeugsatz zum Erstellen, Trainieren und Bereitstellen neuronaler Netze mit Fokus auf Leistung, Speichersicherheit und Flexibilität. Im Gegensatz zu traditionellen Frameworks wie PyTorch oder TensorFlow nutzt Burn alle Vorteile von Rust: kostenlose Abstraktionen, Speichersicherheit zur Compile-Zeit und keinen Garbage Collector. Das macht es zur idealen Wahl für Systeme, bei denen vorhersagbare Leistung und geringer Ressourcenverbrauch entscheidend sind – zum Beispiel in der Robotik, eingebetteten Systemen, hochbelasteten Servern und Edge-Geräten.

Burn bietet eine einzigartige Architektur, die auf dem Konzept der "Backend-Neutralität" basiert. Das bedeutet, dass derselbe Code auf der CPU (über die eigene Tensor-Engine), der GPU (über CUDA/WGPU) und in Zukunft auf spezialisierten Beschleunigern ausgeführt werden kann. Das Framework unterstützt automatische Differentiation, Optimierer (Adam, SGD, AdamW), Verlustfunktionen, Schichten (Linear, Conv2d, BatchNorm, Dropout u.v.m.) sowie integrierte Datasets und DataLoader. Eine Schlüsselfunktion ist die Möglichkeit, Modelle in statische Bibliotheken zu kompilieren, die ohne Abhängigkeiten von Python oder der CUDA-Runtime bereitgestellt werden können.

Warum Burn verwenden? Erstens für Projekte, die maximale Leistung und Kontrolle über den Speicher erfordern. Zweitens für die Entwicklung plattformübergreifender Lösungen, die auf CPU, GPU und sogar WebAssembly laufen. Drittens für die sichere Bereitstellung von Modellen in der Produktion, wo Laufzeitfehler (z. B. Nullpointer oder Typkonflikte) nicht tolerierbar sind. Burn wird aktiv von der Community weiterentwickelt und bereits in Bereichen wie Computer Vision, NLP, Empfehlungssystemen und Reinforcement Learning eingesetzt.

2. Installation

Für die Installation von Burn wird Rust benötigt (empfohlen wird Version 1.75 oder neuer). Falls Rust noch nicht installiert ist, verwenden Sie rustup.

Erstellen Sie ein neues Projekt und fügen Sie die Abhängigkeiten in Cargo.toml hinzu:

cargo new my_burn_project
cd my_burn_project

Fügen Sie in Cargo.toml hinzu:

[dependencies]
burn = { version = "0.15", features = ["ndarray"] }  # für CPU
# oder für GPU (CUDA):
# burn = { version = "0.15", features = ["cuda"] }
# oder für WGPU (plattformübergreifende GPU):
# burn = { version = "0.15", features = ["wgpu"] }

Führen Sie dann Folgendes aus:

cargo build

Für die Arbeit mit CUDA wird das CUDA Toolkit 11.x oder 12.x benötigt. Für WGPU werden Vulkan, Metal oder DirectX 12 (je nach Betriebssystem) vorausgesetzt.

3. Schnellstart – Minimales funktionierendes Beispiel

Wir erstellen ein einfaches neuronales Netz für eine Regressionsaufgabe mit synthetischen Daten. Dieses Beispiel zeigt die grundlegenden Schritte: Modelldefinition, Datenerstellung, Training und Inferenz.

use burn::{
    module::Module,
    nn::{Linear, Relu},
    tensor::{backend::Backend, Tensor},
    train::{Adam, Learner},
    data::dataloader::DataLoaderBuilder,
};

// Modellstruktur definieren
#[derive(Module, Debug)]
struct MyModel {
    linear1: Linear,
    linear2: Linear,
    activation: Relu,
}

impl MyModel {
    fn new() -> Self {
        Self {
            linear1: Linear::new(1, 16),
            linear2: Linear::new(16, 1),
            activation: Relu::new(),
        }
    }

    fn forward(&self, input: Tensor) -> Tensor {
        let x = self.linear1.forward(input);
        let x = self.activation.forward(x);
        se                    

Empfehlungen