将 pytorch 转换为 coreml 以实现逐元素最大操作
Posted
技术标签:
【中文标题】将 pytorch 转换为 coreml 以实现逐元素最大操作【英文标题】:Conversion pytorch to coreml for element-wise maximum operation 【发布时间】:2021-04-11 02:02:01 【问题描述】:我尝试将 PyTorch 模型转换为基于 coremltools 的元素最大操作的 coreml。
通过torch.max操作,我得到了
ValueError: node input.2 (max) got 2 input(s), expected [3]
使用 torch.maximum 操作
RuntimeError: PyTorch convert function for op 'maximum' not implemented.
有解决这个问题的办法吗?
【问题讨论】:
你能提供一些额外的代码吗? 【参考方案1】:我在将 pytorch element-wise 操作转换为 coreml 模型时遇到了同样的问题,但通过为带有 torch 前端的 MIL 转换器添加对 torch.maximum 和 torch.minimum 的支持解决了这个问题。
@register_torch_op
def maximum(context, node):
inputs = _get_inputs(context, node)
x = inputs[0]
y = inputs[1]
out = mb.maximum(x=x, y=y, name=node.name)
context.add(out)
【讨论】:
以上是关于将 pytorch 转换为 coreml 以实现逐元素最大操作的主要内容,如果未能解决你的问题,请参考以下文章
快速从 .npy 转换为 MLMultiArray 以进行 CoreML 预测
将 PyTorch 模型与 CoreML 一起使用时输入尺寸重塑
从 pytorch 模型转换而来的 coreML 模型给出了错误的预测概率