yolov5.yaml文件转换到.py文件

在ultralytics官方的yolov5代码里,模型的构建都是定义在yaml文件里的,在yaml文件里,有两个重要参数:depth_multiplewidth_multiple。其中depth_multiple控制网络的深度,width_multiple控制网络的宽度。这样做的好处是可以通过这两个参数控制网络的宽度和深度,实现不同大小不同复杂度的模型设计,但是这种写法缺点是不再能直接采用第三方工具例如netron进行网络模型可视化了,并且yaml文件不利于学习网络结构特性和网络里的层与层之间的连接关系。

通常情况下,我们使用pytorch构建一个神经网络,模型是定义在.py文件里的。在ultralytics的yolov5代码里,定义网络模型是动过解析yaml文件,利用pytorch动态图的特性,动态生成网络结构的。这里面使用到了一个关键函数parse_model,它在models/yolo.py里。最近我在使用这个函数的时候,琢磨出了一个小工具,它能自动生成一个.py文件,把网络结构定义在.py文件里,这样你就可以学习到yolov5的一些模块细节,做前向计算时候,层与层之间的连接关系。我把这套程序发布在github上,地址是

https://github.com/hpc203/convertyaml2py

你可能感兴趣的:(深度学习,pytorch,深度学习,pytorch)