Tensorflowjs Conversion Error: "ValueError: Unsupported Ops"

Tensorflowjs Conversion Error: "ValueError: Unsupported Ops"

我使用以下命令将我的 tensorflow 模型转换为 tensorflowjs 形式

tensorflowjs_converter 
    --input_format=tf_saved_model 
    --output_node_names="my_output_node" \
    --saved_model_tags=serve my_saved_model_dir \
    ./web_model

我遇到了以下神秘错误:

ValueError: Unsupported Ops in the model before optimization NonMaxSuppression, ResizeArea

我的图表中确实有这些操作。我需要将它们换成更 tensorflowjs 友好的东西吗?

我深入 google,只遇到了对以下标志的引用,我可以将其添加到 tensorflowjs_converter 命令 --skip_op_check=SKIP_OP_CHECK \ 这确实编译通过了,但是当我尝试为 js 模型提供服务时,我遇到了类似于上面的 js 错误:

Error: Tensorflow Op is not supported: ResizeArea

有什么想法可以修改我的图形或我的命令来导航它吗?

谢谢

简短的回答是肯定的,您需要更改它们。 TensorflowJS 会出于优化目的更改操作,但并非所有操作都有等效的 TFJS 版本。 支持的操作的完整列表在这里:https://github.com/tensorflow/tfjs-converter/blob/master/docs/supported_ops.md

奇怪的是 'NonMaxSuppression' 似乎在列表中,但 ResizeArea 不在,而且 100% 不起作用。

另一种方法是自己创建一个自定义操作,然后使用该代码,但我不确定如何在 TFJS 中执行此操作。