Toybrick

pytorch模型转RKNN模型加载失败

kurn

新手上路

积分
27
发表于 2021-3-4 21:42:09    查看: 15376|回复: 5 | [复制链接]    打印 | 显示全部楼层
     环境为rknn1.6,自己的模型使用pytorch1.7训练得到的,首先把模型转为有网络结构的模型具体代码如下:
model = YoloBody(3,26 ,backbone=backbone ,pretrained=pretrained)


model_path = r"../logs/Epoch100-Total_Loss5.9059-Val_Loss5.0253.pth"

print('Loading weights into state dict...')

device = torch.device('cpu')
state_dict = torch.load(model_path, map_location=device)
model.load_state_dict(state_dict)
model.eval()

# 向模型中输入数据以得到模型参数
example = torch.Tensor(1,3,416,416)
trace_model = torch.jit.trace(model, example)
trace_model.save('./final.pt')

然后使用官方的例子将模型转为rknn模型:

--> Loading model
./final.pt ********************
加载失败
E Catch exception when loading pytorch model: ./final.pt!
E Traceback (most recent call last):
E   File "rknn\api\rknn_base.py", line 339, in rknn.api.rknn_base.RKNNBase.load_pytorch
E   File "rknn\base\RKNNlib\RK_nn.py", line 146, in rknn.base.RKNNlib.RK_nn.RKnn.load_pytorch
E   File "rknn\base\RKNNlib\app\importer\import_pytorch.py", line 128, in rknn.base.RKNNlib.app.importer.import_pytorch.ImportPytorch.run
E   File "rknn\base\RKNNlib\converter\convert_pytorch_new.py", line 2250, in rknn.base.RKNNlib.converter.convert_pytorch_new.convert_pytorch.load
E   File "rknn\base\RKNNlib\converter\convert_pytorch_new.py", line 2055, in rknn.base.RKNNlib.converter.convert_pytorch_new.PyTorchOpConverter.report_missing_conversion
E NotImplementedError: The following operators are not implemented: ['aten::detach', 'aten::to', 'aten::floor']

Process finished with exit code 0
请问怎样解决?(环境应该没问题,官方给的resnet50我转成功了)

回复

使用道具 举报

jefferyzhang

版主

积分
12851
发表于 2021-3-4 23:44:03 | 显示全部楼层
请详细参看rknntoolkit转换文档。目前pytorch仅支持到1.6(rknntoolkit1.6)
回复

使用道具 举报

FMsunyh

新手上路

积分
20
发表于 2021-3-26 10:10:37 | 显示全部楼层
我也遇到这个问题,在转pytorch的模型时,遇到toolkit没有支持的算子,现在还不知道怎么整。
难搞哦.
回复

使用道具 举报

qq465943794

新手上路

积分
31
发表于 2021-4-16 17:03:14 | 显示全部楼层
jefferyzhang 发表于 2021-3-4 23:44
请详细参看rknntoolkit转换文档。目前pytorch仅支持到1.6(rknntoolkit1.6)

我遇到了同样的问题,可是我的pytorch版本是1.3.1,rknntoolkit版本是1.6。我训练的torch版本也是1.3.1
回复

使用道具 举报

jockeypan

注册会员

积分
198
发表于 2021-4-20 15:22:00 | 显示全部楼层
我也遇到了,pytorch 版本 1.6.0,rknntoolkit 1.6。
同样的模型,之前用pytorch 1.1, rknntoolkit 1.4可以正常转换。
回复

使用道具 举报

小二黑

新手上路

积分
17
发表于 2021-5-19 08:31:03 | 显示全部楼层
jockeypan 发表于 2021-4-20 15:22
我也遇到了,pytorch 版本 1.6.0,rknntoolkit 1.6。
同样的模型,之前用pytorch 1.1, rknntoolkit 1.4可 ...

为什么我用的pytorch1.1.0和rknntoolkit 1.4不可以?我是单通道图像,应该改哪些地方呀?文档里都没有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表