gpt4 book ai didi

javascript - 从 json 对象而不是 json 加载 Tensorflowjs

转载 作者:行者123 更新时间:2023-11-29 20:31:16 27 4
gpt4 key购买 nike

我正在尝试使用 model.json 加载 Tensorflowjs 模型,model.json 是内存中的浏览器端对象。

https://js.tensorflow.org/api/latest/#loadLayersModel

一种方法可能是从虚拟获取方法返回 json。

fetchFunc (Function) A function used to override the window.fetch function.

或者,也可以创建自定义 IOHandler,但是这方面的文档很少。

An tf.io.IOHandler object that loads model artifacts with its load method.

有谁知道如何使用 tensorflow 加载方法来实现这一点?

var modelJson = "{...ModelAndWeightsConfig}";

//Do something here to load it.

var newModel = tf.loadLayersModel("/model_0/model.json", {
onProgress: onProgressCallback}).then(model =>{});

问候,

最佳答案

是的,你可以自己写IOHandler加载模型。查看 IOHandler 的定义here 。您必须实现 load返回 Promise<ModelArtifacts> 的函数.

这意味着,加载 file IOHandler 保存的模型,你可以查看源码,自己重新实现load函数。

代码示例

这里是帮助您入门的示例。 load()部分大部分是从 loadJSONModel 复制的文件 IOHandler.h 中的函数基本上,JSON 字符串作为参数传递,然后在 load 时使用。函数由 Tensorflow.js 调用。

export class JSONHandler implements tfc.io.IOHandler {
constructor(jsonString) {
this.jsonString = jsonString;
}
async load() {
const modelJSON = JSON.parse(jsonString);
const modelArtifacts: tfc.io.ModelArtifacts = {
modelTopology: modelJSON.modelTopology,
format: modelJSON.format,
generatedBy: modelJSON.generatedBy,
convertedBy: modelJSON.convertedBy
};
if (modelJSON.weightsManifest != null) {
// load weights (if they exist)
}
if (modelJSON.trainingConfig != null) {
modelArtifacts.trainingConfig = modelJSON.trainingConfig;
}
if (modelJSON.userDefinedMetadata != null) {
modelArtifacts.userDefinedMetadata = modelJSON.userDefinedMetadata;
}
return modelArtifacts;
}
}

要使用该模型,您可以创建它的实例并将其传递给加载函数:

const modelJson = '{ ... }';
const handler = new JSONHandler(modelJson);
const model = await tf.loadLayersModel(handler);

关于javascript - 从 json 对象而不是 json 加载 Tensorflowjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58049423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com