将模型从 tensorflow 转换为 Coreml (4.0) 时出现实例归一化错误

Posted

技术标签:

【中文标题】将模型从 tensorflow 转换为 Coreml (4.0) 时出现实例归一化错误【英文标题】:Instance Normalization Error while converting model from tensorflow to Coreml (4.0) 【发布时间】:2021-04-30 08:07:45 【问题描述】:

我尝试将我的模型从 Tensorflow 转换为 Coreml,但出现以下错误。不能将实例规范化层转换为 CoreML 吗?有什么解决方法需要克服吗?

ValueError Traceback(最近一次调用最后一次) 在 () 6 7 模型 = ct.convert( ----> 8 tf_keras_model )

6 帧 /usr/local/lib/python3.6/dist-packages/coremltools/converters/mil/mil/block.py 在 remove_ops(self, existing_ops) 700 +“由操作 使用” 701) --> 702 引发 ValueError(msg.format(op.name, i, v.name, child_op_names)) 703 # 检查输出 Var 不是块的输出 704 如果 v 在 self._outputs 中:

ValueError:无法删除操作 'Generator/StatefulPartitionedCall/StatefulPartitionedCall/encoder_down_resblock_0/instance_norm_0/Shape',在 id 0 处具有活动输出:'Generator/StatefulPartitionedCall/StatefulPartitionedCall/encoder_down_resblock_0/instance_norm_0/Shape'由操作使用 ['Generator/StatefulPartitionedCall/ StatefulPartitionedCall/encoder_down_resblock_0/instance_norm_0/strided_slice'] 搜索堆栈溢出

【问题讨论】:

【参考方案1】:

我改用 keras-contrib,它工作正常。请参阅下面的问题及其解决方案。它仍然对 tensorflow_addons 开放。

https://github.com/apple/coremltools/issues/1007

【讨论】:

以上是关于将模型从 tensorflow 转换为 Coreml (4.0) 时出现实例归一化错误的主要内容,如果未能解决你的问题,请参考以下文章

将模型从 tensorflow 转换为 Coreml (4.0) 时出现实例归一化错误

如何将 CoreML 模型转换为 TensorFlow 模型?

面临从 tensorflow core 转换为 tensorflow lite 的问题

从 TensorFlow 转换的 CoreML 模型无法在 Xcode 中使用

如何将 TensorFlow 模型转换为 TFLite 模型

将保存的tensorflow模型转换为tensorflow Lite的正确方法是啥