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)
- parse_model_config方法读取配置文件
- 创建模型
这个构造函数,在读取参数的同时也定义了大部分的网络结构