YOLO物体检测-系列教程7:YOLOV3源码解读5之 Darknet

7、Darknet

7.1 配置文件

配置文件:项目位置\PyTorch-YOLOv3\config\yolov3.cfg
部分参数展示:

batch=16
subdivisions=1
width=416

[convolutional]
batch_normalize=1
filters=32
size=3
stride=1
pad=1
activation=leaky

上面主要是一些训练参数,紧接着都是卷积的参数
模型文件:项目位置\PyTorch-YOLOv3\models.py
我们的主体模型在darknet.类中,是model.py文件中的一个类,实际上就是darknet53模型

7.2 Darknet

在PyTorch深度学习框架中,用类来定义模型,类的构造函数用来定义模型的参数,forward函数用来定义前向传播计算方法

class Darknet(nn.Module):
    def __init__(self, config_path, img_size=416):
        super(Darknet, self).__init__()
        self.module_defs = parse_model_config(config_path)
        self.hyperparams, self.module_list = create_modules(self.module_defs)
        self.yolo_layers = [layer[0] for layer in self.module_list if hasattr(layer[0], "metrics")]
        self.img_size = img_size
        self.seen = 0
        self.header_info = np.array([0, 0, 0, self.seen, 0], dtype=np.int32)
  1. parse_model_config方法读取配置文件
  2. 创建模型

这个构造函数,在读取参数的同时也定义了大部分的网络结构

猜你喜欢

转载自blog.csdn.net/weixin_50592077/article/details/132929219