Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question #48

Open
qiujianchen opened this issue Apr 3, 2022 · 5 comments
Open

Question #48

qiujianchen opened this issue Apr 3, 2022 · 5 comments

Comments

@qiujianchen
Copy link

您好,我通过该项目训练自己的数据集,得到了h5,tflite,kmodel三种模型,并通过netron大致了解了h5和tflite的网络架构。
我想尝试着用Pytorch完成这一项目,按照h5和tflite重新定义网络结构,但是无法使用预训练模型。

作者能分享一下这个项目的大致实现过程吗?可以参考一下。

@zhen8838
Copy link
Owner

zhen8838 commented Apr 4, 2022

你说的预训练模型指的是使用我这个项目生成的h5文件吗?
如果你想用pytorch加载keras生成的模型权重,你可以找一些关于模型权重转换的工具.
这个项目就是简单的自定义模型结构,然后训练yolov3模型. 使用pytroch的话,你可以直接用现成的一些训练yolo的框架,比如yolov5, 然后添加一个适配k210的模型结构进行训练/转换即可.

@qiujianchen
Copy link
Author

你说的预训练模型指的是使用我这个项目生成的h5文件吗? 如果你想用pytorch加载keras生成的模型权重,你可以找一些关于模型权重转换的工具. 这个项目就是简单的自定义模型结构,然后训练yolov3模型. 使用pytroch的话,你可以直接用现成的一些训练yolo的框架,比如yolov5, 然后添加一个适配k210的模型结构进行训练/转换即可.

  • 我说的预训练模型是指这个项目中使用的yolo_mobilenetv1_0.75.h5,这些存放在data文件夹中的预训练模型。
  • 找过一些模型权重转换的工具,但是h5转pth的项目目前没有找到。
  • 使用您的这个项目训练完以后,会生成.h5最终的权重文件。我是看的这个训练后的权重文件,了解了具体的网络结构是什么样的。然后我就想着能不能把网络上比较成熟的pytorch-yolov3的项目,定义darknet53网络结构的那部分,替换成这个项目最终生成的h5文件里的网络结构。所以才问的这个问题。
  • 您说可以训练yolov5网络,然后添加适配k210的模型结构,这个有点不太理解。因为yolov5的结构也是定义好的,我也不太会设计能够适配K210的模型结构,也不知道应该添加在哪里?
    (深度学习入门学习者,还有待进一步提高,望谅解)

@zhen8838
Copy link
Owner

zhen8838 commented Apr 4, 2022

  1. 我使用的预训练模型是mobilenet base 0.75, 是keras官方提供的,如果使用pytorch, 也可以在pytorch官方找到对应的预训练权重.
  2. 对于大部分的深度学习算法(比如yolov5), 模型结构主要是为了和他的损失函数相耦合, 我们可以简单的在修改非耦合处模型结构来适配自己需要的场景.
  3. 对于yolo来说,与损失函数强耦合的是他的输出(encoder head), 对于他的body(backbone)来说可以任意替换, 我这个项目主要是用mobilenet替换了darknet53的backbone, 然后还修改了一部分mobilenet的channel参数.
  4. 网络模型结构其实都是代码控制的, 因此你可以参考yolo_mobilenetv1的定义, 在另一个pytorch项目里进行修改.

@lisenjie757
Copy link

我最近也在学习类似的事情,请问什么样的模型可以k210上跑,这是由什么决定的?为什么darknet53不可以mobilenet就行?
抱歉,我也是个深度学习小白,我可以从哪里学习相关的知识,能否提供一些文档或博客之类的教程。

@zhen8838
Copy link
Owner

k210是通过kpu对模型进行加速的, 所以只有kpu支持的模型才可以在k230上流畅运行.你可以参考nncase项目的faq.
你可以先去学习一下吴恩达的深度学习课程, 然后再学习一些关于模型部署的知识.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants