在Node.js中加载训练好的模型并运行测试,通常会使用TensorFlow.js库。以下是一个简单的步骤指南,展示如何加载模型并进行预测。
首先,你需要安装TensorFlow.js库。在你的Node.js项目中运行以下命令:
npm install @tensorflow/tfjs-node
或者,如果你需要GPU支持,可以安装GPU版本:
npm install @tensorflow/tfjs-node-gpu
确保你的训练好的模型文件(通常是.model
或.h5
格式)已经准备好,并且位于你的项目目录中。
下面是一个简单的示例代码,展示如何加载模型并进行预测:
const tf = require('@tensorflow/tfjs-node'); // 或者 '@tensorflow/tfjs-node-gpu'
async function run() {
// 加载模型
const model = await tf.loadLayersModel('file://path/to/your/model.json');
// 准备输入数据
const inputData = tf.tensor([[/* 输入特征值 */]]);
// 运行预测
const predictions = model.predict(inputData);
// 输出预测结果
console.log(predictions.dataSync());
}
run();
tf.loadLayersModel
函数从指定路径加载模型。路径可以是本地文件路径或URL。predict
方法进行预测。dataSync
方法获取预测结果的原始数值数组。如果你是在做图像分类,步骤会稍微复杂一些,因为需要先将图像转换为适合模型输入的张量格式。以下是一个完整的示例:
const tf = require('@tensorflow/tfjs-node');
const fs = require('fs');
const path = require('path');
async function run() {
// 加载模型
const model = await tf.loadLayersModel('file://path/to/your/model.json');
// 读取图像文件
const imgPath = 'path/to/your/image.jpg';
const imgBuffer = fs.readFileSync(imgPath);
// 将图像转换为张量
const imgTensor = tf.node.decodeImage(imgBuffer, 3).toFloat();
const resizedImg = tf.image.resizeBilinear(imgTensor, [224, 224]); // 根据模型输入尺寸调整
const normalizedImg = resizedImg.div(255.0); // 归一化
const batchedImg = normalizedImg.expandDims(0); // 增加批次维度
// 运行预测
const predictions = model.predict(batchedImg);
// 输出预测结果
console.log(predictions.dataSync());
}
run();
在这个示例中,我们使用了tf.node.decodeImage
来读取和解码图像文件,并进行必要的预处理(如调整大小和归一化)。
领取专属 10元无门槛券
手把手带您无忧上云