keras HTTP路径中的JSON既不包含模型拓扑,也不包含权重清单

bvjxkvbb  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(119)

我使用tf.keras训练了分类器,并使用tensorflowjs_converter将保存的模型从.h5转换为.json

!tensorflowjs_converter --input_format=keras '/content/ver1.h5' '/content/json'

然后我尝试使用

tf.loadLayersModel("http://127.0.0.1:8080/model.json")

我使用http-server和--cors来避免任何问题,但是,我不断收到控制台错误:
http.ts:175未捕获(在承诺中)错误:来自HTTP路径http://127.0.0.1:8080/model.json的JSON既不包含模型拓扑,也不包含权重清单。
错误来自以下行:

const modelTopology = modelJSON.modelTopology;
    const weightsManifest = modelJSON.weightsManifest;
    if (modelTopology == null && weightsManifest == null) {
      throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` + `topology or manifest for weights.`);
    }

http://127.0.0.1:8080/model.json打开文件后,清单和模型拓扑就在那里了。

// 20221014001551
// http://127.0.0.1:8080/model.json

{
  "format": "layers-model",
  "generatedBy": "keras v2.8.0",
  "convertedBy": "TensorFlow.js Converter v3.21.0",
  "modelTopology": {
    "keras_version": "2.8.0",
    "backend": "tensorflow",
    "model_config": {
      "class_name": "Functional",
      "config": {
        "name": "model",
.......

和此处:

"weightsManifest": [
    {
      "paths": [
        "group1-shard1of3.bin",
        "group1-shard2of3.bin",
        "group1-shard3of3.bin"
      ],
      "weights": [
        {
          "name": "dense/kernel",
........

我不知道出了什么问题,在等一些建议。

hec6srdp

hec6srdp1#

您可以尝试使用tf.model.load来代替tf.loadLayersModel。

相关问题