Toybrick

楼主: puyanan

FaceNet的rknn模型推理结果和pb模型结果不同

puyanan

中级会员

积分
206
 楼主| 发表于 2019-8-26 09:48:03 | 显示全部楼层
xiaqing10 发表于 2019-8-21 09:35
分享下可以转faceNet模型的Pb文件. 输入输出如下,pb 链接为  可以转rknn的faceNet的pb模型
提取码: y3uc
in ...

谢谢分享。我用Netron能打开您的pb模型查看结构,但是我的pb模型打不开,应该是模型本身有问题了。这事阁下了还没解决,今天才看到您的回复。
回复

使用道具 举报

puyanan

中级会员

积分
206
 楼主| 发表于 2019-9-19 11:54:09 | 显示全部楼层
本帖最后由 puyanan 于 2019-9-19 13:30 编辑
xiaqing10 发表于 2019-8-21 09:35
分享下可以转faceNet模型的Pb文件. 输入输出如下,pb 链接为  可以转rknn的faceNet的pb模型
提取码: y3uc
in ...

您好。您的模型确实是单输入的 inputs=['input_1'],我用Netron打开pb文件,很复杂,没有代码参考看不出网络结构来。所以我想改一改原来的pb文件,它有两个输入,feed_dict = { images_placeholder: images, phase_train_placeholder:False },在rknn.load_tensorflow中就要写成“inputs=['input','phase_train']” 。可是版主说不支持多输入,要重新固化模型。我搜素了一些资料,还是没明白,怎么把phase_train固定为false呢?也就是说,读入现有的pb模型,然后将phase_train_placeholder固定为False,再重新保存为pb文件。下次入读就只有一个输入inputs=['input']。请问将placeholder转换成constant可行吗?
回复

使用道具 举报

xiaqing10

中级会员

积分
347
发表于 2019-9-19 18:13:29 | 显示全部楼层
puyanan 发表于 2019-9-19 11:54
您好。您的模型确实是单输入的 inputs=['input_1'],我用Netron打开pb文件,很复杂,没有代码参考看不出网 ...

我是把Pb直接转为了keras. 更改了输入,将train_phase=False .然后再转为Pb模型即可
回复

使用道具 举报

puyanan

中级会员

积分
206
 楼主| 发表于 2019-9-20 14:35:57 | 显示全部楼层
xiaqing10 发表于 2019-9-19 18:13
我是把Pb直接转为了keras. 更改了输入,将train_phase=False .然后再转为Pb模型即可 ...

您好,十分感谢您给的思路,我自己还不熟悉tf和keras,是想不到这些办法的,感谢。我按照您的思路,想在keras中加载pb模型,再设置train_phase=False,可是不会加载pb模型,load_model函数不行,找了文档中from keras import backend as K相关的后端函数,没有找到办法。请问您是怎么做的?
回复

使用道具 举报

puyanan

中级会员

积分
206
 楼主| 发表于 2019-9-21 14:58:56 | 显示全部楼层
jefferyzhang 发表于 2019-8-9 12:51
哦,刚看出来,你这里多输入了,目前rknn只支持单输入多输出。
所以你模型固化时候phase_train要固化成固定 ...

版主,您好。我发现phase_train的类型是placeholder,无法设置为固定值再固化,请问您是怎么做的呢?现在有一个预训练好的pb文件,不重新训练的情况下怎么修改这个pb文件变成单输入呢? 有一位朋友说是转换成keras再设置phase_train=False后重新固化,可是我没有领会。请问您是如何做的呢?
回复

使用道具 举报

puyanan

中级会员

积分
206
 楼主| 发表于 2019-9-21 15:01:37 | 显示全部楼层
jiajia1990 发表于 2019-8-20 16:43
楼主你好,你的问题解决了吗?怎么解决的?

抱歉,我没解决,你有办法了吗?
回复

使用道具 举报

jefferyzhang

超级版主

积分
5110
发表于 2019-9-22 10:08:33 | 显示全部楼层
puyanan 发表于 2019-9-21 14:58
版主,您好。我发现phase_train的类型是placeholder,无法设置为固定值再固化,请问您是怎么做的呢?现在 ...

1.2版本rknn-toolkit允许多输入了,所以你可以不用固化placeholder
回复

使用道具 举报

puyanan

中级会员

积分
206
 楼主| 发表于 2019-9-23 11:06:55 | 显示全部楼层
jefferyzhang 发表于 2019-9-22 10:08
1.2版本rknn-toolkit允许多输入了,所以你可以不用固化placeholder

谢谢版主,我去试试。
回复

使用道具 举报

liuwenhua

中级会员

积分
270
发表于 2019-11-18 10:37:23 | 显示全部楼层
jefferyzhang 发表于 2019-8-9 12:51
哦,刚看出来,你这里多输入了,目前rknn只支持单输入多输出。
所以你模型固化时候phase_train要固化成固定 ...

版主,phase_train怎么固化成固定值呢?
回复

使用道具 举报

liuwenhua

中级会员

积分
270
发表于 2019-11-18 10:38:00 | 显示全部楼层
puyanan 发表于 2019-8-9 16:35
谢谢版主回复,我去试一下重新生成固化模型。

你的问题解决?
回复

使用道具 举报

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

本版积分规则

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


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