You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow.js Node环境下如何本地加载Universal Sentence Encoder模型?

解决TensorFlow.js本地加载Universal Sentence Encoder模型的问题

要避免每次运行脚本都下载525MB的USE模型,你可以通过以下步骤从本地加载模型:

1. 获取本地模型文件

首次运行你的脚本时,TensorFlow.js会自动将模型缓存到本地,路径通常在:
~/.cache/tensorflowjs/models/
找到名为universal-sentence-encoder的文件夹,将其完整复制到你的项目目录下(比如命名为use-model)。

2. 修改加载代码

USE属于Graph模型,而非Layers模型,因此不能用tf.loadLayersModel加载。你需要通过use.load()的modelUrl参数指定本地模型路径,有两种实现方式:

方式一:直接使用本地文件路径

const tf = require('@tensorflow/tfjs-node');
const use = require('@tensorflow-models/universal-sentence-encoder');

use.load({ modelUrl: 'file://./use-model/model.json' })
  .then(model => {
    const sentences = ['Hello.', 'How are you?'];
    model.embed(sentences)
      .then(embeddings => embeddings.print(true));
  });

方式二:使用tf.io.fileSystem处理路径

const tf = require('@tensorflow/tfjs-node');
const use = require('@tensorflow-models/universal-sentence-encoder');

async function loadLocalUSE() {
  // 创建本地文件处理器
  const modelHandler = tf.io.fileSystem('./use-model/model.json');
  // 加载本地模型
  const model = await use.load({ modelUrl: modelHandler });
  
  const sentences = ['Hello.', 'How are you?'];
  const embeddings = await model.embed(sentences);
  embeddings.print(true);
}

loadLocalUSE();

注意事项

  • 确保use-model文件夹包含model.json和所有权重分片文件(通常是.bin或shard后缀的文件),缺一不可。
  • 路径需根据实际情况调整:Linux/macOS绝对路径格式为file:///Users/xxx/use-model/model.json,Windows格式为file://C:/Users/xxx/use-model/model.json。

内容的提问来源于stack exchange,提问作者CodeSoft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:10:23