เอกสารนี้จะแสดงวิธีติดตั้งและใช้ TensorFlow.js ในสภาพแวดล้อมของเบราว์เซอร์และใน Node.js
การตั้งค่าเบราว์เซอร์
มีสองวิธีที่แนะนำในการใช้ TensorFlow.js ในโปรเจ็กต์ที่ใช้เบราว์เซอร์:
ใช้ แท็กสคริปต์
ติดตั้งจาก NPM และใช้เครื่องมือสร้าง เช่น Parcel , webpack หรือ Rollup
หากคุณยังใหม่ต่อการพัฒนาเว็บ หรือไม่เคยใช้เครื่องมือสร้าง JavaScript มาก่อน คุณอาจต้องการลองใช้วิธีแท็กสคริปต์ก่อน หากคุณมักจะรวมกลุ่มหรือประมวลผลเนื้อหาเว็บของคุณ หรือคุณวางแผนที่จะเขียนแอปพลิเคชันขนาดใหญ่ คุณควรพิจารณาใช้เครื่องมือสร้าง
ใช้แท็กสคริปต์
หากต้องการรับ TensorFlow.js โดยใช้แท็กสคริปต์ ให้เพิ่มสิ่งต่อไปนี้ลงในไฟล์ HTML หลักของคุณ:
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
ตัวอย่างต่อไปนี้แสดงวิธีการกำหนดและฝึกโมเดลในเบราว์เซอร์:
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>TensorFlow.js browser example</title>
<!-- Load TensorFlow.js from a script tag -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
</head>
<body>
<h1>TensorFlow.js example</h1>
<h2>Open the console to see the results.</h2>
<script>
// Define a model for linear regression. The script tag makes `tf` available
// as a global variable.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 10}).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
model.predict(tf.tensor2d([5], [1, 1])).print();
// Open the browser devtools to see the output
});
</script>
</body>
</html>
หากต้องการรันตัวอย่าง ให้ทำตามขั้นตอนเหล่านี้:
- บันทึกเอกสารตัวอย่างในไฟล์ชื่อ
index.html
ดับเบิลคลิก
index.html
เพื่อเปิดในเบราว์เซอร์เริ่มต้นของคุณหรือคุณสามารถให้บริการ
index.html
ได้โดยการรันnpx http-server
ในไดเร็กทอรีเดียวกันกับindex.html
(หากคุณได้รับแจ้งให้ติดตั้งhttp-server
ให้ป้อนy
) จากนั้นไปที่http://localhost:8080
ในเบราว์เซอร์ของคุณเปิดคอนโซลของเบราว์เซอร์เพื่อดูผลลัพธ์ของสคริปต์
รีเฟรชหน้าเพื่อดูการคาดการณ์ใหม่ (และอาจแตกต่างออกไปมาก)
ติดตั้งจาก NPM
หากต้องการติดตั้ง TensorFlow.js จาก NPM ให้ใช้ npm CLI หรือ Yarn
นพีเอ็ม
npm install @tensorflow/tfjs
เส้นด้าย
yarn add @tensorflow/tfjs
ตัวอย่างต่อไปนี้แสดงวิธีการนำเข้า TensorFlow.js กำหนดโมเดล และฝึกโมเดล
import * as tf from '@tensorflow/tfjs';
// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 10}).then(() => {
// Use the model to do inference on a data point the model hasn't seen before:
model.predict(tf.tensor2d([5], [1, 1])).print();
// Open the browser devtools to see the output
});
การตั้งค่า Node.js
หากต้องการใช้ TensorFlow.js ใน Node.js ให้ใช้ npm CLI หรือ Yarn เพื่อเลือกตัวเลือกการติดตั้งตัวใดตัวหนึ่งด้านล่าง
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ TensorFlow.js ใน Node.js โปรดดู คำแนะนำ Node.js สำหรับข้อมูลการติดตั้งเพิ่มเติม โปรดดู ที่เก็บ TensorFlow.js สำหรับ Node.js
ตัวเลือกที่ 1: ติดตั้ง TensorFlow.js ด้วยการเชื่อมโยง C++ แบบเนทีฟ
โมดูล tfjs-node
ให้การดำเนินการ TensorFlow แบบเนทีฟในแอปพลิเคชัน JavaScript ภายใต้รันไทม์ Node.js ซึ่งเร่งความเร็วโดยไบนารี TensorFlow C
ติดตั้ง tfjs-node
:
นพีเอ็ม
npm install @tensorflow/tfjs-node
เส้นด้าย
yarn add @tensorflow/tfjs-node
ตัวอย่างต่อไปนี้แสดงวิธีการนำเข้า tfjs-node
กำหนดโมเดล และฝึกฝนโมเดล
// Use `tfjs-node`. Note that `tfjs` is imported indirectly by `tfjs-node`.
const tf = require('@tensorflow/tfjs-node');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
ตัวเลือกที่ 2: ติดตั้ง TensorFlow.js สำหรับ GPU
(Linux เท่านั้น) หากระบบของคุณมี NVIDIA® GPU พร้อม รองรับ CUDA คุณสามารถใช้แพ็คเกจ GPU เพื่อประสิทธิภาพที่ดีขึ้น
ติดตั้ง tfjs-node-gpu
:
นพีเอ็ม
npm install @tensorflow/tfjs-node-gpu
เส้นด้าย
yarn add @tensorflow/tfjs-node-gpu
ตัวอย่างต่อไปนี้แสดงวิธีการนำเข้า tfjs-node-gpu
กำหนดโมเดล และฝึกฝนโมเดล
// Use `tfjs-node-gpu`. Note that `tfjs` is imported indirectly by `tfjs-node-gpu`.
const tf = require('@tensorflow/tfjs-node-gpu');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
ตัวเลือกที่ 3: ติดตั้งเวอร์ชัน JavaScript ล้วนๆ
โมดูล tfjs
เป็นแพ็คเกจเดียวกับที่คุณใช้ในเบราว์เซอร์ เป็นตัวเลือก Node.js ที่ช้าที่สุดในแง่ของประสิทธิภาพ
ติดตั้ง tfjs
:
นพีเอ็ม
npm install @tensorflow/tfjs
เส้นด้าย
yarn add @tensorflow/tfjs
ตัวอย่างต่อไปนี้แสดงวิธีการนำเข้า tfjs
กำหนดโมเดล และฝึกฝนโมเดล
// Use `tfjs`.
const tf = require('@tensorflow/tfjs');
// Define a simple model.
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);
// Train the model.
model.fit(xs, ys, {
epochs: 100,
callbacks: {
onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
}
});
TypeScript
หากคุณใช้ TensorFlow.js ในโปรเจ็กต์ TypeScript และเปิดใช้งานการตรวจสอบค่า Null อย่างเข้มงวด คุณอาจต้องตั้ง skipLibCheck: true
ใน tsconfig.json
เพื่อหลีกเลี่ยงข้อผิดพลาดระหว่างการคอมไพล์