Inhaltsverzeichnis
JS-Torch-Einführung
Von JS-Torch unterstützte Funktionen
Tensoroperationen
Deep Learning Layers
JS-Torch-Nutzungsbeispiel
Simple Autograd
Complex Autograd. (Transformer)
Heim Technologie-Peripheriegeräte KI Die KI-Ära von JS ist da!

Die KI-Ära von JS ist da!

Apr 08, 2024 am 09:10 AM
js node.js ai

JS-Torch-Einführung

JS-Torch ist eine Deep-Learning-JavaScript-Bibliothek, deren Syntax PyTorch sehr ähnlich ist. Es enthält ein voll funktionsfähiges Tensorobjekt (kann mit verfolgten Farbverläufen verwendet werden), Deep-Learning-Ebenen und -Funktionen sowie eine automatische Differenzierungs-Engine. JS-Torch eignet sich für die Deep-Learning-Forschung in JavaScript und bietet viele praktische Tools und Funktionen zur Beschleunigung der Deep-Learning-Entwicklung.

JS 的 AI 时代来了!Bilder

PyTorch ist ein Open-Source-Deep-Learning-Framework, das vom Forschungsteam von Meta entwickelt und gepflegt wird. Es bietet einen umfangreichen Satz an Tools und Bibliotheken zum Erstellen und Trainieren neuronaler Netzwerkmodelle. Das Designkonzept von PyTorch ist Einfachheit, Flexibilität und Benutzerfreundlichkeit. Die Funktion für dynamische Berechnungsdiagramme macht die Modellkonstruktion intuitiver und flexibler und verbessert gleichzeitig die Effizienz der Modellkonstruktion und des Debuggens. Die dynamische Berechnungsdiagrammfunktion von PyTorch macht die Modellkonstruktion außerdem intuitiver und einfacher zu debuggen und zu optimieren. Darüber hinaus verfügt PyTorch über eine gute Skalierbarkeit und Betriebseffizienz, was es im Bereich Deep Learning beliebt und anwendbar macht.

Sie können js-pytorch über npm oder pnpm installieren:

npm install js-pytorchpnpm add js-pytorch
Nach dem Login kopieren

oder erleben Sie die Demo[3] von js-pytorch online:

JS 的 AI 时代来了!Bilder

https://eduardoleao052.github. io/js-torch/assets/demo/demo.html

Von JS-Torch unterstützte Funktionen

Derzeit unterstützt JS-Torch bereits Tensoroperationen wie Addieren, Subtrahieren, Multiplizieren, Dividieren usw. Es unterstützt auch lineare, MultiHeadSelfAttention, häufig verwendete Deep-Learning-Schichten wie ReLU und LayerNorm.

Tensoroperationen

  • Addieren
  • Subtrahieren
  • Multiplizieren
  • Dividieren
  • Matrixmultiplizieren
  • Potenzial
  • Quadratwurzel
  • Potenzieren
  • Log
  • S ähm
  • Mittelwert
  • Varianz
  • Transponieren
  • At
  • MaskedFill
  • Reshape

Deep Learning Layers

  • nn.Linear
  • nn.MultiHeadSelfAttention
  • nn.FullyConnected
  • nn.Block
  • nn.Embedding
  • nn. PositionalEmbedding
  • nn.ReLU
  • nn .Softmax
  • nn.Dropout
  • nn.LayerNorm
  • nn.CrossEntropyLoss

JS-Torch-Nutzungsbeispiel

Simple Autograd

import { torch } from "js-pytorch";// Instantiate Tensors:let x = torch.randn([8, 4, 5]);let w = torch.randn([8, 5, 4], (requires_grad = true));let b = torch.tensor([0.2, 0.5, 0.1, 0.0], (requires_grad = true));// Make calculations:let out = torch.matmul(x, w);out = torch.add(out, b);// Compute gradients on whole graph:out.backward();// Get gradients from specific Tensors:console.log(w.grad);console.log(b.grad);
Nach dem Login kopieren

Complex Autograd. (Transformer)

