คู่มือนี้จะอธิบายแพ็คเกจ TensorFlow.js และ API ที่พร้อมใช้งานสำหรับ Node.js
หากต้องการเรียนรู้วิธีติดตั้ง TensorFlow.js ใน Node.js โปรดดู บทช่วยสอนการตั้งค่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและการสนับสนุน โปรดดู ที่เก็บ TensorFlow.js สำหรับ Node.js
ซีพียูเทนเซอร์โฟลว์
สามารถนำเข้าแพ็คเกจ TensorFlow CPU ได้ดังต่อไปนี้:
import * as tf from '@tensorflow/tfjs-node'
เมื่อคุณนำเข้า TensorFlow.js จากแพ็คเกจนี้ คุณจะได้รับโมดูลที่เร่งความเร็วโดยไบนารี TensorFlow C และทำงานบน CPU TensorFlow บน CPU ใช้การเร่งด้วยฮาร์ดแวร์เพื่อเพิ่มประสิทธิภาพการคำนวณพีชคณิตเชิงเส้น
แพ็คเกจนี้ทำงานบนแพลตฟอร์ม Linux, Windows และ macOS ที่รองรับ TensorFlow
GPU เทนเซอร์โฟลว์
สามารถนำเข้าแพ็คเกจ TensorFlow GPU ได้ดังต่อไปนี้:
import * as tf from '@tensorflow/tfjs-node-gpu'
เช่นเดียวกับแพ็คเกจ CPU โมดูลจะถูกเร่งความเร็วโดยไบนารี TensorFlow C แต่แพ็คเกจ GPU รันการดำเนินการเทนเซอร์บน GPU ด้วย CUDA ดังนั้นจึงมีเฉพาะบน Linux เท่านั้น การเชื่อมโยงนี้สามารถมีลำดับความสำคัญเร็วกว่าตัวเลือกการผูกอื่นๆ เป็นอย่างน้อย
TensorFlow สำหรับ JavaScript ล้วนๆ
นอกจากนี้ยังมี TensorFlow.js เวอร์ชันที่รัน JavaScript บน CPU เพียงอย่างเดียว สามารถนำเข้าได้ดังนี้:
import * as tf from '@tensorflow/tfjs'
แพ็คเกจนี้เป็นแพ็คเกจเดียวกับที่คุณใช้ในเบราว์เซอร์ ในแพ็คเกจนี้ การดำเนินการจะดำเนินการในรูปแบบวานิลลา JavaScript บน CPU แพ็คเกจนี้มีขนาดเล็กกว่าแพ็คเกจอื่นมากเนื่องจากไม่จำเป็นต้องใช้ไบนารี TensorFlow แต่ก็ช้ากว่ามากเช่นกัน
เนื่องจากแพ็คเกจนี้ไม่ต้องพึ่งพา TensorFlow จึงสามารถใช้งานได้กับอุปกรณ์ที่รองรับ Node.js ได้มากขึ้น ไม่จำกัดเฉพาะแพลตฟอร์ม Linux, Windows และ macOS ที่รองรับ TensorFlow
ข้อควรพิจารณาในการผลิต
การเชื่อมโยง Node.js จัดเตรียมแบ็กเอนด์สำหรับ TensorFlow.js ที่ใช้งานการดำเนินการพร้อมกัน ซึ่งหมายความว่า ตัวอย่างเช่น เมื่อคุณเรียกใช้การดำเนินการเช่น tf.matMul(a, b)
มันจะบล็อกเธรดหลักจนกว่าการดำเนินการจะเสร็จสิ้น
ด้วยเหตุนี้ การเชื่อมโยงจึงเหมาะสมอย่างยิ่งสำหรับสคริปต์และงานออฟไลน์ หากคุณต้องการใช้การเชื่อมโยง Node.js ในแอปพลิเคชันที่ใช้งานจริง เช่น เว็บเซิร์ฟเวอร์ คุณควรตั้งค่าคิวงานหรือตั้งค่าเธรดของผู้ปฏิบัติงาน เพื่อให้โค้ด TensorFlow.js ของคุณไม่บล็อกเธรดหลัก
API
เมื่อคุณนำเข้าแพ็คเกจเป็น tf
โดยใช้ตัวเลือกใดๆ ข้างต้น สัญลักษณ์ TensorFlow.js ปกติทั้งหมดจะปรากฏบนโมดูลที่นำเข้า
tf.เบราว์เซอร์
API ในเนมสเป tf.browser.*
ไม่สามารถใช้งานได้ใน Node.js เนื่องจากขึ้นอยู่กับ API เฉพาะเบราว์เซอร์ สำหรับรายการ tf.browser
API โปรดดูที่ Browser
tf.โหนด
แพ็กเกจ Node.js ทั้งสองยังจัดเตรียมเนมสเปซ tf.node
ซึ่งมี API เฉพาะของ Node.js (เช่น TensorBoard)
ต่อไปนี้คือตัวอย่างการส่งออกข้อมูลสรุปไปยัง TensorBoard ใน Node.js
const model = tf.sequential();
model.add(tf.layers.dense({ units: 1, inputShape: [200] }));
model.compile({
loss: 'meanSquaredError',
optimizer: 'sgd',
metrics: ['MAE']
});
// Generate some random fake data for demo purposes.
const xs = tf.randomUniform([10000, 200]);
const ys = tf.randomUniform([10000, 1]);
const valXs = tf.randomUniform([1000, 200]);
const valYs = tf.randomUniform([1000, 1]);
// Start model training process.
async function train() {
await model.fit(xs, ys, {
epochs: 100,
validationData: [valXs, valYs],
// Add the tensorBoard callback here.
callbacks: tf.node.tensorBoard('/tmp/fit_logs_1')
});
}
train();