pytorch - 未为 coremltools 实现 op 'len' 的 PyTorch 转换功能
问题描述
我正在尝试使用 Coremltools 将我的模型转换为 Core ML。我在这个简单的示例中复制了一些问题。
import torch
import torch.nn as nn
import coremltools
class SimpleTest(nn.Module):
def forward(self, x):
value = len(x)
return torch.tensor(value)
simple_model = SimpleTest()
scripted_model = torch.jit.script(simple_model)
mlmodel = coremltools.converters.convert(scripted_model, inputs=[coremltools.TensorType(shape=(400,))], debug=True)
安慰
debug=True 在控制台中产生这个输出
the following model ops are IMPLEMENTED:
constant
tensor
the following model ops are MISSING:
len
如您所见,我有一个错误提示“未实现 op 'len' 的 PyTorch 转换功能”。我有两个问题:
- 这
len()
是一个 Python 函数。为什么它会尝试转换为 PyTorchlen()
函数? - 我应该使用“register_torch_op”实现一些自定义转换器来修复这个错误吗?
也许您有其他建议如何避免这种错误?
解决方案
推荐阅读
- ethereum - Solidity/以太坊合约定义错误
- javascript - 点击 Firebase 数据和 React Native 获取 List 项信息
- java - Java:是否有原因导致对同一对象的多个引用在包含在哈希图中时无法更新?
- android - 嵌套 Recyclerview 使滚动滞后
- java - 使用 FilterInvocationSecurityMetadataSource 的 Spring 安全动态授权和身份验证
- python - 必需的位置参数:“num_features”错误
- java - maven-resources-plugin 覆盖输出目录不起作用
- java - Lombok 无法在 Linux 上自行安装的 STS 中工作——为什么我的构造函数无法识别 @Builder 注释
- c# - 如何测试 ASP.NET MVC 控制器并查看
- python - 将多个py更改为exe