import { torch } from "js-pytorch";const nn = torch.nn;class Transformer extends nn.Module {constructor(vocab_size, hidden_size, n_timesteps, n_heads, p) {super();// Instantiate Transformer's Layers:this.embed = new nn.Embedding(vocab_size, hidden_size);this.pos_embed = new nn.PositionalEmbedding(n_timesteps, hidden_size);this.b1 = new nn.Block(hidden_size,hidden_size,n_heads,n_timesteps,(dropout_p = p));this.b2 = new nn.Block(hidden_size,hidden_size,n_heads,n_timesteps,(dropout_p = p));this.ln = new nn.LayerNorm(hidden_size);this.linear = new nn.Linear(hidden_size, vocab_size);}forward(x) {let z;z = torch.add(this.embed.forward(x), this.pos_embed.forward(x));z = this.b1.forward(z);z = this.b2.forward(z);z = this.ln.forward(z);z = this.linear.forward(z);return z;}}// Instantiate your custom nn.Module:const model = new Transformer(vocab_size,hidden_size,n_timesteps,n_heads,dropout_p);// Define loss function and optimizer:const loss_func = new nn.CrossEntropyLoss();const optimizer = new optim.Adam(model.parameters(), (lr = 5e-3), (reg = 0));// Instantiate sample input and output:let x = torch.randint(0, vocab_size, [batch_size, n_timesteps, 1]);let y = torch.randint(0, vocab_size, [batch_size, n_timesteps]);let loss;// Training Loop:for (let i = 0; i < 40; i++) {// Forward pass through the Transformer:let z = model.forward(x);// Get loss:loss = loss_func.forward(z, y);// Backpropagate the loss using torch.tensor's backward() method:loss.backward();// Update the weights:optimizer.step();// Reset the gradients to zero after each training step:optimizer.zero_grad();}
Nach dem Login kopieren

Nachdem ich JS-Torch hatte, Der Tag der Ausführung von KI-Anwendungen auf Node.js, Deno und anderen JS Runtime rückt näher. Damit JS-Torch populär wird, muss es natürlich auch ein sehr wichtiges Problem lösen, nämlich die GPU-Beschleunigung. Es gibt bereits entsprechende Diskussionen. Wenn Sie interessiert sind, können Sie weitere verwandte Inhalte lesen: GPU-Unterstützung[4].

Referenzen

[1]JS-Torch: https://github.com/eduardoleao052/js-torch

[2]PyTorch: https://pytorch.org/

[3]Demo: https: / /eduardoleao052.github.io/js-torch/assets/demo/demo.html

[4]GPU-Unterstützung: https://github.com/eduardoleao052/js-torch/issues/1

Das obige ist der detaillierte Inhalt vonDie KI-Ära von JS ist da!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PhpMyAdmin erstellt Datentabelle PhpMyAdmin erstellt Datentabelle Apr 10, 2025 pm 11:00 PM

Um eine Datentabelle mithilfe von PHPMYADMIN zu erstellen, sind die folgenden Schritte unerlässlich: Stellen Sie eine Verbindung zur Datenbank her und klicken Sie auf die neue Registerkarte. Nennen Sie die Tabelle und wählen Sie die Speichermotor (innoDB empfohlen). Fügen Sie Spaltendetails hinzu, indem Sie auf die Taste der Spalte hinzufügen, einschließlich Spaltenname, Datentyp, ob Nullwerte und andere Eigenschaften zuzulassen. Wählen Sie eine oder mehrere Spalten als Primärschlüssel aus. Klicken Sie auf die Schaltfläche Speichern, um Tabellen und Spalten zu erstellen.

Wie geht es mit Redis -Speicherfragmentierung um? Wie geht es mit Redis -Speicherfragmentierung um? Apr 10, 2025 pm 02:24 PM

Redis -Gedächtnisfragmentierung bezieht sich auf die Existenz kleiner freier Bereiche in dem zugewiesenen Gedächtnis, die nicht neu zugewiesen werden können. Zu den Bewältigungsstrategien gehören: Neustart von Redis: Der Gedächtnis vollständig löschen, aber den Service unterbrechen. Datenstrukturen optimieren: Verwenden Sie eine Struktur, die für Redis besser geeignet ist, um die Anzahl der Speicherzuweisungen und -freisetzungen zu verringern. Konfigurationsparameter anpassen: Verwenden Sie die Richtlinie, um die kürzlich verwendeten Schlüsselwertpaare zu beseitigen. Verwenden Sie den Persistenzmechanismus: Daten regelmäßig sichern und Redis neu starten, um Fragmente zu beseitigen. Überwachen Sie die Speicherverwendung: Entdecken Sie die Probleme rechtzeitig und ergreifen Sie Maßnahmen.

Erstellen einer Oracle -Datenbank So erstellen Sie eine Oracle -Datenbank Erstellen einer Oracle -Datenbank So erstellen Sie eine Oracle -Datenbank Apr 11, 2025 pm 02:33 PM

Das Erstellen einer Oracle -Datenbank ist nicht einfach, Sie müssen den zugrunde liegenden Mechanismus verstehen. 1. Sie müssen die Konzepte von Datenbank und Oracle DBMS verstehen. 2. Beherrschen Sie die Kernkonzepte wie SID, CDB (Containerdatenbank), PDB (Pluggable -Datenbank); 3.. Verwenden Sie SQL*Plus, um CDB zu erstellen und dann PDB zu erstellen. Sie müssen Parameter wie Größe, Anzahl der Datendateien und Pfade angeben. 4. Erweiterte Anwendungen müssen den Zeichensatz, den Speicher und andere Parameter anpassen und die Leistungsstimmung durchführen. 5. Achten Sie auf Speicherplatz, Berechtigungen und Parametereinstellungen und überwachen und optimieren Sie die Datenbankleistung kontinuierlich. Nur indem Sie es geschickt beherrschen, müssen Sie die Erstellung und Verwaltung von Oracle -Datenbanken wirklich verstehen.

So erstellen Sie die Oracle -Datenbank So erstellen Sie die Oracle -Datenbank So erstellen Sie die Oracle -Datenbank So erstellen Sie die Oracle -Datenbank Apr 11, 2025 pm 02:36 PM

Um eine Oracle -Datenbank zu erstellen, besteht die gemeinsame Methode darin, das dbca -grafische Tool zu verwenden. Die Schritte sind wie folgt: 1. Verwenden Sie das DBCA -Tool, um den DBNAME festzulegen, um den Datenbanknamen anzugeben. 2. Setzen Sie Syspassword und SystemPassword auf starke Passwörter. 3.. Setzen Sie Charaktere und NationalCharacterset auf AL32UTF8; 4. Setzen Sie MemorySize und tablespacesize, um sie entsprechend den tatsächlichen Bedürfnissen anzupassen. 5. Geben Sie den Logfile -Pfad an. Erweiterte Methoden werden manuell mit SQL -Befehlen erstellt, sind jedoch komplexer und anfällig für Fehler. Achten Sie auf die Kennwortstärke, die Auswahl der Zeichensatz, die Größe und den Speicher von Tabellenräumen

Was sind die Redis -Speicherkonfigurationsparameter? Was sind die Redis -Speicherkonfigurationsparameter? Apr 10, 2025 pm 02:03 PM

** Der Kernparameter der Redis -Speicherkonfiguration ist MaxMemory, der die Menge an Speicher einschränkt, die Redis verwenden kann. Wenn diese Grenze überschritten wird, führt Redis eine Eliminierungsstrategie gemäß MaxMemory-Policy durch, einschließlich: Noeviction (direkt abgelehnt), Allkeys-LRU/Volatile-LRU (eliminiert von LRU), Allkeys-Random/Volatile-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random-Random (eliminiert) und volatile TTL (eliminierte Zeit). Andere verwandte Parameter umfassen MaxMemory-Samples (LRU-Probenmenge), RDB-Kompression

So schreiben Sie Oracle -Datenbankanweisungen So schreiben Sie Oracle -Datenbankanweisungen Apr 11, 2025 pm 02:42 PM

Der Kern von Oracle SQL -Anweisungen ist ausgewählt, einfügen, aktualisiert und löschen sowie die flexible Anwendung verschiedener Klauseln. Es ist wichtig, den Ausführungsmechanismus hinter der Aussage wie die Indexoptimierung zu verstehen. Zu den erweiterten Verwendungen gehören Unterabfragen, Verbindungsabfragen, Analysefunktionen und PL/SQL. Häufige Fehler sind Syntaxfehler, Leistungsprobleme und Datenkonsistenzprobleme. Best Practices für Leistungsoptimierung umfassen die Verwendung geeigneter Indizes, die Vermeidung von Auswahl *, optimieren Sie, wo Klauseln und gebundene Variablen verwenden. Das Beherrschen von Oracle SQL erfordert Übung, einschließlich des Schreibens von Code, Debuggen, Denken und Verständnis der zugrunde liegenden Mechanismen.

Was ist der Redis Memory Management -Mechanismus? Was ist der Redis Memory Management -Mechanismus? Apr 10, 2025 pm 01:39 PM

REDIS nimmt einen mechanischen Mechanismus zur Verwaltung von Granulargedächtnissen an, darunter: Eine gut gestaltete Speicher-freundliche Datenstruktur, ein Multi-Memory-Allocator, der Allokationsstrategien für verschiedene Größen von Speicherblöcken optimiert, ein Speicher-Elimination-Mechanismus, der eine Eliminierungsstrategie ausgewählt, die auf bestimmten Anforderungen basiert, und Tools zur Überwachungsverwendung. Das Ziel dieses Mechanismus ist es, die endgültige Leistung durch feine Kontrolle und effiziente Verwendung des Speichers zu erzielen, die Gedächtnisfragmentierung zu minimieren und die Zugangseffizienz zu verbessern, um sicherzustellen, dass Redis in verschiedenen Szenarien stabil und effizient ausgeführt wird.

Hinzufügen, Ändern und Löschen von MySQL Data Table Field Operation Operation Guide, addieren, ändern und löschen Hinzufügen, Ändern und Löschen von MySQL Data Table Field Operation Operation Guide, addieren, ändern und löschen Apr 11, 2025 pm 05:42 PM

Feldbetriebshandbuch in MySQL: Felder hinzufügen, ändern und löschen. Feld hinzufügen: Alter table table_name hinzufügen column_name data_type [nicht null] [Standard default_value] [Primärschlüssel] [auto_increment] Feld ändern: Alter table table_name Ändern Sie Column_Name Data_type [nicht null] [diffault default_value] [Primärschlüssel] [Primärschlüssel]

See all articles