Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Tensorflow JS本地加载TFHub模型_Javascript_Tensorflow_Tfjs Node_Tf Hub_Tensorflow.js - Fatal编程技术网

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作为默认值是很重要的,另外,注意事项是关于安装使用模型的,您只需安装您的模型即可:请参阅我的注意事项: