Javascript Tensorflow JS本地加载TFHub模型
我正在通过Javascript Tensorflow JS本地加载TFHub模型,javascript,tensorflow,tfjs-node,tf-hub,tensorflow.js,Javascript,Tensorflow,Tfjs Node,Tf Hub,Tensorflow.js,我正在通过@tensorflow/tfjs converter包的loadGraphModel从TFHub加载一个模型 loadModel = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { return [2, tfconv.loadGraphModel('https://tfhub.dev/
@tensorflow/tfjs converter
包的loadGraphModel
从TFHub加载一个模型
loadModel = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2, tfconv.loadGraphModel('https://tfhub.dev/tensorflow/tfjs-model/toxicity/1/default/1', { fromTFHub: true })];
});
});
};
这个很好用。然后,我在本地下载了模型,用于离线预测:
.
├── group1-shard1of7
├── group1-shard2of7
├── group1-shard3of7
├── group1-shard4of7
├── group1-shard5of7
├── group1-shard6of7
├── group1-shard7of7
├── model.json
└── vocab.json
现在我想在本地加载这个模型。对于其他模型,我使用了支持文件协议的方法tfjs.loadLayersModel(this.path)
,但是如果我尝试加载这个模型,我会得到以下错误
'className' and 'config' must set.
事实上,在model.json
中缺少这些键。
我已尝试通过以下方式从中心加载图形:
var loadGraphModel = function () {
return new Promise(function (resolve, reject) {
tfconv.loadGraphModel(
'https://tfhub.dev/tensorflow/tfjs-model/toxicity/1/default/1',
{ fromTFHub: true })
.then(res => {
console.log(res)
resolve(res);
})
.catch(err => reject(err));
});
}
GraphModel {
modelUrl: 'https://tfhub.dev/tensorflow/tfjs-model/toxicity/1/default/1/model.json?tfjs-format=file',
loadOptions: { fromTFHub: true },
version: 'undefined.undefined',
handler: HTTPRequest {
DEFAULT_METHOD: 'POST',
weightPathPrefix: undefined,
onProgress: undefined,
fetch: [Function],
path: 'https://tfhub.dev/tensorflow/tfjs-model/toxicity/1/default/1/model.json?tfjs-format=file',
requestInit: {}
},
artifacts: {
modelTopology: { node: [Array], library: {}, versions: {} },
weightSpecs: [
...
那么如何像从本地文件系统保存和重新加载一样本地加载这个TFHub
GraphModel
呢?作为一种解决方法,您可以使用本地http服务器或编写一个定制的IOHandler,请参见@javadb9,因此您的意思是本地托管由TFHub提供服务的GraphModel,因此只需将url切换到类似的内容。那是个很酷的主意。我必须检查实际模型文件的放置位置,因为请求应该来自同一路径。我不知道你说的同一路径是什么意思,以前他们使用此url加载模型:而且对他们来说效果很好,请参见btw I am fawazahmed0 Hello fawazahmed0!谢谢,因此该模型基本上是一个已保存的图形模型。另一件事是他们改变了api。过去有tf.node.loadSavedModel
,但现在它被删除了…是的,我以前遇到过这些问题,谢天谢地,我记下了我是如何解决问题的,所以只需卸载tensflow和tfjs节点,并按照我笔记中的步骤进行操作,记住在这个过程中,将python 2作为默认值是很重要的,另外,注意事项是关于安装使用模型的,您只需安装您的模型即可:请参阅我的注意事项: