Ошибка: Ошибка в concat4D: ранг тензоров [4] должен совпадать с рангом остальных (4) в выводе тензорного потока js - PullRequest
0 голосов
/ 14 марта 2020

Я получаю эту ошибку при выводе сохраненной модели в команду tf js -node 1.7.0:

const ssd_model_path = 'file://models/ssd-centernet-please/model.json'
...
const pred = await this.model.executeAsync(
      { "input_1:0" : imageTensor },
      [ "lambda_1/map/TensorArrayStack/TensorArrayGatherV3:0"]);

Ошибка:

Error: Error in concat4D: rank of tensors[4] must be the same as the rank of the rest (4)
    at Object.assert (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/util.js:105)
    at /Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js:23
    at Array.forEach (<anonymous>)
    at Object.assertParamsConsistent (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/ops/concat_util.js:22)
    at concat_ (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/ops/concat_split.js:176)
    at Object.concat (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/ops/operation.js:46)
    at Object.exports.executeOp (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/operations/executors/slice_join_executor.js:29)
    at /Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/operations/operation_executor.js:73
    at /Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/engine.js:388
    at Engine.scopedRun (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/engine.js:398)
    at Engine.tidy (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/engine.js:387)
    at Object.tidy (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-core/dist/globals.js:176)
    at /Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/operations/operation_executor.js:73
    at Object.executeOp (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/operations/operation_executor.js:91)
    at _loop_1 (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:386)
    at GraphExecutor.processStack (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:412)
    at GraphExecutor.<anonymous> (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:340)
    at step (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:59)
    at Object.next (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:40)
    at fulfilled (/Users/bradleybrown/Desktop/naimii/node_modules/@tensorflow/tfjs-converter/dist/src/executor/graph_executor.js:31)

для получения модели тензорного потока .

Команда, которую я использую для преобразования моей сохраненной модели tensorfow (1.15.0) в javascript, выглядит следующим образом:

tensorflowjs_converter \
    --strip_debug_ops True \
    --input_format=tf_saved_model \
    --output_node_names="lambda_1/map/TensorArrayStack/TensorArrayGatherV3:0" \
    --output_format tfjs_graph_model \
    --saved_model_tags=serve \
    --signature_name predict \
    ./ssd-res18 \
    ./ssd-centernet-please

Правильные выводы сохраненной модели в python, и у меня есть раньше я мог использовать разные модели в tf js, так что я знаю, что это не проблема.

Если кто-нибудь что-нибудь знает об этом, пожалуйста, дайте мне знать!

...