微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 pytorch 转换为 CoreML 时,您可以控制输出吗?

如何解决将 pytorch 转换为 CoreML 时,您可以控制输出吗?

❓问题

我正在尝试将 pytorch 模型转换为 coreml。模型基于yolov5。

这是我们导出的 coreml 模型的 netron 视图。

enter image description here

目前,该架构有 3 个输出。您可以在屏幕截图中看到输出之一,编号“740”。

但是,我们想要与 coreml 不同的输出。我们需要在 reshapestatic 和 transpose 层之前获得输出。所以在这图片中你可以看到我们需要最后一个卷积层而不是 740。

那些 reshapestatic 和 transpose 层是在将 net 转换为 coreML 的过程中添加的,它们不是 yolov5 的有机层。

  1. 有什么方法可以让我们以不同的方式转换到 coreml,以便更好地控制输出哪些层?例如,我们能否控制下面示例代码中的输出层:
model = ct.convert(
    traced_model,inputs=[ct.ImageType(name="input_1",shape=example_input.shape)],classifier_config = ct.ClassifierConfig(class_labels) )

  1. 或者,有没有一种方法可以让我们在运行时选择从 coreml 模型中提取哪些值?例如,有没有办法在下面的代码中指定我们要输出哪些层?
img = load_image(img_path,resize_to=(img_size,img_size))
//can we specify here which layers to output?
coreml_out_dict = model.predict({'image': img})

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。