如何将样式转移 tensorflow 模型转换为具有灵活输入形状的 mlmodel?

Posted

技术标签:

【中文标题】如何将样式转移 tensorflow 模型转换为具有灵活输入形状的 mlmodel?【英文标题】:How to convert a style transfer tensorflow model to mlmodel with flexible input shape? 【发布时间】:2021-09-10 11:46:25 【问题描述】:

我已阅读 Coreml 指南,该指南展示了如何使用 coremltools 将 pb 模型转换为 mlmodel。但是,在尝试遵循指南时出现以下错误。这意味着输入形状必须是特定的。

ValueError: "ResizeBilinear" op: 第二个输入,即输出大小,必须是静态已知的

那么,有谁知道如何转换灵活的输入形状mlmodel?

这是我的代码:

import coremltools as ct

def mlmodel_image(pb):
    input_shape = ct.Shape(shape=(1, ct.RangeDim(1, 720), ct.RangeDim(1, 1280), 3))
    model_input = ct.ImageType(shape=input_shape)
    mlmodel = ct.convert(pb, inputs=[model_input], source='TensorFlow')
    mlmodel.save(pb.replace(".pb", "_img.mlmodel"))
    print('------save to ', pb.replace(".pb", "_img.mlmodel"))

【问题讨论】:

如果.pb 文件中的模型具有指定的输入大小并且只能使用它,则没有选项可以将其转换为具有可变输入大小的模型而不在模型内部进行重大更改。 感谢您的建议,但我的 .pb 模型具有灵活的输入尺寸,任何 4D 形状都可以 【参考方案1】:

请尝试我的示例: https://github.com/dhrebeniuk/RealTimeFastStyleTransfer

并查看我在 PyTorch 中附带 Google Colab Notebook 的文章。

有说明如何在 ios 上以最佳性能运行 Style Transfer。

【讨论】:

感谢您的建议,ios工程师只接受mlmodel

以上是关于如何将样式转移 tensorflow 模型转换为具有灵活输入形状的 mlmodel?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何将训练有素的 Tensorflow 模型转换为 Keras?

如何将 HED 模型转换为 Tensorflow Lite 模型

如何将保存的模型转换或加载到 TensorFlow 或 Keras?

如何将Tensorflow模型转换为.mlmodel?

如何创建可轻松转换为 TensorFlow Lite 的模型?